PDA

View Full Version : How to fix "database disk image is malformed" errors


kinook
05-29-2007, 03:27 PM
This error indicates that your .urd file has become corrupted somehow. Ultra Recall uses the SQLite embedded database engine (http://www.sqlite.org) to manage .urd file data, which is very robust, providing full ACID capabilities (the same capabilities of high-end databases such as Oracle or SQL Server).

The only causes of corruption that we've seen are:
* Flaky hard drive
* The system (OS) crashes while an update is in progress and related temporary journal files are deleted before Ultra Recall is restarted (the journal files are needed to properly rollback the partially completed update)
* The .urd file was corrupted by another application (for instance, a backup, restore, or sync tool)

Ways to recover from this situation:
1) Use a good backup copy of the database (preferred).
2) Create a new database (.urd file), then use Cross-DB Copy to copy all uncorrupted data to the new .urd file.
3) Download http://www.kinook.com/Download/Misc/RepairUR.zip and follow the instructions below to remove corrupted data from the .urd file.

Instructions for using method #3:
1) Extract the ZIPped files to the same folder as a copy of the malformed .urd file
2a) Double-click FixAll.bat to recover all *.urd files in the folder
or
2b) Run Fix.bat "name of .urd file" from a Command Prompt to fix only a single .urd file (for example: Fix.bat "c:\temp\my data.urd")

For each .urd file processed, if the database can be repaired, a repaired copy of database will be created with the name <original name>_repaired.urd

Notes:
* If the database is password-protected, you must remove the password first.
* As always, make a backup of your .urd files beforehand.
* Depending on the size of the .urd files, this could take some time to execute.
* This utility is not compatible with databases having full-text search enhancements enabled. Disable FTS features at Tools | Compact & Repair, then repair the database, and then re-enable FTS features afterwards.