Ponowne inicjowanie subskrypcji

Dotyczy:SQL ServerAzure SQL Managed Instance

Ponowna inicjalizacja subskrypcji polega na zastosowaniu nowej migawki jednego lub większej liczby artykułów do jednego lub większej liczby Subskrybentów. Replikacja transakcyjna i migawkowa umożliwia ponowną inicjalizację poszczególnych artykułów. Replikacja scalania wymaga ponownej inicjalizacji wszystkich artykułów. Nie można ponownie inicjalizować węzłów w topologii replikacji transakcyjnej peer-to-peer. Aby upewnić się, że węzeł ma nową kopię danych, przywróć kopię zapasową w tym węźle. Reinicjalizacja następuje z jednego z dwóch powodów:

  • Jawnie oznaczasz subskrypcję jako wymagającą ponownej inicjalizacji.

  • Wykonujesz akcję, taką jak zmiana właściwości, która wymaga ponownej inicjalizacji. Więcej informacji o działaniach wymagających ponownej inicjalizacji można znaleźć w sekcji Zmień publikację i Właściwości artykułu.

W obu przypadkach najnowszy snapshot jest aplikowany do Subscriber przy następnym uruchomieniu Distribution Agent lub Merge Agent. W przypadku replikacji migawkowej i transakcyjnej, gdy następuje reinicjalizacja, wszelkie zmiany wprowadzone u Subskrybenta, które nie zostały jeszcze zsynchronizowane z Publikującym, są nadpisywane w wyniku zastosowania nowej migawki.

Dla replikacji scalania możesz wybrać, aby wszystkie zmiany danych były przesyłane z Subscriber przed zastosowaniem snapshota. Wszelkie oczekujące zmiany schematu od Publisher są stosowane u Subskrybenta, a następnie wszystkie aktualizacje dokonane przez Subskrybenta od ostatniej synchronizacji są przekazywane do Publisher przed ponownym zastosowaniem snapshota. To zachowanie jest kontrolowane przez właściwości upload_first i automatic_reinitialization_policy ; więcej informacji można znaleźć w artykule Ponowne inicjalizowanie subskrypcji. Jeśli oznaczysz subskrypcję do ponownej inicjalizacji za pomocą programu SQL Server Management Studio lub narzędzia Replication Monitor, w oknie dialogowym Ponowne inicjowanie subskrypcji zostanie wyświetlona opcja, aby najpierw przekazać zmiany.

Ważna

Jeśli dodasz, usuniesz lub zmienisz parametryzowany filtr w publikacji scalającej, oczekujące zmiany na stronie Subskrybera nie mogą zostać przesłane do Publisher podczas ponownej inicjalizacji. Jeśli chcesz przesłać oczekujące zmiany, zsynchronizuj wszystkie subskrypcje przed zmianą filtra.

Jeśli podczas tworzenia subskrypcji określiłeś, że do Subskrybenta nie należy stosować żadnej początkowej migawki, a następnie oznaczysz subskrypcję do ponownej inicjalizacji, migawka nie zostanie zastosowana. Aby uzyskać więcej informacji, zobacz Inicjowanie subskrypcji transakcyjnej bez migawki.

Aby ponownie zainicjować subskrypcję

Aby ponownie zainicjować wszystkie artykuły w subskrypcji, użyj SQL Server Management Studio, procedur przechowywanych lub obiektów zarządzania replikacją (RMO). Aby ponownie zainicjować poszczególne artykuły w publikacjach snapshotowych i transakcyjnych, należy użyć procedur przechowywanych. Więcej informacji można znaleźć w sekcji Ponowne zainicjalizowanie subskrypcji.