Dela via


Skapa en prenumeration för en icke-SQL Server-prenumerant

Gäller för:SQL Server

Det här avsnittet beskriver hur du skapar en prenumeration för en icke-SQL Server-prenumerant i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Transaktions- och ögonblicksbildreplikering stöder publicering av data till icke-SQL Server-prenumeranter. Information om prenumerantplattformar som stöds finns i Prenumeranter som inte är SQL Server-prenumeranter.

I det här avsnittet

Använda SQL Server Management Studio

Så här skapar du en prenumeration för en icke-SQL Server-prenumerant:

  1. Installera och konfigurera lämplig klientprogramvara och OLE DB-provider på SQL Server-distributören. Mer information finns i Oracle-prenumeranter och IBM Db2-prenumeranter.

  2. Skapa en publikation med guiden Ny publikation. Mer information om hur du skapar publikationer finns i Skapa en publikation och Skapa en publikation från en Oracle-databas. Ange följande alternativ i guiden Ny publikation:

    • På sidan Publikationstyp väljer du Ögonblicksbildspublikation eller Transaktionell publikation.

    • På sidan Ögonblicksbildsagent avmarkerar du Skapa en ögonblicksbild omedelbart.

      Du skapar ögonblicksbilden när publikationen har aktiverats för icke-SQL Server-prenumeranter för att säkerställa att Ögonblicksbildsagenten genererar en ögonblicksbild och initieringsskript som är lämpliga för icke-SQL Server-prenumeranter.

  3. Aktivera publikationen för icke-SQL Server-prenumeranter med hjälp av dialogrutan Publikationsegenskaper – <PublicationName> . Mer information om det här steget finns i Publikationsegenskaper, Prenumerationsalternativ .

  4. Skapa en prenumeration med guiden Ny prenumeration. Det här avsnittet innehåller mer information om det här steget.

  5. (Valfritt) Ändra artikelns egenskap pre_creation_cmd för att behålla tabeller på prenumeranten. Det här avsnittet innehåller mer information om det här steget.

  6. Generera en ögonblicksbild för publikationen. Det här avsnittet innehåller mer information om det här steget.

  7. Synkronisera prenumerationen. Mer information finns i Synkronisera en push-prenumeration.

Så här aktiverar du en publikation för icke-SQL Server-prenumeranter

  1. Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.

  2. Expandera mappen Replikering och expandera sedan mappen Lokala publikationer .

  3. Högerklicka på publikationen och klicka sedan på Egenskaper.

  4. På sidan Prenumerationsalternativ väljer du värdet True för alternativet Tillåt icke-SQL Server-prenumeranter. Om du väljer det här alternativet ändras ett antal egenskaper så att publikationen är kompatibel med icke-SQL Server-prenumeranter.

    Anmärkning

    Om du väljer Sant anges värdet för artikelns pre_creation_cmd-egenskap till "drop". Den här inställningen anger att replikeringen ska ta bort en tabell hos prenumeranten om den matchar namnet på tabellen i artikeln. Om du har befintliga tabeller i prenumeranten som du vill behålla använder du den sp_changearticle lagrade proceduren för varje artikel. ange värdet "ingen" för pre_creation_cmd: sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

  5. Välj OK. Du uppmanas att skapa en ny ögonblicksbild för publikationen. Om du inte vill skapa en just nu använder du stegen som beskrivs i nästa "how to"-procedur vid ett senare tillfälle.

Så här skapar du en prenumeration för en icke-SQL Server-prenumerant

  1. Expandera mappen Replikering och expandera sedan mappen Lokala publikationer .

  2. Högerklicka på lämplig publikation och klicka sedan på Nya prenumerationer.

  3. På sidan Distributionsagentplats kontrollerar du att Kör alla agenter på distributören har valts. Icke-SQL Server-prenumeranter har inte stöd för agenter som körs hos prenumeranten.

  4. På sidan Prenumeranter klickar du på Lägg till prenumerant och sedan på Lägg till icke-SQL Server-prenumerant.

  5. I dialogrutan Lägg till icke-SQL Server-prenumerant väljer du typ av prenumerant.

  6. Ange ett värde i Namnet på datakällan:

    • För Oracle är detta det transparenta TNS-namn (network substrate) som du har konfigurerat.

    • För IBM kan detta vara valfritt namn. Det är vanligt att ange nätverksadressen för prenumeranten.

    Namnet på datakällan som anges i det här steget och de autentiseringsuppgifter som anges i steg 9 verifieras inte av den här guiden. De används inte i replikeringen förrän en distributionsagent körs för en prenumeration. Kontrollera att alla värden har testats genom att ansluta till prenumeranten med hjälp av ett klientverktyg (till exempel sqlplus för Oracle). Mer information finns i Oracle-prenumeranter och IBM Db2-prenumeranter.

  7. Välj OK. På sidan Prenumeranter i guiden visas prenumeranten nu i kolumnen Prenumerant med ett skrivskyddat (standardmål) i kolumnen Prenumerationsdatabas :

    • För Oracle har en server högst en databas, så det är inte nödvändigt att ange databasen.

    • För IBM Db2 anges databasen i egenskapen Initial Catalog för DB2-anslutningssträngen, som kan anges i fältet Ytterligare anslutningsalternativ som beskrivs senare i den här processen.

  8. På sidan Distributionsagentsäkerhet klickar du på egenskapsknappen (...) bredvid prenumeranten för att få åtkomst till dialogrutan Distributionsagentsäkerhet .

  9. I dialogrutan Distributionsagentsäkerhet :

    • I fälten Processkonto, Lösenord och Bekräfta lösenord anger du det Microsoft Windows-konto och lösenord under vilket distributionsagenten ska köras och upprätta lokala anslutningar till distributören.

      Kontot kräver dessa minimibehörigheter: medlem i db_owner fast databasroll i distributionsdatabasen; medlem i publikationens åtkomstlista (PAL); läsbehörigheter för ögonblicksbildresursen; och läsbehörighet för installationskatalogen för OLE DB-leverantören. Mer information om PAL finns i Skydda utgivaren.

    • Under Anslut till prenumeranten går du till fälten Inloggning, Lösenord och Bekräfta lösenord och anger den inloggning och det lösenord som ska användas för att ansluta till prenumeranten. Den här inloggningen bör redan vara konfigurerad och bör ha tillräcklig behörighet för att skapa objekt i prenumerationsdatabasen.

    • I fältet Ytterligare anslutningsalternativ anger du eventuella anslutningsalternativ för Prenumeranten i form av en anslutningssträng (Oracle kräver inga ytterligare alternativ). Varje alternativ ska avgränsas med ett semikolon. Följande är ett exempel på en DB2-anslutningssträng (radbrytningar är för läsbarhet):

      Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;  
      PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;  
      Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT;  
      Persist Security Info=False;Connection Pooling=True;  
      

      De flesta alternativen i strängen är specifika för den DB2-server som du konfigurerar, men alternativet Bearbeta binär som tecken bör alltid vara inställt på Falskt. Ett värde krävs för alternativet Initial Catalog för att identifiera prenumerationsdatabasen.

  10. På sidan Synkroniseringsschema väljer du ett schema för distributionsagenten på menyn Agentschema (schemat körs vanligtvis kontinuerligt).

  11. På sidan Initiera prenumerationer anger du om prenumerationen ska initieras och i så fall när den ska initieras:

    • Avmarkera Initiera endast om du har skapat alla objekt och lagt till alla nödvändiga data i prenumerationsdatabasen.

    • Välj Omedelbart i listrutan i kolumnen Initiera när för att låta distributionsagenten överföra ögonblicksbildfiler till prenumeranten när guiden har slutförts. Välj Vid första synkroniseringen för att låta agenten överföra filerna nästa gång den är schemalagd att köras.

  12. På sidan Guideåtgärder kan du även skripta prenumerationen. För mer information, se Scripting Replication.

För att behålla tabeller hos abonnenten

  • Om du aktiverar en publikation för icke-SQL Server-prenumeranter anges värdet för artikelns egenskap pre_creation_cmd som standard till "drop". Den här inställningen anger att replikeringen ska ta bort en tabell hos prenumeranten om den matchar namnet på tabellen i artikeln. Om du har befintliga tabeller i prenumeranten som du vill behålla använder du den sp_changearticle lagrade proceduren för varje artikel. ange värdet "ingen" för pre_creation_cmd. sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

Generera en ögonblicksbild för publikationen

  1. Expandera mappen Replikering och expandera sedan mappen Lokala publikationer .

  2. Högerklicka på publikationen och klicka sedan på Visa status för ögonblicksbildagenten.

  3. I dialogrutan Visa status för ögonblicksbildagent – <publikation> klickar du på Start.

När ögonblicksbildsagenten har genererat ögonblicksbilden visas ett meddelande, till exempel "[100%] En ögonblicksbild av 17 artiklar genererades."

Använda Transact-SQL

Du kan skapa push-prenumerationer till icke-SQL Server-prenumeranter programmatiskt med hjälp av replikerings lagrade procedurer.

Viktigt!

När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil måste du skydda filen för att förhindra obehörig åtkomst.

Skapa en push-prenumeration för en transaktions- eller ögonblicksbildspublikation till en icke-SQL Server-prenumerant

  1. Installera den senaste OLE DB-providern för icke-SQL Server-prenumeranten på både utgivaren och distributören. För replikeringskraven för en OLE DB-leverantör, se Andra än SQL Server-prenumeranter, Oracle-prenumeranter, IBM Db2-prenumeranter.

  2. Kontrollera att publikationen har stöd för icke-SQL Server-prenumeranter i Publisher på publikationsdatabasen genom att köra sp_helppublication (Transact-SQL).

    • Om värdet på `enabled_for_het_sub` är 1, stöds icke-SQL Server-prenumeranter.

    • Om värdet på enabled_for_het_sub är 0, kör du sp_changepublication (Transact-SQL), och ange enabled_for_het_sub som @property och sant som @value.

      Anmärkning

      Innan du ändrar enabled_for_het_sub till true måste du släppa alla befintliga prenumerationer i publikationen. Du kan inte ange enabled_for_het_sub till true när publikationen också stöder uppdatering av prenumerationer. Att ändra enabled_for_het_sub kommer att påverka andra publikationsegenskaper. Mer information finns i Icke-SQL Server-prenumeranter.

  3. Kör sp_addsubscription (Transact-SQL)i Publisher på publikationsdatabasen. Ange @publication, @subscriber, ett värde av (default destination) för @destination_db, ett push för @subscription_type, och ett värde av 3 för @subscriber_type (anger en OLE DB-provider).

  4. Kör sp_addpushsubscription_agent (Transact-SQL)i Publisher på publikationsdatabasen. Ange följande:

    • Parametrarna @subscriber och @publication .

    • Värdet (standardmål) för @subscriber_db,

    • Egenskaperna för datakällan som inte är SQL Server för @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_stringoch @subscriber_catalog.

    • Inloggningsuppgifterna för Microsoft Windows som distributionsagenten på distributören kör för @job_login och @job_password.

    Anmärkning

    Anslutningar som görs med windowsintegrerad autentisering använder alltid de Windows-autentiseringsuppgifter som anges av @job_login och @job_password. Distributionsagenten upprättar alltid den lokala anslutningen till distributören med windowsintegrerad autentisering. Som standard ansluter agenten till prenumeranten med windowsintegrerad autentisering.

    • Värdet 0 för @subscriber_security_mode och inloggningsinformationen för OLE DB-providern @subscriber_login och @subscriber_password.

    • Ett schema för distributionsagentjobbet för den här prenumerationen. Mer information finns i Ange synkroniseringsscheman.

    Viktigt!

    När du skapar en push-prenumeration hos en utgivare med en fjärransluten distributör skickas de värden som anges för alla parametrar, inklusive job_login och job_password, till distributören som oformaterad text. Du bör kryptera anslutningen mellan Utgivaren och dess fjärranslutna distributör innan du kör den här lagrade proceduren. Mer information finns i Aktivera krypterade anslutningar till databasmotorn (SQL Server Configuration Manager).