![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Please tell me what possible reasons there could be for getting corruption in databases? |
#3
| |||
| |||
|
|
* Brandon Rotated: Please tell me what possible reasons there could be for getting corruption in databases? Faulty hardware, bugs in application code (I once omitted DB_THREAD on an environment which was used for changing databases and checkpointing at the same time, duh), kernel bugs, Berkeley DB bugs. Try enabling DB_CHKSUM; in my experience, this is pretty good at detecting hardware issues. |
#4
| |||
| |||
|
|
For years we've been having periodic problems with our Berkeley DBs -- some type of problem with the data file itself -- it seems to affect databases more frequently if they are accessed at higher volume, and it's likely, but not necessarily true, that it is related to concurrent access to the databases. We have a locking system where readers/writers must obtain the lock prior to the db->open() (shared readers, exclusive writers; again, the lock is obtained before the file is accessed in any way). |
|
Periodically we'll end up with an error in a database, or in get/putting records. Error -30987 (DB_RUNRECOVERY "Panic return"), or -30981 (on a put(), for instance). -30981 is DB_PAGE_NOTFOUND/"Requested page not found." (Details included out of consideration for people searching messages). |
#5
| |||
| |||
|
|
For years we've been having periodic problems with our Berkeley DBs -- some type of problem with the data file itself -- it seems to affect databases more frequently if they are accessed at higher volume, and it's likely, but not necessarily true, that it is related to concurrent access to the databases. We have a locking system where readers/writers must obtain the lock prior to the db->open() (shared readers, exclusive writers; again, the lock is obtained before the file is accessed in any way). |
|
Periodically we'll end up with an error in a database, or in get/putting records. Error -30987 (DB_RUNRECOVERY "Panic return"), or -30981 (on a put(), for instance). -30981 is DB_PAGE_NOTFOUND/"Requested page not found." (Details included out of consideration for people searching messages). |
![]() |
| Thread Tools | |
| Display Modes | |
| |