В сервере Oracle (начиная с версии 8.1.6) присутствует ряд внутренних усовершенствований, которые предоставляют более широкие возможности по борьбе с повреждением данных.
■ Защита против логического повреждения данных
Логические повреждения данных обычно вызываются ошибками в приложении и их трудно исправить, так как они зафиксированы в журнальных файлах. Большинства логических повреждений можно избежать, задействовав проверку блоков, которая может обнаружить и выполнить откат изменений, повреждающих базу данных Проверка блоков усовершенствована следующим образом:
- сервер Oracle проверяет блоки большего числа типов, например, блоки сегментов отката, блоки таблицы транзакций и блоки заголовков сегментов;
- проверка блоков выполняется более эффективно, а именно: проверяется большее число блоков без увеличения нагрузки на систему;
- проверка блоков для табличного пространства SYSTEM всегда включена, независимо от установок параметра инициализации DB_BLOCK_CHECKING.
■ Защита против повреждений в оперативной памяти
Если проверка блоков включена, то процесс записи в базу данных выполняет эту проверку немедленно, до записи блока на диск. Такая проверка позволяет серверу Oracle выявить некоторые поврежденные блоки, когда те еще находятся в оперативной памяти, и автоматически исправить поврежденный блок до записи на диск.
■ Защита против физических повреждений данных
Обычно сервер Oracle выявляет ошибки ввода-вывода по контрольной сумме, хранящейся в каждом блоке данных. Сервер Oracle всегда выполняет вычисление контрольной суммы в табличном пространстве SYSTEM независимо от установок параметра DB_BLOCK_ CHECKSUM.
Если при чтении данных из журнальных файлов или управляющего файла вычисленная контрольная сумма не совпадает с контрольной суммой, хранящейся в блоке данных, то сервер Oracle считывает данные заново либо из другого журнального файла, либо из того же самого в большем числе ситуаций, чем в предыдущих версиях сервера. Таким образом, появляется дополнительная возможность обнаружить корректную копию данных и исправить любые физические повреждения данных.