Hi,
Now that I have recovered my database, I am trying to setup a better backup
system by extracting the data using org.h2.tools.Script.
Steps do far:
1. Recover
2. move *.db to a save location
3. RunScript -url jdbc:h2:./ReviewDB -script ReviewDB.h2.sql
4. Script -url jdbc:h2:./ReviewDB -script ReviewDB.zip -options compression
zip [1]
When Script executes I get this exception:
Exception in thread "main" org.h2.jdbc.JdbcSQLException: IO Exception:
"java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing
lob entry, block: 2241"" [90028-174]"; "lob: null table: 56 id: 4058"; SQL
statement:
SCRIPT TO 'ReviewDB.zip' compression zip [90031-174]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:161)
at org.h2.message.DbException.convertIOException(DbException.java:318)
at org.h2.value.ValueLobDb.getString(ValueLobDb.java:320)
at org.h2.value.ValueLobDb.getSQL(ValueLobDb.java:433)
at
org.h2.command.dml.ScriptCommand.generateInsertValues(ScriptCommand.java:416)
at org.h2.command.dml.ScriptCommand.query(ScriptCommand.java:291)
at org.h2.command.CommandContainer.query(CommandContainer.java:91)
at org.h2.command.Command.executeQuery(Command.java:196)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:156)
at org.h2.tools.Script.processScript(Script.java:126)
at org.h2.tools.Script.runTool(Script.java:111)
at org.h2.tools.Script.main(Script.java:53)
Caused by: java.io.IOException: org.h2.jdbc.JdbcSQLException: IO Exception:
"Missing lob entry, block: 2241" [90028-174]
at org.h2.message.DbException.convertToIOException(DbException.java:351)
at
org.h2.store.LobStorageBackend$LobInputStream.fillBuffer(LobStorageBackend.java:780)
at
org.h2.store.LobStorageBackend$LobInputStream.readFully(LobStorageBackend.java:752)
at
org.h2.store.LobStorageBackend$LobInputStream.read(LobStorageBackend.java:743)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.read1(BufferedReader.java:212)
at java.io.BufferedReader.read(BufferedReader.java:286)
at org.h2.util.IOUtils.copyAndCloseInput(IOUtils.java:196)
at org.h2.util.IOUtils.readStringAndClose(IOUtils.java:301)
at org.h2.value.ValueLobDb.getString(ValueLobDb.java:310)
... 10 more
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob entry,
block: 2241" [90028-174]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:172)
at org.h2.message.DbException.get(DbException.java:149)
at org.h2.store.LobStorageBackend.readBlock(LobStorageBackend.java:237)
at
org.h2.store.LobStorageBackend$LobInputStream.fillBuffer(LobStorageBackend.java:776)
... 22 more
How does my recovered database start off being corrupt? Is there something
I need to fix/edit in the ReviewDB.h2.sql to prevent this? Should I use a
newer version of H2 for this recovery? I am currently using 1.3.174.
I have run a recover on this recovered database and still have a missing
lob, just a different id.
Michael
[1] This is a modified version of Script to use userid/password of null
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.