Журналирование операций в БД

Регистрация транзакций и сделанных в их ходе модификаций нужна для выполнения трех

операций:

 

• восстановления отдельных транзакций;

• восстановления незавершенных транзакций во время запуска SQL Server;

• повтора операций над восстанавливаемой базой данных непосредственно до момента сбоя.

 

Transaction Log — файлы журнала транзакций.

Минимальный размер такого файла —512 Кбайт. База данных должна иметь, по крайней мере, один файл журнала транзакций. В этом файле будет храниться информация о транзакциях, выполняемых в базе данных.

Файл журнала транзакций не может быть помещен на сжатый диск или удаленный сетевой диск (общедоступный сетевой каталог).

По умолчанию файлам журнала транзакций присваивается расширение .ldf.

 

Три модели восстановления (recovery model) данных после сбоя:

 

отдельных операций (Full model);

результатов импорта (Buck-logged model);

простая (Simple model).

 

 

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

Если файл данных повреждается, то средства восстановления позволяют восстановить данные на момент сбоя или с любого заданного момента времени.

 

Если используется модель BULK_LOGGED, то защита сочетается с большей производительностью и минимизацией использования места в журнале транзакций для некоторых так наз. широкомасштабных (large-scale) операций.

Эти операции включают: SELECT INTO, bulk-операции (Bcp и BULK INSERT), CREATE INDEX, и операции с текстом и изображениями (WRITETEXT и UPDATETEXT).

Широкомасштабные операции подробно не журналируются.

Восстановление с любого момента времени невозможно.

 

Если используется модель SIMPLE, то минимизируется размер, используемый журналом транзакций.

Место в журнале может автоматически повторно использоваться, когда информация становится уже неактуальной для восстановления текущих транзакций.

Модель восстановления SIMPLEпроще для администрирования, но если файл данных повреждается, то все данные теряются. Их можно восстановить только из последней резервной копии.

 

По умолчанию для новых баз данных используется модель восстановления из базы данных model.

 

Чтобы сменить модель по умолчанию, надо применить команду ALTER DATABASE к базе model.