Поделиться через


Включение скоординированного резервного копирования для репликации транзакций

Область применения: SQL Server

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

Примечание.

Использование синхронизации с параметром резервного копирования в базе данных распространителя несовместимо, если база данных издателя является частью группы доступности и может привести к следующей ошибке:The process could not execute 'sp_repldone/sp_replcounters' on 'machinename\instance', Possible inconsistent state in the distribution database, Get help: http://help/MSSQL_REPL20011 (Source: MSSQLServer, Error number: 18846)

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

  1. На издателе используйте SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup') функцию DATABASEPROPERTYEX (Transact-SQL), чтобы вернуть свойство IsSyncWithBackup базы данных публикации. Если функция возвратила значение 1, то это означает, что скоординированное резервное копирование опубликованной базы данных уже включено.

  2. Если функция на шаге 1 возвращает значение 0, выполните sp_replicationdboption (Transact-SQL) на издателе в базе данных публикации. Укажите значение sync with backup для аргумента @optnameи значение true для аргумента @value.

    Примечание.

    Если значение параметра sync with backup заменить на false, то точка усечения базы данных публикации будет обновлена после запуска агента чтения журнала или по истечении определенного интервала в случае, если агент чтения журнала выполняется постоянно. Максимальное значение интервала управляется параметром агента –MessageInterval , значение которого по умолчанию составляет 30 секунд.

Включение скоординированного резервного копирования базы данных распространителя

  1. На распространитее используйте функцию DATABASEPROPERTYEX (Transact-SQL) для возврата свойства IsSyncWithBackup базы данных распространителя. Если функция возвратила значение 1, то это означает, что скоординированное резервное копирование базы данных распространителя уже включено.

  2. Если функция на шаге 1 возвращает значение 0, выполните sp_replicationdboption (Transact-SQL) на распространителю в базе данных распространителя. Укажите в параметре @optname значение sync with backup , а в параметре @value — значение true.

Отключение скоординированного резервного копирования

  1. На издателе в базе данных публикации или на распространителю в базе данных распространителя выполните sp_replicationdboption (Transact-SQL). Укажите в параметре @optname значение sync with backup , а в параметре @value — значение false.

Примеры

А. Получение свойства IsSyncWithBackup для текущей базы данных

В этом примере возвращается свойство IsSyncWithBackup для текущей базы данных.

SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup')`

B. Получение свойства IsSyncWithBackup для конкретной базы данных

В этом примере возвращается свойство IsSyncWithBackup для базы данных NameOfDatabaseToCheck.

SELECT DATABASEPROPERTYEX('NameOfDatabaseToCheck','IsSyncWithBackup')`