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

Размер журнала транзакций

В зависимости от числа изменений, вносимых в базу данных, журнал транзакций может увеличиваться до больших размеров. Поскольку журнал транзакций состоит из одного или нескольких файлов, размер которых, как правило, ограничен, этот журнал будет заполняться до конца, и поэтому его приходится время от времени усекать. Автоматическое усечение журнала выполняется по завершении его резервного копирования.

Воспроизведение с помощью журнала транзакций

В случае отказа системы, при котором не повреждены файлы данных, текущий журнал транзакций используется для воспроизведения базы данных, поскольку это требуется для повторного исполнения транзакций, которые ещё не были записаны на диск. Количество требующих воспроизведения страниц зависит от количества ожидающих записи (черновых) страниц в базе данных, которое, в свою очередь, определяется интервалом между контрольными точками. При создании очередной контрольной точки происходит запись всех черновых страниц на диск, что позволяет уменьшить время, необходимое для воспроизведения.

Свойства журнала транзакций

Журнал транзакций имеет следующие характеристики:

  • обработка журнала транзакций отличается от обработки обычного файла данных; при записи и чтении не используются 8-килобайтные страницы, как для файлов данных; формат страниц данных вообще не используется для журнала транзакций: запись может выполняться группами любого размера; таким образом, если потоку записи журнала требуется записать лишь небольшое количество данных, он не будет использовать для этого 8 Кб данных; при частых обновлениях системы поток записи журнала может выполнять запись крупными блоками данных (16 Кб, 32 Кб и т.д.);

  • журнал транзакций можно сконфигурировать для автоматического увеличения по мере необходимости; это средство позволяет добавлять при необходимости больший объём пространства, но его следует использовать с осторожностью, чтобы не допустить неконтролируемый рост журнала транзакций и использование всего диска этим журналом;

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

  • журнал транзакций можно перемещать на другие системы для его воспроизведения на резервной системе; это средство называется доставкой журнала транзакций.

Непротоколируемые операции

Как уже говорилось, обычно все транзакции и изменения, которые они вносят, записываются в журнал транзакций. Однако в журнал транзакций не записываются некоторые операции. Такие операции называются непротоколируемыми.

Непротоколируемые операции не записываются в журнал транзакций, поэтому их необходимо повторять вручную при воспроизведении и тщательно продумать последствия активизации непротоколируемых операций, прежде чем сделать это. Имеются следующие операции, которые можно выполнять как непротоколируемые операции:

  • SELECT INTO;

  • BULK COPY и программа массового копирования (BCP);

  • CREATE INDEX;

  • определённые текстовые операции.

Чтобы активизировать непротоколируемые массовые операции с определённой базой данных, необходимо задать для работы этой базы данных режим воспроизведения BULK_LOGGED. Кроме этого режима, можно также задавать режимы воспроизведения FULL и SIMPLE. Эти режимы задаются с помощью команды ALTER DATABASE, как это показано здесь для базы данных ДляПрактик:

ALTER DATABASE ДляПрактик

SET RECOVERY BULK_LOGGED

ALTER DATABASE ДляПрактик

SET RECOVERY FULL

ALTER DATABASE ДляПрактик

SET RECOVERY SIMPLE

При использовании режима BULK_LOGGED массовые операции не протоколируются в журнале, а все остальные операции протоколируются. Если выбран режим воспроизведения FULL, то протоколируются все операции. А в случае режима SIMPLE данные можно восстанавливать только из последней резервной копии.

SELECT INTO

Оператор SELECT INTO используется для создания новой таблицы в базе данных. Поскольку оператор SELECT INTO нельзя использовать для выборки данных в существующий объект, его можно использовать только для создания данных, но не для обновления данных. Этот процесс создания можно легко повторить; поэтому операции SELECT INTO вполне подходят для выполнения как непротоколируемые операции.

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