Назад | Перейти на главную страницу

SQL Server (2005/2008): полное резервное копирование обрезает журнал в режиме полного восстановления.

Я только что прочитал много документации MSDN и думаю, что понимаю различные модели восстановления и концепцию цепочки резервного копирования. У меня еще один вопрос:

Обрезает ли полная резервная копия базы данных журнал транзакций (с использованием режима полного восстановления)?

Нет, это точно не так. В только то, что позволяет очищать / усекать журнал в моделях восстановления FULL или BULK_LOGGED, является резервная копия журнала - без исключений. У меня был этот аргумент некоторое время назад, и я опубликовал длинный и подробный пост в блоге с объяснением и сценарием, который вы можете использовать, чтобы доказать это себе на Заблуждения относительно журналов и резервных копий журналов: как убедиться.

Не стесняйтесь отвечать на дополнительные вопросы. Кстати - также см. Длинную статью, которую я написал для журнала TechNet Magazine на Понимание ведения журнала и восстановления в SQL Server.

Спасибо

При полном резервном копировании журнал НЕ обрезается, необходимо выполнить операцию резервного копирования журнала. Полная резервная копия НЕ переустанавливает цепочку журналов - это полностью испортит репликацию / доставку журналов и т. Д.

Вам нужно будет внимательно посмотреть, как SQL Server выполняет резервное копирование, но знайте, что текущие / длительные транзакции не включаются в резервную копию (в противном случае резервное копирование может никогда не завершиться), поэтому не совсем точно сказать, что полная резервная копия online-database гарантированно сделает следующую резервную копию журнала устаревшей.

http://msdn.microsoft.com/en-us/library/ms175477.aspx

Из моего понимания единственное, что обрезает журнал транзакций, - это резервная копия журнала.

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

Вам по-прежнему нужны резервные копии журналов для восстановления на определенный момент времени.

У меня нет MSDN для ссылки, но я могу связать вас с Блог Пола Рэндала, который был разработчиком в группе SQL Server, написал DBCC CHECKDB и части электронной документации.

Он также отвечает на вопросы на этом форуме, так что это было бы еще более авторитетным, чем информация из вторых / третьих рук от меня :)

Люди часто имеют неправильное представление о полном резервном копировании и резервном копировании журналов. Чтобы бэкап работал в FULL Для модели восстановления резервной копии необходимо использовать t-журналы, так как во время резервного копирования в базе данных все еще могут происходить транзакции (если вы не выполните так называемый COLD резервное копирование при выключении базы данных). Oracle использует ту же концепцию, когда у вас есть база данных в ARCHIVELOG Режим. Последовательность резервного копирования сводится к следующему:

  1. Начать резервное копирование - приостановить все действия в реальных файлах и записать в t-logs.
  2. Выполнить резервное копирование - все транзакции продолжаются, но не записываются в реальные файлы, они записываются в t-журналы
  3. Завершить резервное копирование - возобновить запись транзакций базы данных в реальные файлы.
  4. При необходимости скопируйте все, что находится в T-журналах, в настоящие файлы.

По этой причине t-журналы по умолчанию не усекаются / не сжимаются, так как они являются важной частью продолжения транзакции на этапе резервного копирования.

Не путайте обрезку журнала с его сжатием.

  • TRUNCATE означает удаление транзакций в журнале, которые находятся перед последней контрольной точкой (контрольной точкой является момент, когда транзакции сбрасываются в саму базу данных). Это делается с помощью команды BACKUP.

  • УЖАТЬ журнал - значит уменьшить фактический размер файла журнала. Это делается с помощью команд DBCC.

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