Журнал - транзакция - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если хотите рассмешить бога - расскажите ему о своих планах. Законы Мерфи (еще...)

Журнал - транзакция

Cтраница 1


Журнал транзакций ( transaction log) сохраняет важную информацию об изменениях, происходящих с данными в базе. Когда после остановки SQL-сервер запускается вновь, он проверяет содержимое этого журнала и определяет, какие модификации были отмечены как постоянные, а какие не были завершены во время остановки машины.  [1]

Журнал транзакций необходим для нормальной работы SQL-сервера. В производственных системах рекомендуется периодически выполнять резервное копирование журнала транзакций, так как он может потребоваться в Тех ситуациях, когда нужно вручную восстанавливать базу данных и ее транзакции.  [2]

Где журнал транзакций хранит информацию.  [3]

Если журнал транзакций заполняется или если процессы контрольной точки занимают слишком много времени, следует уменьшить интервал восстановления.  [4]

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

Конечно, журнал транзакций не поможет, если содержимое внешней памяти системы физически уничтожено, то есть утеряна вся информация БД. Для того чтобы избежать подобных ситуаций, реализуют дублированное хранение данных, например, зеркалирование дискового пространства - запись данных одновременно на несколько устройств. После сбоя копируется содержимое БД, а затем, как и в первом случае, на основе журнала откатываются все незавершенные транзакции.  [6]

Когда буфер журнала транзакций записывается в журнал, лучше всего, если буфер заполнен или почти заполнен. Этот режим можно контролировать с помощью параметра Logwrite Sleep ( ожидание записи в журнал), который сообщает SQL-серверу о необходимости задержать запись в журнал транзакций, если буфер еще не заполнен. Допустимый диапазон для этого значения лежит в пределах от 0 до 500 миллисекунд. Например, если установить Logwrite Sleep в 100, то перед записью в журнал транзакций SQL-сервер будет ожидать 100 миллисекунд в случае, если буфер журнала транзакций еще не заполнен. Если установить это значение в - 1, то SQL-сервер не будет задерживать запись в журнал транзакций - независимо от текущего состояния буфера.  [7]

Если для журнала транзакций не установлено зеркальное отображение, то в случае сбоя устройства этого журнала возникает риск потерять все транзакции, - как завершенные, так и незавершенные. В результате на восстановление потерянной информации придется затратить долгие дни, если это вообще будет возможно. Зеркальное отображение устройства журнала транзакций означает, что даже при плохой работе основного устройства содержимое журнала транзакций тем не менее можно будет восстановить.  [8]

Первоначальный размер журнала транзакций указывается при создании базы данных.  [9]

На выгрузку журнала транзакций в другое устройство опция Truncate log on checkpoint не влияет.  [10]

SQL-сервер может освободить журнал транзакций только до начала самой старой незавершенной транзакции. Это может привести к замораживанию системы, и такое состояние будет продолжаться до тех пор, пока выполняемая транзакция не закроется. Чаще всего причиной таких ситуаций являются программы приложений, позволяющие пользователям бесконечно долго оставлять транзакции открытыми. Предотвратить такое явление можно, руководствуясь следующим правилом: начало и конец транзакции не должны быть разделены вводом информации пользователем. Лучше разрешить пользователю ввести данные, а затем начать и закончить транзакцию.  [11]

Если необходимо сохранять журналы транзакций, регулярно выполняйте их резервное копирование.  [12]

Следует избегать переполнения журнала транзакций, однако выполнение некоторых операций влечет за собой именно такой негативный результат. К счастью, имеется возможность не регистрировать операции двух видов, которые чаще всего являются причиной заполнения журнала транзакций: утилиту Ьср и команду SELECT INTO. Если установлен флаг Select Into / Bulk Copy, SQL-сервер не записывает эти две операции в журнал транзакций, экономя тем самым ценное пространство диска.  [13]

Регулярно резервировать или усекать журнал транзакций. Независимо от способа управления заполненными журналами транзакций, с ними нужно что-то делать.  [14]

Задание нужного размера для журнала транзакций крайне важно. Первоначально для этого журнала можно выделить примерно от 15 до 25 % общего объема дисковой памяти базы данных. Например, если размер базы данных составляет 100 Мбайтов, можно отвести журналу транзакций от 15 до 25 Мбайтов.  [15]



Страницы:      1    2    3    4