Udostępnij za pośrednictwem


Zmienianie przechwytywania danych i inne SQL Server funkcje

W tym temacie opisano współdziałania z przechwytywania danych Zmień następujące funkcje:

  • Śledzenie zmian

  • Dublowanie baz danych

  • replikacja transakcyjnej

  • Przywracanie bazy danych lub dołączania

Śledzenie zmian

Przechwytywanie danych zmian i śledzenia zmian można włączyć na tej samej bazy danych.Nie uwagi specjalne są wymagane.Aby uzyskać więcej informacji, zobacz Śledzenie zmian.

Dublowanie baz danych

Bazy danych, który jest włączony do przechwytywania danych zmiany mogą być dublowane.W celu zapewnienia, że przechwytywania i oczyszczanie wykonywanych automatycznie na dublowanie, wykonaj następujące kroki:

  1. Upewnij się, że SQL Server Agent jest uruchomiony na dublowania.

  2. Utworzyć zadanie przechwytywania i zadania oczyszczania na lusterku po głównej przeszedł do dublowania.Aby utworzyć zadania, użyj procedura składowana sys.sp_cdc_add_job (języka Transact-SQL).

Aby uzyskać więcej informacji na temat dublowanie bazy danych, zobacz Dublowanie baz danych.

Replikacji transakcyjnej

Zmienianie przechwytywania danych i replikacja transakcyjna mogą współistnieć w tej samej bazie danych, ale zapełnianie tabel zmian przebiega inaczej, gdy obie funkcje.Zmienianie przechwytywania danych i replikacja transakcyjna zawsze używać tej samej procedury, sp_replcmds, odczytać zmiany w dzienniku transakcji.Podczas przechwytywania danych zmian jest włączona na własną, SQL Server wywołania zadanie agenta sp_replcmds.Aby uzyskać więcej informacji, zobacz Przechwytywanie zadania.Po włączeniu funkcji zarówno na tej samej bazy danych Agent odczytywania dziennika wywołania sp_replcmds.Ten agent wypełnia Zmiana tabel i tabel baza danych dystrybucji.Aby uzyskać więcej informacji, zobacz ReplikacjaAgent odczytywania dziennika.

Rozważmy scenariusz, w którym zmiana przechwytywania danych jest włączony na AdventureWorks2008R2 bazy danych oraz dwie tabele są włączone dla przechwytywania.Zmiana zapełnić tabele, przechwytywania wywołania zadanie sp_replcmds.Baza danych jest włączona dla replikacja transakcyjna, i tworzenia publikacja.Teraz Agent odczytywania dziennika jest tworzony dla bazy danych i przechwytywania zadania jest usuwany.Agent odczytywania dziennika Kontynuuje skanowanie dziennika z ostatni numer sekwencyjny dziennika popełniono Zmień tabela.Zapewnia to spójność danych w tabelach zmiany. Jeśli replikacja transakcyjna jest wyłączona w tej bazie danych, Agent czytnik dziennika zostanie usunięty i odtwarza się zadanie przechwytywania.

Ostrzeżenie

Gdy używany jest Agent czytnik dziennika dla obu zmienić przechwytywania danych i replikacja transakcyjna, replikowane zmiany są najpierw zapisywane w bazie danych dystrybucji.Następnie przechwyconych zmiany są zapisywane do tabel zmiany.Zobowiązane są ze sobą obie operacje.Jeśli baza danych dystrybucji na piśmie wszelkich opóźnień, będzie odpowiedni opóźnienie przed zmiany pojawiają się w tabelach zmiany.

Przywracanie lub dołączania bazy danych, włączony do przechwytywania danych zmian

SQL Server używa następującej logiki do ustalenia, jeśli zmiana przechwytywania danych pozostaje włączony po bazy danych jest przywracany lub dołączone:

  • Jeśli baza danych zostanie przywrócona do tego samego serwera o tej samej nazwie bazy danych, zmień przechwytywania danych pozostaje włączony.

  • Po przywróceniu bazy danych na inny serwer, przez zmianę domyślnego przechwytywania danych jest wyłączone i usunięte wszystkie pokrewne metadane.

    Aby zachować zmiany przechwytywania danych, użyj KEEP_CDC opcję podczas przywracania bazy danych.Aby uzyskać więcej informacji na temat tej opcji, zobacz RESTORE.

  • Jeśli baza danych jest odłączony i dołączone do tego samego serwera lub innego serwera, zmień przechwytywania danych pozostaje włączony.

  • Jeśli baza danych jest dołączony lub przywracany z KEEP_CDC opcji do dowolnej wersji innych niż przedsiębiorstwa, operacja jest zablokowana, ponieważ wymaga zmiany przechwytywania danych SQL Server przedsiębiorstwa. Wyświetlany jest komunikat o błędzie 932:

    SQL Server cannot load database '%.*ls' because change data capture is enabled. The currently installed edition of SQL Server does not support change data capture. Either disable change data capture in the database by using a supported edition of SQL Server, or upgrade the instance to one that supports change data capture.

Można użyć sys.sp_cdc_disable_db usunąć zmiany przechwytywanie danych z bazy danych przywróconych lub dołączone.