Восстановление базы данных осуществляется в случае ее физического повреждения или нарушения целостности. Целостность базы данных есть свойство базы данных, означающее, что в ней содержится полная, непротиворечивая и адекватно отражающая предметную область информация. Поддержание целостности базы данных включает проверку целостности и ее восстановление в случае обнаружения противоречий в базе данных.
В число часто используемых средств восстановления базы данных входят резервное копирование и журнал изменений базы данных.
При осуществлении резервного копирования базы данных необходимо выполнять следующие требования:
· копия создается в момент, когда состояние базы данных является целостным;
· копия создается на иных внешних устройствах, чем то, на котором располагается сама база. Это вызвано тем, что в случае выхода из строя этого устройства восстановить базу данных будет невозможно.
Полная резервная копия включает всю базу данных – все файлы базы данных, в том числе, вспомогательные, состав которых зависит от СУБД. Частичная резервная копия включает часть базы данных, определенную пользователем. Периодичность резервного копирования зависит от многих факторов: интенсивности обновления данных, частоты выполнения запросов, объема базы данных и др. В случае сбоя или аварии носителя базы данных ее можно восстановить на основе последней резервной копии.
Общая стратегия восстановления базы данных заключается в переносе на рабочее устройство резервной копии базы данных или той ее части, которая была повреждена, и повторном проведении всех изменений, зафиксированных после создания данной резервной копии и до момента возникновения сбоя.
Журнал изменений базы данных – это особая часть базы данных, недоступная пользователям СУБД, в которую поступают записи обо всех изменениях основной части базы данных. Для эффективной реализации функции ведения журнала изменений базы данных необходимо обеспечить повышенную надежность хранения и поддержания в рабочем состоянии самого журнала. Иногда для этого в системе хранят несколько копий журнала. В разных СУБД изменения базы данных фиксируются в журнале на разных уровнях. Иногда запись в журнале соответствует некоторой операции изменения базы данных (например, операции удаления строки из таблицы реляционной базы данных), а иногда – минимальной внутренней операции модификации страницы внешней памяти. В некоторых системах одновременно используются оба подхода. В большинстве современных реляционных СУБД журнал изменений называется журналом транзакций. В нем регистрируются в хронологическом порядке все изменения, вносимые в базу данных каждой транзакцией.
Для хранения и восстановления данных в настоящее время широкое распространение получили упомянутые в предыдущей лекции RAID – массивы.
RAID-массивы (Redundant Arrays of Inexpensive Disks) представляют собой объединения нескольких сравнительно дешевых жестких дисков (винчестеров) в одно логическое устройство с целью повышения общей емкости, быстродействия и надежности.
С программной точки зрения RAID представляет собой определенные алгоритмы записи информации на вышеуказанные диски.
· алгоритмы простого дублирования информации на нескольких дисках (RAID0,RAID1)
· алгоритмы распределения информации с использованием дополнительных дисков, на которых хранятся специальные коды обнаружения ошибок и восстановления данных (RAID2,RAID3, RAID4)
· алгоритмы распределения информации, где коды обнаружения ошибок и восстановления данных хранятся на тех же диска, что и данные (RAID5)
Когда необходимо прочитать данные, выполняется обратное действие, при этом создается впечатление, что несколько дисков становятся одним большим диском. В случае повреждения данных с помощью записанных кодов обнаружения ошибок и восстановления данные могут быть восстановлены.
Для хранения баз данных, объем у которых превышает 1 Тбайт, используются специальные системы хранения.
В настоящее время на рынке продолжают сосуществовать три основные архитектуры систем хранения:
· системы прямого подключения типа DAS (Direct-Attached Storage);
· устройства хранения данных, подключаемые к сети NAS (Network Attached Storage);
· сети хранения данных SAN (Storage Area Network).
Система хранения DAS (обычно дисковая или ленточная) подключается через интерфейс непосредственно к процессору компьютера. Простейшие примеры DAS — накопитель на жестком диске внутри компьютера или ленточный накопитель, подключенный к единственному серверу. Запросы ввода-вывода (называемые также командами или протоколами передачи данных) непосредственно обращаются к этим устройствам. К преимуществам DAS следует отнести низкую начальную стоимость капиталовложений.
Устройство хранения данных в архитектуре NAS обычно содержит серверный процессор и систему дисковой памяти и подключается к сети (локальной или глобальной). Для доступа к устройствам NAS служат специальные протоколы доступа к файлам и совместного доступа к файлам. NAS оптимизирована по простоте управления и по совместному доступу к файлам с использованием недорогих сетей. В отличие от обычных серверов в NAS хранятся только архивы (копии файлов), обрабатывать которые невозможно внутри NAS. Основное достоинство подобной системы — финансовая доступность (за счет низкой стоимости приобретения и меньших эксплуатационных расходов в сравнении с SAN).
В случае SAN система хранения данных реализована в специализированной локальной сети. Как и в DAS, в этой архитектуре запросы ввода-вывода непосредственно обращаются к устройствам хранения. В большинстве современных сетей SAN используется высокопроизводительный канал, который обеспечивает произвольное соединение процессоров и устройств хранения данных в сети. SAN оптимизирована по производительности (большой объем передаваемых данных), по масштабируемости (несколько ленточных и дисковых накопителей управляются из одного центра) и по надежности (специализированные средства резервного копирования могут снизить загрузку серверов и локальной сети).