What do do if you suspect you have experienced database corruption (gds software consistency check)
The only course of action for a corrupted database is to restore to your most recent backup!
Sources of Data Corruption
Data corruption can occur from a number of outside sources beyond the control of the software. Here is a partial listing of these outside sources:
- An abrupt power loss or crash from unclean power
- Hard drive corruption or malfunction
- Direct editing of database tables
- Improper data import
- Third party applications that update the database
- Users logging in during an update or restore process
- Restoring a backup to a running database
Signs of Data Corruption
If you encounter any of these error messages during the course of system operation, it is an indication that some data corruption has occurred.
- Internal gds software consistency check
- Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)
- Decompression overran buffer
- Wrong record length
- Database file appears corrupt. Bad checksum
- Cannot find record back version
- Next transaction older than oldest active transaction
- Corrupted header page (at least)
- Conversion error from string
- INET/inet_error: read errno = 10054 or 10038 or 10093
- Partner index description not found (175))
What to do if data corruption occurs
If you encounter data corruption, as evidenced by any of the error messages listed in the previous section, do not continue using the system.
If you encounter data corruption, stop using the system immediately and do a recovery restore from the last daily backup before the corruption was first noticed.
Do not keep using the system. This can perpetuate the corruption indefinitely, making it impossible to determine how many backups you must revert to in order to find a safe restore point.
The only remedy is to restore from backup
Once a database is corrupted, your only remedy is to do a recovery restore from backup. You will lose all transactions made since your last backup and must reenter them once again. If you backup daily, you can limit the amount of reentry to one day’s transactions, which is inconvenient, but certainly achievable.
If you do not have a backup:
If you do not have a recent backup or no backup at all, you may have to reenter days, weeks, or even months of transactions or start over with a clean database.
If you have allowed data corruption to perpetuate:
If you have allowed data corruption to perpetuate without restoring from backup at the time it was first noticed, your data may be hopelessly corrupted, requiring you to start over with a clean database.
Our ability to help is limited to recovery advice
We are not able to repair a corrupt database, nor is it advisable to use any third party programs to repair a database. These utilities drop corrupted data leaving your system vulnerable to failure. Our ability to help is limited to providing support with the recovery restore from backup process or advising how to start over with a clean database.
Suggested Safeguards
1. Daily Scheduled Backups (absolutely critical)
2. Install a power protection system (UPS)
An abrupt power loss or crash from unclean power is the most common cause of data corruption. Factories are especially subject to power fluctuations. It is imperative that you protect your server with a power protection system that includes surge suppression, power conditioning, and battery backup.
3. Do not edit your database tables
Never directly edit or manipulate your database tables, even if you have a tool that enables you to do so. This is extremely dangerous and can result in severe data loss. This practice also violates section 5 of the current DBA Software License and Maintenance Agreement.
4. Do not import data with non-DBA utilities
Never import data by any means other than the Data Import utility included with the system. Only use the Data Import utility for initial import and not for updating existing records. Avoid third party data import programs. The big risk you take by violating these guidelines is that you can “infect” your system with corrupt data from day one that can cause chronic problems that can never be purged from your system.
5. Do not use third party applications that update the database
Custom programs or reports that exttract data from the databae are fine, but DO NOT USE any third party program that updates the database. This is extremely dangerous and can render your system unsupportable.