Initiera en prenumeration manuellt

gäller för:SQL ServerAzure SQL Managed Instance

Detta ämne beskriver hur man initierar en prenumeration manuellt i SQL Server genom att använda SQL Server Management Studio eller Transact-SQL. Medan den initiala snapshoten normalt används för att initiera en prenumeration, kan prenumerationer på publikationer initieras utan att använda en snapshot, förutsatt att schemat och initialdata redan finns hos abonnenten.

Begränsningar och restriktioner

  • Om det finns aktivitet på en databas som publiceras med transaktionell replikation mellan den tid då data och schema kopieras till prenumeranten och tidpunkten då prenumerationen manuellt initieras, kan ändringar som följer av denna aktivitet inte replikeras till prenumeranten.

Använda SQL Server Management Studio

Initiera en prenumeration på en publikation manuellt genom att kopiera schemat (och vanligtvis data) till prenumerationsdatabasen. Schemat och datan bör stämma överens med publiceringsdatabasen. Ange sedan att prenumerationen inte kräver schema och data på sidan Initialisera prenumerationer i New Subscription Wizard. För mer information om att komma åt denna guide, se Initialisera en transaktionsprenumeration utan snapshot och skapa en pull-prenumeration.

När du synkroniserar prenumerationen för första gången kopieras objekten och metadata som krävs av replikering till prenumerationsdatabasen.

För att initiera en prenumeration på en publikation manuellt

  1. Se till att schemat och datan kopieras till prenumerationsdatabasen.

  2. Avmarkera kryssrutan Initialisera på sidan Initialisera prenumerationer i guiden Ny prenumeration. Gör detta för varje prenumeration som endast kräver kopiering av replikationsobjekt och metadata.

Använda Transact-SQL

Prenumerationer kan initieras manuellt med hjälp av replikeringslagrade procedurer.

Att manuellt initiera en pull-prenumeration på en transaktionell publikation

  1. Se till att schemat och datan finns i prenumerationsdatabasen. Mer information finns i Initiera en transaktionsprenumeration utan en ögonblicksbild.

  2. Vid Publisher i publikationsdatabasen, kör sp_addsubscription. Ange @publication, @subscriber, namnet på databasen hos Subscriber som innehåller de publicerade uppgifterna för @destination_db, ett pull för@subscription_type och ett värde för replikeringsstöd endast för @sync_type. Mer information finns i Skapa en pull-prenumeration.

  3. Kör sp_addpullsubscription på Prenumeranten. För att uppdatera prenumerationer, se Skapa en uppdaterbar prenumeration på en transaktionell publikation.

  4. Kör sp_addpullsubscription_agent på Prenumeranten. Mer information finns i Skapa en pull-prenumeration.

  5. Starta Distribution Agent för att överföra replikeringsobjekt och ladda ner de senaste ändringarna från Publisher. Mer information finns i Synkronisera en pull-prenumeration.

Att manuellt initiera en pushprenumeration till en transaktionell publikation

  1. Se till att schemat och datan finns i prenumerationsdatabasen. Mer information finns i Initiera en transaktionsprenumeration utan en ögonblicksbild.

  2. Vid Publisher i publikationsdatabasen, kör sp_addsubscription. Ange namnet på databasen hos prenumeranten som innehåller de publicerade uppgifterna för @destination_db, ett värde för push för @subscription_type och ett värde för replikeringsstöd endast för @sync_type. För att uppdatera prenumerationer, se Skapa en uppdaterbar prenumeration på en transaktionell publikation.

  3. Hos Publisher i publikationsdatabasen kör du sp_addpushsubscription_agent. För mer information, se Skapa en pushprenumeration.

  4. Starta Distribution Agent för att överföra replikeringsobjekt och ladda ner de senaste ändringarna från Publisher. Mer information finns i Synkronisera en push-prenumeration.

För att manuellt initiera en pull-prenumeration till en sammanslagningspublikation

  1. Se till att schemat och datan finns i prenumerationsdatabasen. Detta kan göras genom att återställa en säkerhetskopia av publikationsdatabasen hos prenumeranten.

  2. På Publishern kör du sp_addmergesubscription. Ange @publication, @subscriber, @subscriber_db och ett värde på pull för @subscription_type. Detta registrerar pull-prenumerationen.

  3. På prenumeranten i den databas som innehåller de publicerade data kör du sp_addmergepullsubscription. Ange värdet none för @sync_type.

  4. På abonnenten kör du sp_addmergepullsubscription_agent. Mer information finns i Skapa en pull-prenumeration.

  5. Starta Merge Agent för att överföra replikeringsobjekt och ladda ner de senaste ändringarna från Publisher. Mer information finns i Synkronisera en pull-prenumeration.

Att manuellt initiera en pushprenumeration till en sammanslagningspublikation

  1. Se till att schemat och datan finns i prenumerationsdatabasen. Detta kan göras genom att återställa en säkerhetskopia av publikationsdatabasen hos prenumeranten.

  2. Kör sp_addmergesubscription på Publisher i publikationsdatabasen. Ange namnet på databasen hos prenumeranten som innehåller de publicerade uppgifterna för @subscriber_db, värdet push för@subscription_type och värdet inget för @sync_type.

  3. På Publisher i publiceringsdatabasen kör du sp_addmergepushsubscription_agent. För mer information, se Skapa en pushprenumeration.

  4. Starta Merge Agent för att överföra replikeringsobjekt och ladda ner de senaste ändringarna från Publisher. Mer information finns i Synkronisera en push-prenumeration.