[ZODB-Dev] Recovering from BTree corruption
Alan Runyan
runyaga at gmail.com
Mon Sep 10 10:34:42 EDT 2007
Hi guys.
It seems that one of our customers has a corrupted BTree. I would love
for someone to provide some insight on how we can recover the data.
we have two databases: 1 for resources and 1 for 'content'. resources
contain lots of very big files.
The system is configured to have a mount point at /plone/resources is
a subclass of BTreeFolder, using internal data struct of OOBTree.
anytime I iterate over the keys I get POSKeyError. anytime I iterate
over the values the same. if I run BTree.check() on the data
structure's tree attribute (the OOBTree itself) I get a POSKeyError.
Running the utils.checkbtrees doesnt say this btree has a problem.
While debugging this I had a conversation with sidnei about mounted
databases. He recalled that if your using a mounted database you
should not pack. If for some reason your mounted database had a cross
reference to another database and somehow you had a dangling reference
to the other database it would cause POSKeyError.
Is there any other ways of "testing consistency" of FileStorage other than:
- checkbtrees.py
- fstest.py
And any ideas how I can salvage the data? This BTree, of course, had
the most valuable data.
cheers
--
Alan Runyan
Enfold Systems, Inc.
http://www.enfoldsystems.com/
phone: +1.713.942.2377x111
fax: +1.832.201.8856
More information about the ZODB-Dev
mailing list