Synchronizowanie danych

Dotyczy:SQL ServerAzure SQL Managed Instance

Synchronizacja danych odnosi się do procesu przekazywania zmian danych i schematów między Publisher a Subskrybentami po zastosowaniu początkowego snapshotu u Subskrybenta. Synchronizacja może zachodzić:

  • Ciągle, co jest typowe dla replikacji transakcyjnej.

  • Na żądanie — co jest typowe dla replikacji scalającej.

  • Zgodnie z harmonogramem, co jest typowe dla replikacji opartej na migawkach.

Gdy subskrypcja jest synchronizowana, zachodzą różne procesy w zależności od rodzaju replikacji, której używasz:

  • Replikacja migawki. Synchronizacja oznacza, że Agent dystrybucji ponownie stosuje migawkę u subskrybenta, tak aby schemat i dane w bazie danych subskrypcji były zgodne z bazą danych publikacji.

    Jeśli u Publikującego wprowadzono modyfikacje danych lub schematu, należy wygenerować nową migawkę w celu propagowania zmian do Subskrybenta.

  • Transakcyjna replikacja. Synchronizacja oznacza, że Distribution Agent przesyła aktualizacje, wstawia, usuwa i inne zmiany z bazy dystrybucji do Subskrybenta.

  • Replikacja łączeniowa. Synchronizacja oznacza, że Merge Agent przesyła zmiany od Subskrybenta do Publisher, a następnie pobiera zmiany z Publisher do Subskrybenta. Konflikty, jeśli występują, są wykrywane i rozwiązywane. Dane są zbieżne, a Publisher i wszyscy subskrybenci ostatecznie mają te same wartości danych. Jeśli konflikty zostały wykryte i rozwiązane, prace podjęte przez niektórych użytkowników są zmieniane, aby rozwiązać konflikt zgodnie z politykami zdefiniowanymi przez Ciebie.

Publikacje snapshot całkowicie odświeżają schemat u Subskrybenta za każdym razem, gdy następuje synchronizacja, więc wszystkie zmiany schematu są stosowane do Subskrybenta. Replikacja transakcyjna i replikacja z scalaniem również obsługują najczęstsze zmiany schematu. Aby uzyskać więcej informacji, zobacz Wprowadzanie zmian schematu w bazach danych publikacji.

Aby zsynchronizować subskrypcję wypychaną, zobacz Synchronizowanie subskrypcji wypychanej.

Aby zsynchronizować subskrypcję pobierającą, zobacz Synchronizowanie subskrypcji pobierającej.

Aby ustawić harmonogramy synchronizacji, zobacz Określ harmonogramy synchronizacji.

Aby zobaczyć i rozwiązywać konflikty synchronizacyjne

Wykonywanie kodu podczas synchronizacji

Replikacja obsługuje dwie metody wykonywania kodu podczas synchronizacji

  • Obsługiwane jest wykonywanie skryptów na żądanie do replikacji transakcyjnej i scalania. Korzystając z wykonywania skryptu na żądanie, możesz określić skrypt SQL uruchamiany podczas synchronizacji. Skrypt jest kopiowany do abonenta i wykonywany za pomocą sqlcmd na początku procesu synchronizacji. Skrypt nie ma dostępu do zreplikowanych zmian w momencie ich stosowania do Abonenta. Aby uzyskać więcej informacji, zobacz Wykonywanie skryptów podczas synchronizacji (Programowanie replikacji w języku Transact-SQL).

  • Obsługiwane są obsługiwacze logiki biznesowej do replikacji scalania. Korzystając z frameworka Business Logic Handler możesz napisać zarządzany kod assembly, który jest wywoływany podczas procesu synchronizacji merge. Asembl zawiera logikę biznesową, która może reagować na szereg warunków podczas synchronizacji: zmiany danych, konflikty i błędy. Aby uzyskać więcej informacji, zobacz Wykonywanie logiki biznesowej podczas synchronizacji scalania.