Я только что прочитал много документации MSDN и думаю, что понимаю различные модели восстановления и концепцию цепочки резервного копирования. У меня все еще есть один вопрос:
Обрезает ли полная резервная копия базы данных журнал транзакций (в режиме полного восстановления)?
Если да: где это упоминается в MSDN? Все, что я мог найти, это то, что только BACKUP LOG усекает журнал.
Если нет: почему? Поскольку полное резервное копирование базы данных запускает новую цепочку резервного копирования, какой смысл сохранять транзакции, которые были завершены до полного резервного копирования, активными в журнале?
источник
Полная резервная копия НЕ обрезает журнал, вы должны выполнить операцию резервного копирования журнала. Полная резервная копия НЕ переустанавливает цепочку журналов - это полностью испортило бы репликацию / доставку журналов и т. Д.
Вы должны внимательно посмотреть, как SQL Server выполняет резервное копирование, но знаете, что выполняемые в полете / длительные транзакции не включаются в резервную копию (в противном случае резервное копирование может никогда не завершиться), поэтому не совсем точно сказать, что полная резервная копия онлайн-база данных гарантированно сделает следующую резервную копию журнала устаревшей.
http://msdn.microsoft.com/en-us/library/ms175477.aspx
источник
Насколько я понимаю, единственное, что усекает журнал транзакций, - это резервная копия журнала .
Полная резервная копия копирует только достаточное количество журнала, чтобы обеспечить его согласованность транзакций, поскольку для завершения операции резервного копирования требуется некоторое время, и за это время скопированные страницы могли измениться.
Вам все еще нужны резервные копии журналов для восстановления на определенный момент времени.
У меня нет ссылки на MSDN, но я могу связать вас с блогом Пола Рэндала , который был разработчиком команды SQL Server, написал DBCC CHECKDB и часть Books Online.
Он также отвечает на вопросы на этом форуме, так что это будет еще лучшим авторитетом, чем информация от 2-й / 3-й руки от меня :)
источник
Люди часто имеют неправильное представление о полном резервном копировании и резервном копировании журнала. Чтобы резервное копирование работало в
FULL
модели резервного копирования, необходимо использовать t-журналы, так как во время резервного копирования все еще могут происходить транзакции в базе данных (если вы не выполняете так называемоеCOLD
резервное копирование при закрытии базы данных). Oracle использует ту же концепцию, когда у вас есть база данных вARCHIVELOG
режиме. Последовательность резервного копирования сводится к следующему:По этой причине t-журналы по умолчанию не усекаются / сокращаются, так как они являются важной частью продолжения транзакции на этапе резервного копирования.
источник
Не путайте усечение журнала с сокращением журнала.
TRUNCATE - это удаление транзакций в журнале, которые находятся перед последней контрольной точкой (контрольная точка, когда транзакции сбрасываются в саму базу данных). Это делается с помощью команды BACKUP.
Чтобы сжать журнал, чтобы уменьшить фактический размер файла журнала. Это делается с помощью команд DBCC.
источник
По сути, вам не нужно каждый раз автоматически сокращать журнал транзакций, потому что журналам транзакций нужно место для работы, и если вы усекаете их автоматически, они останутся практически одинаковыми по размеру.
источник