Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Воспроизведение

Воспроизведение (регенерация) (recovery) – это способность СУБД уцелеть после аварии системы и воспроизвести выполненные транзакции. SQL Server не выполняет запись на диск после каждого изменения, вносимого в базу данных. Если бы это было так, то большие системы работали бы чрезвычайно медленно, поскольку в каждой транзакции приходилось бы ждать, пока не закончится очередная запись, создающая задержку в системе.

Именно задержки при записи изменений на диск приводят к тому, что база данных после отказа системы может остаться в запорченном состоянии из-за того, что некоторые изменения, внесенные в базу данных, могли быть не записаны на диск, а изменения, записанные на диск, могли быть не зафиксированы. Для поддержки целостности базы данных SQL Server протоколирует все изменения в журнале транзакций. При запуске SQL Server после отказа системы журнал транзакций используется для повторного исполнения (воспроизведения) транзакций, которые были фиксированы, но не записаны на диск, и отката (отмены результатов) транзакций, которые не были фиксированы на момент аварии системы. Такой подход гарантирует точность данных.

SQL Server различает обработку нескольких типов транзакций в процессе воспроизведения, включая следующие транзакции:

  • транзакции, содержащие только запросы – никакого воспроизведения не требуется;

  • транзакции, которые внесли изменения в данные базы данных и были фиксированы, но не были записаны на диск – во время воспроизведения SQL Server читает страницы данных с диска, снова вносит изменения и затем перезаписывает эти страницы на диск;

  • транзакции, которые внесли изменения в данные базы данных, были фиксированы и записаны на диск – во время воспроизведения SQL Server определяет, что изменения были действительно записаны на диск;

  • транзакции, которые внесли изменения в данные базы данных, но не были фиксированы – во время воспроизведения SQL Server использует журнал транзакций для отката (отмены) всех изменений, внесённых в страницы данных, и восстанавливает базу данных к состоянию, в котором она была до запуска этих транзакций.

При запуске SQL Server после аварии системы происходит автоматический запуск механизма воспроизведения. В этом механизме воспроизведения используется журнал транзакций, позволяющий определить, для каких транзакций требуется воспроизведение и для каких не нужно. Многие транзакции не требуют воспроизведения, но SQL Server должен прочитать журнал транзакций, чтобы определить, каким транзакциям это все же требуется. SQL Server начинает чтение журнала транзакций с момента создания последней контрольной точки.

Отказы системы

Рассмотрим некоторые из потенциальных причин отказов и способы восстановления после этих отказов.

Некоторые из отказов могут носить умеренный характер; некоторые могут оказаться разрушительными. Чтобы понять важность резервного копирования, необходимо знать о трёх основных категориях отказов: отказы оборудования, отказы программного обеспечения и человеческие ошибки.

Отказы оборудования

Отказы оборудования – это, видимо, наиболее распространённый тип отказов, с которыми сталкивается администратор баз данных. Хотя эти отказы возникают менее часто по мере роста надёжности компьютерного оборудования, но компоненты компьютеров всё равно со временем становятся подвержены износу. Вот следующие типичные отказы оборудования:

  • отказ ЦП (CPU), памяти или шины (магистрали) данных – эти отказы обычно приводят к аварийному отказу системы; после замены неисправного компонента и перезапуска системы SQL Server автоматически выполняет воспроизведение базы данных; собственно база данных непосредственно не затрагивается таким отказом, поэтому её восстановление с резервной копии, как правило, не требуется; SQL Server просто должен воспроизвести потерянные транзакции;

  • отказ диска – в случае использования отказоустойчивых матриц RAID отказ этого типа, возможно, вообще не повлияет на состояние базы данных; следует просто отремонтировать матрицу RAID; при отказе всей матрицы RAID единственной альтернативой является восстановление базы данных из резервной копии и использование резервных копий журнала транзакций для воспроизведения базы данных;

  • катастрофический отказ системы или полная потеря сервера – при разрушении всей системы из-за пожара или другой катастрофы, возможно, потребуется восстановление «с нуля»; потребуется новое оборудование, восстановление базы данных с резервной копии и воспроизведение базы данных с помощью резервных копий данных и журнала транзакций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]