В базе данных, которая в настоящее время реплицируется, я хочу остановить репликацию (остановить процесс чтения журналов) на некоторое время, хотя я хочу продолжать делать резервные копии журналов в той же базе данных.
Освобождает ли резервная копия журнала журнал для повторного использования или он остается нетронутым для задачи чтения журнала, чтобы выполнить репликацию для копирования транзакций в базу данных распространителя? Все это предполагает, что место для журнала доступно для роста журнала. Я думаю, что все, что остается в журнале транзакций, отмеченное для репликации, но не распространяемое, не будет перезаписано, но я хотел проверить это.
Если это так, то, когда я перезапускаю процесс чтения журнала, транзакции записываются в базу данных распространителя, тогда журнал будет продолжать обрабатываться, как и в прошлом, и соответствующим образом сжиматься.
Резервная копия журнала не освобождает журнал для повторного использования. Отмеченные для репликации транзакции в журнале транзакций в базе данных публикации не будут отменены, пока они не будут успешно записаны в базу данных распространителя. Только после этого можно пометить эту часть журнала для повторного использования.
С момента остановки агента чтения журнала вы, скорее всего, заметите некоторый рост журнала транзакций, при этом log_reuse_wait_desc будет REPLICATION.
Например:
SELECT name, log_reuse_wait_desc FROM sys.databases
Сначала log_reuse_wait_desc может быть LOG_BACKUP, но после выполнения резервного копирования журнала, если агент чтения журнала не запущен, log_reuse_wait_desc будет REPLICATION.