2.7.4 Схемы восстановления согласно ошибкам

Вместо простого взвешивания причин различных проблем можем разделить соответствующие ответные меры следующим образом:
- Можно избежать логических ошибок, вызванных ошибочным вводом данных или процедурными ошибками, путем установления корректных ограничений БД (constraints), таких как определение первичных ключей, проверка ссылочной целостности или используя логические представления (views) для транзакций. Очевидно, что не все ошибки могут быть устранены или не всех возможно избежать. Например, 3 из 5 ошибок ввода данных, в общем случае, автоматически не распознаваемы (идентифицированы), но если ошибка обнаружена или известна, то следом должна последовать процедура исправления ошибок для обновления данных.
- Ошибки и крах системы можно предотвратить избыточностью (как это часто делается в авиационном секторе, где несколько системных процессов работают параллельно с одними и теми же данными, вместе с механизмом голосования, который делает откат несовпадающих результатов). Зная общий уровень надежности системы, обычно оперируют с логикой сокращения потерь на основе плана выполнения резервного копирования. В случае если желаем высокий уровень доступности, можно работать на удаленной копии базы данных, так что если случится сбой системы, можно во время операции восстановления перенаправить нагрузку в другую базу данных.
- Для снижения рисков повреждения дисков обычно используют RAID диски: в этом случае, можно продолжать работу, если единичный диск отказывается работать. Можно также использовать технику автоматизированной замены диска для замены неисправного диска. В случае одновременной неисправности более чем одного диска используют также политику резервного копирования для восстановления данных. Очевидно, что разумным решением является политика удаленного отображения.