Доставка журналов SQL Server: какой способ пропустить некоторые транзакции без нарушения LSN?

Мне удалось настроить доставку журналов из первичной во вторичную базу данных. Затем мне нужно очистить некоторые старые данные из первичной базы данных, но мне нужны эти данные во вторичной базе данных для отчетности.

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

Однако кажется, что просто

DBCC SHRINKFILE(Primary_log,1) 

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

Я попытался повторить процесс, но переключил Primary на Recovery Model Simple и снова на Full, чтобы очистить журнал. Кажется, что это нарушает цепочку порядковых номеров журнала (LSN), тем самым нарушая работу восстановления и весь процесс.

Итак, есть ли способ пропустить команды очистки и удаления без нарушения процесса доставки журналов?

Спасибо,


person VV01K    schedule 23.12.2015    source источник


Ответы (1)


Вы можете попробовать использовать дифференциальную резервную копию, чтобы эффективно получить чистый результат всех резервных копий журналов. Ознакомьтесь с http://www.brentozar.com/archive/2014/09/log-shipping-magic-using-differential-backup-delayed-secondary/ для получения дополнительной информации.

person Ben Thul    schedule 23.12.2015