Включение скоординированного резервного копирования для репликации транзакций
Область применения: 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)
Включение функции скоординированного резервного копирования для базы данных, опубликованной с использованием репликации транзакций
На издателе используйте
SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup')
функцию DATABASEPROPERTYEX (Transact-SQL), чтобы вернуть свойство IsSyncWithBackup базы данных публикации. Если функция возвратила значение 1, то это означает, что скоординированное резервное копирование опубликованной базы данных уже включено.Если функция на шаге 1 возвращает значение 0, выполните sp_replicationdboption (Transact-SQL) на издателе в базе данных публикации. Укажите значение sync with backup для аргумента @optnameи значение true для аргумента @value.
Примечание.
Если значение параметра sync with backup заменить на false, то точка усечения базы данных публикации будет обновлена после запуска агента чтения журнала или по истечении определенного интервала в случае, если агент чтения журнала выполняется постоянно. Максимальное значение интервала управляется параметром агента –MessageInterval , значение которого по умолчанию составляет 30 секунд.
Включение скоординированного резервного копирования базы данных распространителя
На распространитее используйте функцию DATABASEPROPERTYEX (Transact-SQL) для возврата свойства IsSyncWithBackup базы данных распространителя. Если функция возвратила значение 1, то это означает, что скоординированное резервное копирование базы данных распространителя уже включено.
Если функция на шаге 1 возвращает значение 0, выполните sp_replicationdboption (Transact-SQL) на распространителю в базе данных распространителя. Укажите в параметре @optname значение sync with backup , а в параметре @value — значение true.
Отключение скоординированного резервного копирования
- На издателе в базе данных публикации или на распространителю в базе данных распространителя выполните 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')`