[sqlite] Unable to recover the DB by vacuum
Thanks lot Pavel, >I only had two problem tables and luckily these seldom change, for these I went back to the week old backup and cut them out of the dump file and applied them to the newly created database. Now I integrity_check more often i will try out ".dump option", i done last time also, i didn't able to recover the complete DB, the removing the some corrupt rows might have helped me, i will try out this, thanks JIM Please do not print this email unless it is absolutely necessary. The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Unable to recover the DB by vacuum
I recently had a similar problem, not wanting to fall back to a week old dump of the database, what I did was to command line ".dump"ed the defective database and attempt a reload. I only had two problem tables and luckily these seldom change, for these I went back to the week old backup and cut them out of the dump file and applied them to the newly created database. Now I integrity_check more often. On Tue, Feb 23, 2010 at 3:54 AM, Pavel Ivanovwrote: >> How can i recover this kind of DB, is it possible? and is there any way >> to avoid these >> unused pages, will enable auto_vacuum solve the problem ? > > 'VACUUM' is not designed to recover malformed database. Yes, there are > some kinds of problems that can be eliminated during vacuuming, but > not all of them. And automatic vacuuming will never guarantee you > protection against database corruption. When properly used SQLite will > protect from database corruption itself. If you've got corrupted > database it means that you have either bad application or your > database file resides on some bad file system. > > > Pavel > > On Tue, Feb 23, 2010 at 5:33 AM, wrote: >> Hi All, >> >> I found the DB corruption (malformed database), reporting some unused >> pages, >> please find the below trace, >> >> *** in database main *** >> Main freelist: 21 of 21 pages missing from overflow list starting at 0 >> Page 1604: sqlite3BtreeInitPage() returns error code 11 >> Page 1461 is never used >> Page 1468 is never used >> Page 1469 is never used >> Page 1472 is never used >> Page 1473 is never used >> Page 1474 is never used >> Page 1475 is never used >> Page 1478 is never used >> Page 1480 is never used >> Page 1482 is never used >> Page 1484 is never used >> Page 1485 is never used >> Page 1486 is never used >> Page 1488 is never used >> Page 1489 is never used >> Page 1491 is never used >> Page 1517 is never used >> Page 1531 is never used >> Page 1536 is never used >> Page 1578 is never used >> Page 1581 is never used >> >> I tried to recover the DB, by running "vacuum", its failed again saying >> "SQL error: database disk image is malformed". >> >> How can i recover this kind of DB, is it possible? and is there any way >> to avoid these >> unused pages, will enable auto_vacuum solve the problem ? >> >> I am using 3.5.8 version. and DB size is 1.6M >> >> Thanks in advance. >> >> Regards, >> Ramesh >> >> >> Please do not print this email unless it is absolutely necessary. >> >> The information contained in this electronic message and any attachments to >> this message are intended for the exclusive use of the addressee(s) and may >> contain proprietary, confidential or privileged information. If you are not >> the intended recipient, you should not disseminate, distribute or copy this >> e-mail. Please notify the sender immediately and destroy all copies of this >> message and any attachments. >> >> WARNING: Computer viruses can be transmitted via email. The recipient should >> check this email and any attachments for the presence of viruses. The >> company accepts no liability for any damage caused by any virus transmitted >> by this email. >> >> www.wipro.com >> ___ >> sqlite-users mailing list >> sqlite-users@sqlite.org >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >> > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- Jim "Jed" Dodgen j...@dodgen.us ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Unable to recover the DB by vacuum
> How can i recover this kind of DB, is it possible? and is there any way > to avoid these > unused pages, will enable auto_vacuum solve the problem ? 'VACUUM' is not designed to recover malformed database. Yes, there are some kinds of problems that can be eliminated during vacuuming, but not all of them. And automatic vacuuming will never guarantee you protection against database corruption. When properly used SQLite will protect from database corruption itself. If you've got corrupted database it means that you have either bad application or your database file resides on some bad file system. Pavel On Tue, Feb 23, 2010 at 5:33 AM,wrote: > Hi All, > > I found the DB corruption (malformed database), reporting some unused > pages, > please find the below trace, > > *** in database main *** > Main freelist: 21 of 21 pages missing from overflow list starting at 0 > Page 1604: sqlite3BtreeInitPage() returns error code 11 > Page 1461 is never used > Page 1468 is never used > Page 1469 is never used > Page 1472 is never used > Page 1473 is never used > Page 1474 is never used > Page 1475 is never used > Page 1478 is never used > Page 1480 is never used > Page 1482 is never used > Page 1484 is never used > Page 1485 is never used > Page 1486 is never used > Page 1488 is never used > Page 1489 is never used > Page 1491 is never used > Page 1517 is never used > Page 1531 is never used > Page 1536 is never used > Page 1578 is never used > Page 1581 is never used > > I tried to recover the DB, by running "vacuum", its failed again saying > "SQL error: database disk image is malformed". > > How can i recover this kind of DB, is it possible? and is there any way > to avoid these > unused pages, will enable auto_vacuum solve the problem ? > > I am using 3.5.8 version. and DB size is 1.6M > > Thanks in advance. > > Regards, > Ramesh > > > Please do not print this email unless it is absolutely necessary. > > The information contained in this electronic message and any attachments to > this message are intended for the exclusive use of the addressee(s) and may > contain proprietary, confidential or privileged information. If you are not > the intended recipient, you should not disseminate, distribute or copy this > e-mail. Please notify the sender immediately and destroy all copies of this > message and any attachments. > > WARNING: Computer viruses can be transmitted via email. The recipient should > check this email and any attachments for the presence of viruses. The company > accepts no liability for any damage caused by any virus transmitted by this > email. > > www.wipro.com > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Unable to recover the DB by vacuum
Hi All, I found the DB corruption (malformed database), reporting some unused pages, please find the below trace, *** in database main *** Main freelist: 21 of 21 pages missing from overflow list starting at 0 Page 1604: sqlite3BtreeInitPage() returns error code 11 Page 1461 is never used Page 1468 is never used Page 1469 is never used Page 1472 is never used Page 1473 is never used Page 1474 is never used Page 1475 is never used Page 1478 is never used Page 1480 is never used Page 1482 is never used Page 1484 is never used Page 1485 is never used Page 1486 is never used Page 1488 is never used Page 1489 is never used Page 1491 is never used Page 1517 is never used Page 1531 is never used Page 1536 is never used Page 1578 is never used Page 1581 is never used I tried to recover the DB, by running "vacuum", its failed again saying "SQL error: database disk image is malformed". How can i recover this kind of DB, is it possible? and is there any way to avoid these unused pages, will enable auto_vacuum solve the problem ? I am using 3.5.8 version. and DB size is 1.6M Thanks in advance. Regards, Ramesh Please do not print this email unless it is absolutely necessary. The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users