Umożliwienie skoordynowanych kopii zapasowych dla replikacji transakcyjnej

Dotyczy:SQL Server

Gdy włączasz bazę danych do replikacji transakcyjnej, możesz określić, że wszystkie transakcje muszą być zarchiwizowane przed dostarczeniem do bazy dystrybucji. Możesz także włączyć skoordynowaną kopię zapasową w bazie dystrybucji, aby dziennik transakcji dla bazy publikacji nie był obcięty, dopóki transakcje przekazane do Dystrybutora nie zostaną zbackupowane. Więcej informacji można znaleźć w sekcji Strategie tworzenia kopii zapasowych i przywracania migawek oraz replikacji transakcyjnej.

Note

Korzystanie z opcji synchronizacji z kopią zapasową w bazie dystrybucji nie jest kompatybilne, gdy baza danych wydawcy jest częścią grupy dostępności i może prowadzić do następującego błędu: 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)

Aby umożliwić skoordynowane kopie zapasowe bazy danych opublikowanej za pomocą replikacji transakcyjnej

  1. U wydawcy użyj funkcji SELECT DATABASEPROPERTYEX(DB_NAME(),'IsSyncWithBackup')DATABASEPROPERTYEX (Transact-SQL), aby zwrócić właściwość IsSyncWithBackup bazy danych publikacji. Jeśli funkcja zwraca 1, skoordynowane kopie zapasowe są już włączone dla opublikowanej bazy danych.

  2. Jeśli funkcja w kroku 1 zwraca 0, wykonaj sp_replicationdboption (Transact-SQL) u Wydawcy w bazie danych publikacji. Określ wartość synchronizacji z kopią zapasową dla @optname i prawdziwą dla @value.

    Note

    Jeśli zmienisz opcję synchronizacji z kopią zapasową na false, punkt obcięcia bazy danych publikacji zostanie zaktualizowany po uruchomieniu Log Reader Agenta lub po pewnym czasie, jeśli Log Reader Agent działa nieprzerwanie. Maksymalny przedział jest kontrolowany przez parametr agenta –MessageInterval (który domyślnie wynosi 30 sekund).

Aby umożliwić skoordynowane kopie zapasowe bazy danych dystrybucji

  1. W Dystrybutorze użyj funkcji DATABASEPROPERTYEX (Transact-SQL), aby zwrócić właściwość IsSyncWithBackup bazy dystrybucji. Jeśli funkcja zwraca 1, skoordynowane kopie zapasowe są już włączone dla bazy dystrybucji.

  2. Jeśli funkcja w kroku 1 zwraca 0, wykonaj sp_replicationdboption (Transact-SQL) u Dystrybutora w bazie dystrybucji. Określ wartość synchronizacji z kopią zapasową dla @optname i prawdziwej dla @value.

Aby wyłączyć skoordynowane kopie zapasowe

  1. Na Publisher w bazie publikacji lub u dystrybutora w bazie dystrybucji wykonaj sp_replicationdboption (Transact-SQL). Określ wartość synchronizacji z kopią zapasową dla @optname i false dla @value.

Examples

A. Pobierz właściwość IsSyncWithBackup dla bieżącej bazy danych

Ten przykład zwraca właściwość IsSyncWithBackup dla bieżącej bazy danych:

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

B. Pobierz tę właściwość IsSyncWithBackup dla konkretnej bazy danych

Ten przykład zwraca właściwość IsSyncWithBackup dla bazy NameOfDatabaseToCheck:

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