Data safety and recovery

Databases are very robust and will survive crashes in most situations. This document talks about the situations where data corruption or database integrity could be compromised.

A robust stream structure is used to manage row data within a database. A database can rely on the permanent file store's update integrity and that the database will survive a crash in most situations. This excludes the case where the file itself is corrupted. Such an aborted access causes a rollback on the database when it is next opened, all committed data is immediately available, though indexes may have been damaged as for a controlled rollback.

The database reports damage if it considers that it may have damaged indexes. When this is the case the database can still be used, but attempting to use any damaged index results in an error. Damaged indexes can be fully restored by recovering the database.

Compacting the store which contains the database also guarantees no data loss.

The store used by the database must not be committed or reverted while the database is inside a transaction. This can lead to loss of structural integrity within the database. Such damage is not repairable by DBMS.

The database streams cannot be corrupted by any action of DBMS itself, but misuse of the store, the file or damage to the file system resulting in such corruption may be detected by the database and reported as an error. DBMS cannot repair such damage to a database.