Резервное копирование протокола транзакций учитывает только изменения, записанные в протокол. Поэтому такая форма резервного копирования не основывается на физических частях (страницах) базы данных, а только на логических операциях, т. е. на изменениях, выполненных операторами DML: insert, update и delete. Опять же, поскольку объем данных достаточно мал, этот процесс может быть выполнен значительно быстрее, чем полное или дифференцированное резервное копирование.
Существуют две основные причины, по которым следует выполнять копирование протокола транзакций: во-первых, это сохранение данных, которые были изменены с момента последнего копирования протокола транзакций или базы данных на защищенное устройство; во-вторых (что является более важным), это правильное закрытие протокола транзакций перед началом новой порции действий с этим протоколом. (Активная часть протокола транзакций содержит все неподтвержденные транзакции.)
Используя результаты полного резервного копирования базы данных и надежную цепочку всех закрытых протоколов транзакций, можно распространять копию базы данных на другие компьютеры. Эта копия базы данных затем может быть использована для замещения оригинальной базы данных в случае сбоев. Такой же сценарий может быть применен и при использовании полной копии базы данных и последней копии дифференциального копирования.
Database Engine не дает вам возможности сохранять протокол транзакций в том же файле, в котором сохраняется сама база данных. Одной из причин этого является то, что при разрушении этого единственного файла использование протокола транзакций для восстановления всех изменений с момента последнего копирования не будет возможным.
Использование протокола транзакций для записи изменений в базе данных является общим приемом почти для всех существующих реляционных СУБД. Несмотря на это, могут быть ситуации, когда становится полезным отключение такой возможности. Например, выполнение тяжелой загрузки данных в базу данных может занять несколько часов. Такая программа будет выполняться много быстрее, если отключить протоколирование. С другой стороны, отключение процесса создания протокола может быть опасным, т. к. это разрушает существующие цепочки в протоколе транзакций. Чтобы обеспечить надежность базы данных, строго рекомендуется выполнить полное резервное копирование базы данных после успешного завершения такой загрузки данных.
Одна из наиболее общих ошибок системы возникает, когда переполняется протокол транзакций. Имейте в виду, что подобная проблема может привести к полному останову системы. Если память, используемая для протокола транзакций, заполняется на 100%, то система должна остановить все выполняющиеся транзакции, пока память для протокола транзакции не будет освобождена. Эта проблема может быть устранена только при частом выполнении резервного копирования протокола транзакций: каждый раз вы «закрываете» порцию существующего протокола транзакции и сохраняете протокол на другом внешнем устройстве, эта порция протокола становится повторно используемой, следовательно, система восстанавливает дисковое пространство.
Некоторые различия между копированием протокола и дифференцированным копированием не имеют особого значения. Преимуществом дифференцированного копирования является то, что вы экономите время в процессе восстановления, потому что для полного восстановления базы данных вам нужна полная копия базы данных и только лишь последняя дифференцированная копия. Если вы используете копию протокола в таком сценарии, вы должны использовать полную копию базы данных и все существующие копии протоколов транзакций для приведения базы данных в согласованное состояние. Недостатком дифференцированного копирования является то, что вы не можете использовать такую копию для восстановления базы данных на конкретный момент времени, потому что не существует истории промежуточных изменений базы данных.