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.

Reply via email to