You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<codeclass="notranslate">CREATE USER</code> statement. If you run the script against a database that was created with the same
1142
1144
user, or if there are conflicting users, running the script will fail. Consider running the script
1143
-
against a database that was created with a user name that is not in the script.
1144
-
</p>
1145
-
<p>
1146
-
The <codeclass="notranslate">Recover</code> tool creates a SQL script from database file. It also processes the transaction log.
1145
+
against a database that was created with a username that is not in the script.
1147
1146
</p>
1148
1147
<p>
1149
1148
To verify the database can recover at any time, append <codeclass="notranslate">;RECOVER_TEST=64</code>
1150
1149
to the database URL in your test environment. This will simulate an application crash after each 64 writes to the database file.
1151
1150
A log file named <codeclass="notranslate">databaseName.h2.db.log</code> is created that lists the operations.
1152
1151
The recovery is tested using an in-memory file system, that means it may require a larger heap setting.
1153
1152
</p>
1153
+
<h3>Direct Recover</h3>
1154
+
<p>Since H2-2.3.239 there is an enhanced <codeclass="notranslate">DirectRecover</code> tool which features:</p>
1155
+
<ul>
1156
+
<li>Direct output into SQL-script (using a pipe)</li>
1157
+
<li>Compression using ZIP, GZIP, KANZI (when in classpath) or BZip2 (when in classpath)</li>
1158
+
</ul>
1159
+
<p>Especially KANZI can be useful for very large databases on servers with many CPU cores as it yields in very small SQL script files. Its compression ratio beats BZip2 at a much faster speed.</p>
1160
+
<preclass="notranslate">
1161
+
# Database: testdb.mv.db (1.7GB)
1162
+
1163
+
# parallel compression using KANZI from https://github.com/flanglet/kanzi
# resulting SQL script files on a AMD Zen3 Ryzen5:
1173
+
# KANZI: testdb.h2.sql.knz ( 99.7 MB in 106 secs)
1174
+
# BZip2: testdb.h2.sql.bz2 (153.7 MB in 18 mins)
1175
+
# GZip: testdb.h2.sql.gz (207.4 MB in 74 secs)
1176
+
</pre>
1177
+
<p>Since H2-2.3.239 the <codeclass="notranslate">RunScript</code> tool can read the KANZI or BZip2 compressed script files directly when the libraries are added to the classpath:</p>
<li><ahref="https://github.com/h2database/h2database/pull/4258">PR #4258</a>: Fix compaction of encrypted databases
129
+
</li>
130
+
<li><ahref="https://github.com/h2database/h2database/issues/4263">Issue #4263</a>: Documentation: SET TRUNCATE_LARGE_LENGTH is broken
131
+
</li>
132
+
<li><ahref="https://github.com/h2database/h2database/issues/4208">Issue #4208</a>: Lost update when attempting to atomically increment a value using SELECT FOR UPDATE
133
+
</li>
134
+
<li><ahref="https://github.com/h2database/h2database/pull/4133">PR #4133</a>: DROP SYNONYM isn't dropping the synonym right away
135
+
</li>
136
+
<li><ahref="https://github.com/h2database/h2database/pull/4256">PR #4256</a>: Support KANZI and BZIP2 in RunScript
137
+
</li>
138
+
<li><ahref="https://github.com/h2database/h2database/pull/4254">PR #4254</a>: feat: direct recovery into a compressed SQL file using pipes
139
+
</li>
140
+
<li><ahref="https://github.com/h2database/h2database/issues/4247">Issue #4247</a>: Compaction causes missing chunks and data loss
<li><ahref="https://github.com/h2database/h2database/issues/4225">Issue #4225</a>: Incompatibility in FullTextLucene with Lucene version 10.x onward
145
+
</li>
146
+
<li><ahref="https://github.com/h2database/h2database/issues/4198">Issue #4198</a>: NullPointerException when running MERGE statement with correlated subquery in ON clause
<li><ahref="https://github.com/h2database/h2database/pull/4182">PR #4182</a>: GCD, LCM, GCD_AGG, and LCM_AGG functions
153
+
</li>
154
+
<li><ahref="https://github.com/h2database/h2database/issues/4178">Issue #4178</a>: SELECT MIN/MAX(_ROWID_) can be optimized
155
+
</li>
156
+
<li><ahref="https://github.com/h2database/h2database/issues/4179">Issue #4179</a>: Support for SQL Server DATETIMEOFFSET data type
157
+
</li>
158
+
<li><ahref="https://github.com/h2database/h2database/pull/4177">PR #4177</a>: Code cleanup around Table.getConstraints()/getIndexes()
159
+
</li>
160
+
<li><ahref="https://github.com/h2database/h2database/issues/4021">Issue #4021</a>: h2 does not correctly report the name of a violated unique constraint
<li><ahref="https://github.com/h2database/h2database/issues/4161">Issue #4161</a>: h2 uses wrong index
165
+
</li>
166
+
<li><ahref="https://github.com/h2database/h2database/issues/4159">Issue #4159</a>: Consider storing NO ACTION in the INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS columns
167
+
when this is the declaration
168
+
</li>
169
+
<li><ahref="https://github.com/h2database/h2database/issues/4152">Issue #4152</a>: NPE in convertToTimestampTimeZone on timestamp comparison
170
+
</li>
171
+
<li><ahref="https://github.com/h2database/h2database/pull/4150">PR #4150</a>: fix:Fix some errors in the javadoc
172
+
</li>
173
+
<li><ahref="https://github.com/h2database/h2database/pull/4149">PR #4149</a>: fix:Possible overflow issues with CacheLongKeyLIRS.getMisses()
174
+
</li>
175
+
<li><ahref="https://github.com/h2database/h2database/issues/4144">Issue #4144</a>: [2.3.232] Regression in ORDER BY ... DESC with WHERE ... IN and OR clauses
176
+
</li>
177
+
<li><ahref="https://github.com/h2database/h2database/issues/4139">Issue #4139</a>: Oracle compatibility mode: unexpected Column alias is not specified exception in CTE
178
+
</li>
179
+
<li><ahref="https://github.com/h2database/h2database/issues/4136">Issue #4136</a>: ArrayIndexOutOfBoundsException with compound index
180
+
</li>
181
+
<li><ahref="https://github.com/h2database/h2database/issues/4124">Issue #4124</a>: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "[0]" is null
182
+
</li>
183
+
<li><ahref="https://github.com/h2database/h2database/issues/4116">Issue #4116</a>: Optimizer chooses wrong execution plan in some cases when index-sorted optimization is possible
184
+
</li>
185
+
<li><ahref="https://github.com/h2database/h2database/issues/4114">Issue #4114</a>: Regression when using CAST expressions in ROW IN predicates
186
+
</li>
187
+
<li><ahref="https://github.com/h2database/h2database/issues/4111">Issue #4111</a>: ALTER TYPE name ADD VALUE new_enum_value is not supported
<li><ahref="https://github.com/h2database/h2database/issues/3322">Issue #3322</a>: Create linked table fails when the table contains a Geometry with a data type specified
557
-
</li>
558
-
<li><ahref="https://github.com/h2database/h2database/issues/3297">Issue #3297</a>: Unexpected GROUP BY results with indexed IGNORECASE column
0 commit comments