提交 874abb7e authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 277f2643
...@@ -691,7 +691,7 @@ consult the source code of the listener and test application. ...@@ -691,7 +691,7 @@ consult the source code of the listener and test application.
<h2>Using the Recover Tool</h2> <h2>Using the Recover Tool</h2>
<p> <p>
The recover tool can be used to extract the contents of a data file, even if the database is corrupted. The recover tool can be used to extract the contents of a data file, even if the database is corrupted.
At this time, it does not extract the content of the log file or large objects (CLOB or BLOB). It also extracts the content of the log file or large objects (CLOB or BLOB).
To run the tool, type on the command line: To run the tool, type on the command line:
</p> </p>
<pre> <pre>
...@@ -700,8 +700,11 @@ java org.h2.tools.Recover ...@@ -700,8 +700,11 @@ java org.h2.tools.Recover
<p> <p>
For each database in the current directory, a text file will be created. For each database in the current directory, a text file will be created.
This file contains raw insert statement (for the data) and data definition (DDL) statement to recreate This file contains raw insert statement (for the data) and data definition (DDL) statement to recreate
the schema of the database. This file cannot be executed directly, as the raw insert statements the schema of the database. This file can be executed using the RunScript tool or a
don't have the correct table names, so the file needs to be pre-processed manually before executing. <code>RUNSCRIPT FROM</code> SQL statement. The script include at least one
CREATE USER statement. If you run the script against a database that was created with the same
user, or if there are conflicting users, running the script will fail. Consider running the script
against a database that was created with a user name that is not in the script.
</p> </p>
<br /><a name="file_locking_protocols"></a> <br /><a name="file_locking_protocols"></a>
...@@ -712,7 +715,7 @@ that the database is in use. If database is closed, or if the process that opene ...@@ -712,7 +715,7 @@ that the database is in use. If database is closed, or if the process that opene
the database terminates, this lock file is deleted. the database terminates, this lock file is deleted.
</p><p> </p><p>
In special cases (if the process did not terminate normally, for example because In special cases (if the process did not terminate normally, for example because
there was a blackout), the lock file is not deleted by the process that created it. there was a power failure), the lock file is not deleted by the process that created it.
That means the existence of the lock file is not a safe protocol for file locking. That means the existence of the lock file is not a safe protocol for file locking.
However, this software uses a challenge-response protocol to protect the database However, this software uses a challenge-response protocol to protect the database
files. There are two methods (algorithms) implemented to provide both security files. There are two methods (algorithms) implemented to provide both security
...@@ -763,6 +766,7 @@ to the user if it cannot open a database, and not try again in a (fast) loop. ...@@ -763,6 +766,7 @@ to the user if it cannot open a database, and not try again in a (fast) loop.
<h3>File Locking Method 'Socket'</h3> <h3>File Locking Method 'Socket'</h3>
<p> <p>
There is a second locking mechanism implemented, but disabled by default. There is a second locking mechanism implemented, but disabled by default.
To use it, append <code>;FILE_LOCK=SOCKET</code> to the database URL.
The algorithm is: The algorithm is:
</p> </p>
<ul> <ul>
...@@ -775,7 +779,7 @@ to the 'file' method. ...@@ -775,7 +779,7 @@ to the 'file' method.
</li><li>If the lock file exists, and the lock method is 'socket', then the process </li><li>If the lock file exists, and the lock method is 'socket', then the process
checks if the port is in use. If the original process is still running, the port is in use checks if the port is in use. If the original process is still running, the port is in use
and this process throws an exception (database is in use). If the original process and this process throws an exception (database is in use). If the original process
died (for example due to a blackout, or abnormal termination of the virtual machine), died (for example due to a power failure, or abnormal termination of the virtual machine),
then the port was released. The new process deletes the lock file and starts again. then the port was released. The new process deletes the lock file and starts again.
</li></ul> </li></ul>
<p> <p>
......
...@@ -18,7 +18,15 @@ Change Log ...@@ -18,7 +18,15 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>The WebServlet did not close the database when undeploying the web application. <ul><li>Recovery did not work if there were more than 255 lobs stored as files.
</li><li>New experimental mode to support multiple read-write connections without starting
a server. To enable this mode, append ;FILE_LOCK=SERIALIZED;OPEN_NEW=TRUE to the database URL.
Don't expect high performance when multiple concurrent writers.
</li><li>In a web application, the database classes are not unloaded if a connection is open.
This may cause out of memory when re-deploying a web application.
The DbStarter is changed to close all connections to the configured database
(by executing SHUTDOWN).
</li><li>The WebServlet did not close the database when un-deploying the web application.
</li><li>The exception message of failed INSERT or MERGE statements now includes all values and the row number. </li><li>The exception message of failed INSERT or MERGE statements now includes all values and the row number.
</li><li>If opening a database failed with an out of memory exception, some files were not closed. </li><li>If opening a database failed with an out of memory exception, some files were not closed.
</li><li>Optimizer: the expected runtime calculation was incorrect. The fixed calculation </li><li>Optimizer: the expected runtime calculation was incorrect. The fixed calculation
......
...@@ -89,6 +89,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches ...@@ -89,6 +89,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>Eclipse plugin </li><li>Eclipse plugin
</li><li>Asynchronous queries to support publish/subscribe: SELECT ... FOR READ WAIT [maxMillisToWait] </li><li>Asynchronous queries to support publish/subscribe: SELECT ... FOR READ WAIT [maxMillisToWait]
</li><li>Improved fulltext search (reader / tokenizer / filter). </li><li>Improved fulltext search (reader / tokenizer / filter).
</li><li>Linked schema using CSV files: one schema for a directory of files; support indexes for CSV files
</li><li>iReport to support H2 </li><li>iReport to support H2
</li><li>Implement missing JDBC API (CallableStatement,...) </li><li>Implement missing JDBC API (CallableStatement,...)
</li><li>Compression of the cache </li><li>Compression of the cache
...@@ -100,7 +101,6 @@ Of course, patches are always welcome, but are not always applied as is. Patches ...@@ -100,7 +101,6 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>Copy database: Tool with config GUI and batch mode, extensible (example: compare) </li><li>Copy database: Tool with config GUI and batch mode, extensible (example: compare)
</li><li>Document, implement tool for long running transactions using user-defined compensation statements </li><li>Document, implement tool for long running transactions using user-defined compensation statements
</li><li>Support SET TABLE DUAL READONLY </li><li>Support SET TABLE DUAL READONLY
</li><li>Linked schema using CSV files: one schema for a directory of files; support indexes for CSV files
</li><li>GCJ: what is the state now? </li><li>GCJ: what is the state now?
</li><li>Reduce disk space usage </li><li>Reduce disk space usage
</li><li>Events for: Database Startup, Connections, Login attempts, Disconnections, Prepare (after parsing), Web Server (see http://docs.openlinksw.com/virtuoso/fn_dbev_startup.html) </li><li>Events for: Database Startup, Connections, Login attempts, Disconnections, Prepare (after parsing), Web Server (see http://docs.openlinksw.com/virtuoso/fn_dbev_startup.html)
...@@ -401,6 +401,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches ...@@ -401,6 +401,7 @@ Of course, patches are always welcome, but are not always applied as is. Patches
</li><li>CSV: currently # is a line comment and can start at any field. Make it optional. </li><li>CSV: currently # is a line comment and can start at any field. Make it optional.
</li><li>Add database creation date and time to the database. </li><li>Add database creation date and time to the database.
</li><li>Support ASSERTIONS. </li><li>Support ASSERTIONS.
</li><li>MySQL compatibility: support comparing 1='a'
</li></ul> </li></ul>
<h2>Not Planned</h2> <h2>Not Planned</h2>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -38,7 +38,7 @@ behalf behave behavior behaviour behind being bel believes belong belongs below ...@@ -38,7 +38,7 @@ behalf behave behavior behaviour behind being bel believes belong belongs below
bench benchmark benchmarks beneficial bennet berlini best beta better between bench benchmark benchmarks beneficial bennet berlini best beta better between
beyond bfff bgcolor bid big bigger biggest bigint biginteger billion bin binary beyond bfff bgcolor bid big bigger biggest bigint biginteger billion bin binary
bind biological biondi birth birthday bit bitand bitmap bitor bits bitxor bind biological biondi birth birthday bit bitand bitmap bitor bits bitxor
blackout blank blind blob blobs block blocked blockquote blocks blocksize blog blank blind blob blobs block blocked blockquote blocks blocksize blog
blogs blojsom blowfish blue blur bnf bnot boat bob bodies body bogus bohlen bold blogs blojsom blowfish blue blur bnf bnot boat bob bodies body bogus bohlen bold
boo book bookkeeping bookmarks books bool boolean boot booted bootstrap bor boo book bookkeeping bookmarks books bool boolean boot booted bootstrap bor
border boss boston both bottom bound bounds bout box braces brack bracket border boss boston both bottom bound bounds bout box braces brack bracket
...@@ -580,4 +580,5 @@ federal santa america county clara courts california york venue away stages ...@@ -580,4 +580,5 @@ federal santa america county clara courts california york venue away stages
titles headers grew orchestration social razor finder ranging friend intervals titles headers grew orchestration social razor finder ranging friend intervals
bot jot delicious rife appenders circles spelling cash sky ecm nuxeo poland bot jot delicious rife appenders circles spelling cash sky ecm nuxeo poland
opengeospatial sfs symmetric obsolete failing parenthesis unloading refreshed opengeospatial sfs symmetric obsolete failing parenthesis unloading refreshed
grails reloading slightly grails reloading slightly accepting deploying conflicting recovered counters
versus extracts
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论