Hi, The problem with growing index files will be solved in the next release.
If you can't start the database after deleting the index file, then there is a problem with the data. You should then run SCRIPT TO 'test.sql' to check if everything is OK; probably you need to use the recovery tool. If you have time, could you answer the following questions please? - What is your database URL? - What version H2 are you using? (it looks like version 1.1.102) - Did you use multiple connections? - A workarounds is: use the tool org.h2.tools.Recover to create the SQL script file, and then re-create the database using this script. Does it work when you do this? - With which version of H2 was this database created? You can find it out using: select * from information_schema.settings where name='CREATE_BUILD' - Do you use any settings or special features (for example, the setting LOG=0, or two phase commit, linked tables, cache settings)? - Is the application multi-threaded? - What operating system, file system, and virtual machine (java -version) do you use? - How big is the database (file sizes)? - Is the database usually closed normally, or is process terminated forcefully or the computer switched off? - Is it possible to reproduce this problem using a fresh database (sometimes, or always)? - Are there any other exceptions (maybe in the .trace.db file)? Could you send them please? - Do you still have any .trace.db files, and if yes could you send them? - Could you send the .data.db file where this exception occurs? Regards, Thomas On Mon, Jan 5, 2009 at 1:56 PM, Alex <[email protected]> wrote: > > Hello Thomas, > > Thanks for your help. > We noticed that the database corruption happens fairly randomly when > the index file is deleted. > However it seems only be happening when we use option LOG=2. We used > LOG=2 option to reduce the DB start-up time (not having to recreate > the index). Unfortunately the LOG=2 option has other severe problems > that are preventing us from using it any more. > > Please see my separate post with the test program. > http://groups.google.com/group/h2-database/browse_thread/thread/7c13b140b59cac36# > > Thank you, > Alex > > > > > On Jan 4, 12:55 pm, "Thomas Mueller" <[email protected]> > wrote: >> Hi, >> >> > Caused by: java.lang.RuntimeException: rowcount remaining=-1 >> >> MD_SEGMENTS >> at org/h2/message/Message.getInternalError (Unknown Source) >> at org/h2/table/TableData.addIndex (Unknown Source) >> at org/h2/command/ddl/CreateIndex.update (Unknown Source) >> >> This looks like a database corruption. Most likely you can open the >> database using the database URL of the form jdbc:h2:~/test;RECOVER=1 >> but I still have some questions, see below. >> >> > What is supposed to happen when the database is open if the index file >> > was deleted, but the transaction log contains some data referring to >> > the deleted index file ? >> >> As the indexes are re-built after opening anyway, the entries are ignored. >> >> - What is your database URL? >> - You can find out if the database is corrupted when running >> SCRIPT TO 'test.sql' >> - What version H2 are you using? (it looks like version 1.1.102) >> - Did you use multiple connections? >> - The first workarounds is: append ;RECOVER=1 to the database URL. >> Does it work when you do this? >> - The second workarounds is: delete the index.db file >> (it is re-created automatically) and try again. Does it work when >> you do this? >> - The third workarounds is: use the tool org.h2.tools.Recover to create >> the SQL script file, and then re-create the database using this script. >> Does it work when you do this? >> - With which version of H2 was this database created? >> You can find it out using: >> select * from information_schema.settings where name='CREATE_BUILD' >> - Do you use any settings or special features (for example, the setting >> LOG=0, >> or two phase commit, linked tables, cache settings)? >> - Is the application multi-threaded? >> - What operating system, file system, and virtual machine >> (java -version) do you use? >> - How big is the database (file sizes)? >> - Is the database usually closed normally, or is process terminated >> forcefully >> or the computer switched off? >> - Is it possible to reproduce this problem using a fresh database >> (sometimes, or always)? >> - Are there any other exceptions (maybe in the .trace.db file)? >> Could you send them please? >> - Do you still have any .trace.db files, and if yes could you send them? >> - Could you send the .data.db file where this exception occurs? >> >> > 1. backup your files (don't skip this step) >> > 2. delete the index file >> >> Sure, this is a good idea >> >> > 3. delete the log file >> >> You shouldn't do this, because you will lose committed transactions, >> and because it will leave the database in an inconsistent state. >> >> Regards, >> Thomas > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/h2-database?hl=en -~----------~----~----~----~------~----~------~--~---
