Erstellen eines Abonnements für einen Nicht-SQL Server-Abonnenten

Gilt für:SQL Server

In diesem Thema wird beschrieben, wie Sie ein Abonnement für einen Nicht-SQL Server-Abonnent in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellen. Transaktions- und Momentaufnahme-Replikation unterstützen die Veröffentlichung von Daten für Nicht-SQL Server-Abonnenten. Informationen zu den unterstützten Abonnentenplattformen finden Sie unter Non-SQL Server Subscriberserstellt wird.

In diesem Thema

Verwendung von SQL Server Management Studio

So erstellen Sie ein Abonnement für einen Nicht-SQL Server-Abonnent:

  1. Installieren und konfigurieren Sie die entsprechende Clientsoftware und OLE DB-Anbieter im SQL Server-Distributor. Weitere Informationen finden Sie unter Oracle Subscribers und IBM DB2 Subscribers.

  2. Erstellen Sie mithilfe des Assistenten für neue Veröffentlichung eine Veröffentlichung. Weitere Informationen zum Erstellen von Veröffentlichungen finden Sie unter Erstellen einer Veröffentlichung und Erstellen einer Veröffentlichung aus einer Oracle-Datenbank. Geben Sie im Assistenten für neue Veröffentlichung folgende Optionen an:

    • Wählen Sie auf der Seite Veröffentlichungstyp entweder Momentaufnahmeveröffentlichung oder Transaktionsveröffentlichungaus.

    • Heben Sie auf der Seite Momentaufnahme-Agent die Auswahl von Momentaufnahme sofort erstellenauf.

      Sie erstellen die Momentaufnahme, nachdem die Publikation für Nicht-SQL Server-Abonnenten aktiviert wurde, um sicherzustellen, dass die Momentaufnahmen-Agent eine Momentaufnahme- und Initialisierungsskripts generiert, die für Nicht-SQL Server-Abonnenten geeignet sind.

  3. Aktivieren Sie die Publikation für Nicht-SQL Server-Abonnenten mithilfe des Dialogfelds "Publikationseigenschaften - <Publikationsname> ". Weitere Informationen zu diesem Schritt finden Sie unter Publication Properties, Subscription Options .

  4. Erstellen Sie mithilfe des Assistenten für neue Abonnements ein Abonnement. In diesem Thema sind weitere Informationen zu diesem Schritt enthalten.

  5. (Optional) Ändern Sie die pre_creation_cmd -Artikeleigenschaft, um Tabellen auf dem Abonnenten beizubehalten. In diesem Thema sind weitere Informationen zu diesem Schritt enthalten.

  6. Generieren Sie eine Momentaufnahme für die Veröffentlichung. In diesem Thema sind weitere Informationen zu diesem Schritt enthalten.

  7. Synchronisieren Sie das Abonnement. Weitere Informationen finden Sie unter Synchronize a Push Subscription.

So aktivieren Sie eine Veröffentlichung für Nicht-SQL Server-Abonnenten

  1. Verbinden zum Publisher in SQL Server Management Studio, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .

  3. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, und klicken Sie dann auf Eigenschaften.

  4. Wählen Sie auf der Seite Abonnementoptionen den Wert Wahr für die Option Nicht-SQL Server-Abonnenten zulassenaus. Wenn Sie diese Option auswählen, wird eine Reihe von Eigenschaften geändert, sodass die Publikation mit Nicht-SQL Server-Abonnenten kompatibel ist.

    Hinweis

    Durch die Auswahl von Wahr wird der Wert der Artikeleigenschaft pre_creation_cmd auf 'drop' festgelegt. Mit dieser Einstellung wird angegeben, dass bei der Replikation auf dem Abonnenten eine Tabelle gelöscht werden soll, wenn sie mit dem Namen der Tabelle in dem Artikel übereinstimmt. Wenn auf dem Abonnenten Tabellen vorhanden sind, die Sie aufheben möchten, verwenden Sie für jeden Artikel die gespeicherte Prozedur sp_changearticle . Geben Sie für pre_creation_cmd: sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'den Wert 'none' an.

  5. Klickan Sie auf OK. Sie werden zur Erstellung einer neuen Momentaufnahme für die Veröffentlichung aufgefordert. Wenn Sie diesen Vorgang lieber zu einem späteren Vorgang ausführen möchten, verwenden Sie hierzu die nachfolgend aufgeführten schrittweisen Anweisungen.

So erstellen Sie ein Abonnement für einen Nicht-SQL Server-Abonnenten

  1. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .

  2. Klicken Sie mit der rechten Maustaste auf die entsprechende Veröffentlichung, und klicken Sie dann auf Neue Abonnements.

  3. Vergewissern Sie sich, dass auf der Seite Speicherort des Verteilungs-Agents die Option Alle Agents auf dem Verteiler ausführen aktiviert ist. Nicht-SQL Server-Abonnenten unterstützen die Ausführung von Agents beim Abonnenten nicht.

  4. Klicken Sie auf der Seite Abonnenten zunächst auf Abonnent hinzufügen und dann auf Nicht-SQL Server-Abonnenten hinzufügen.

  5. Wählen Sie im Dialogfeld Nicht-SQL Server-Abonnenten hinzufügen den Abonnententyp aus.

  6. Geben Sie im Feld Datenquellennameeinen Wert ein:

    • Bei Oracle ist dies der von Ihnen konfigurierte Transparent Network Substrate-(TNS-)Name.

    • Bei IBM kann dies ein beliebiger Name sein. Im Normalfall wird die Netzwerkadresse des Abonnenten angegeben.

    Der in diesem Schritt eingegebene Datenquellenname und die in Schritt 9 angegebenen Anmeldeinformationen werden von diesem Assistenten nicht überprüft. Sie werden von der Replikation nicht verwendet, bis der Verteilungs-Agent für das Abonnement ausgeführt wird. Vergewissern Sie sich, dass sämtliche Werte getestet wurden, und zwar durch die Verbindungsherstellung mit dem Abonnenten über ein Clienttool (für Oracle z. B. sqlplus ). Weitere Informationen finden Sie unter Oracle Subscribers und IBM DB2 Subscribers.

  7. Klickan Sie auf OK. Nun wird auf der Seite Abonnenten des Assistenten der Abonnent in der Abonnent -Spalte angezeigt; hierbei ist ein schreibgeschütztes (Standardziel) in der Abonnementdatenbank -Spalte enthalten:

    • Bei Oracle weist ein Server höchstens eine Datenbank auf, deshalb ist die Angabe der Datenbank nicht erforderlich.

    • Bei IBM DB2 wird die Datenbank in der Initial Catalog -Eigenschaft der DB2-Verbindungszeichenfolge angegeben, die in dem nachfolgend erwähnten Feld Zusätzliche Verbindungsoptionen eingegeben werden kann.

  8. Klicken Sie auf der Seite Sicherheit für den Verteilungs-Agent neben dem Abonnenten auf die Schaltfläche für die Eigenschaften (), um auf das Dialogfeld Sicherheit für den Verteilungs-Agent zuzugreifen.

  9. Führen Sie im Dialogfeld Sicherheit für den Verteilungs-Agent folgende Schritte aus:

    • Geben Sie im Feld "Prozesskonto", "Kennwort" und "Kennwort bestätigen" das Microsoft Windows-Konto und das Kennwort ein, unter dem das Verteilungs-Agent ausgeführt werden soll und lokale Verbindungen mit dem Distributor herstellen soll.

      Für das Konto müssen folgende Mindestberechtigungen erfüllt werden: Mitglied der festen Datenbankrolle db_owner in der Verteilungsdatenbank, Mitglied der Veröffentlichungszugriffsliste (PAL, Publication Access List); Leseberechtigungen für die Momentaufnahmefreigabe sowie Leseberechtigungen für das Installationsverzeichnis des OLE DB-Anbieters. Weitere Informationen zur PAL finden Sie unter Sichern des Verlegers.

    • Geben Sie unter Verbindung mit dem Abonnenten herstellen, in den Feldern Anmeldung, Kennwortund Kennwort bestätigen die Anmeldung und das Kennwort ein, die zum Verbindungsaufbau mit dem Abonnenten verwendet werden sollen. Diese Anmeldung sollte bereits konfiguriert sein und für das Erstellen von Objekten in der Abonnementdatenbank ausreichende Berechtigungen aufweisen.

    • Geben Sie im Feld Zusätzliche Verbindungsoptionen sämtliche Verbindungsoptionen für den Abonnenten in Form einer Verbindungszeichenfolge an (für Oracle sind keine zusätzlichen Optionen erforderlich). Mehrere Optionen müssen durch Semikolons voneinander getrennt werden. Hier ein Beispiel einer DB2-Verbindungszeichenfolge (die Umbrüche dienen der Leserlichkeit):

      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;  
      

      Die meisten Optionen in der Zeichenfolge hängen von dem DB2-Server ab, den Sie konfigurieren. Allerdings sollte die Option Process Binary as Character immer auf Falsefestgelegt sein. Zur Identifizierung der Abonnementdatenbank ist ein Wert für die Option Anfangskatalog erforderlich.

  10. Wählen Sie auf der Seite Synchronisierungszeitplan im Menü Agentzeitplan einen Zeitplan für den Verteilungs-Agent aus (der Zeitplan weist normalerweise das Attribut Fortlaufend ausführenauf).

  11. Geben Sie auf der Seite Abonnements initialisieren an, ob das Abonnement initialisiert werden soll, und wenn ja, wann:

    • Heben Sie die Auswahl von Initialisieren nur dann auf, wenn Sie alle Objekte erstellt und alle erforderlichen Daten in der Abonnementdatenbank hinzugefügt haben.

    • Wenn Sie in der Initialisierungszeitpunkt -Spalte auf die Option Sofort klicken, überträgt der Verteilungs-Agent Momentaufnahmedateien an den Abonnenten, nachdem alle Vorgänge des Assistenten beendet sind. Wählen Sie Bei der ersten Synchronisierung aus, wenn die Dateien bei der nächsten laut Zeitplan festgelegten Ausführung der Momentaufnahme übertragen werden sollen.

  12. Erstellen Sie optional auf der Seite Aktionen des Assistenten ein Skript für das Abonnement. Weitere Informationen finden Sie unter Scripting Replication.

So behalten Sie Tabellen auf dem Abonnenten bei

  • Standardmäßig legt das Aktivieren einer Publikation für Nicht-SQL Server-Abonnenten den Wert der pre_creation_cmd Artikeleigenschaft auf "drop" fest. Mit dieser Einstellung wird angegeben, dass bei der Replikation auf dem Abonnenten eine Tabelle gelöscht werden soll, wenn sie mit dem Namen der Tabelle in dem Artikel übereinstimmt. Wenn auf dem Abonnenten Tabellen vorhanden sind, die Sie beibehalten möchten, verwenden Sie für jeden Artikel die gespeicherte Prozedur sp_changearticle . Geben Sie für pre_creation_cmdden Wert 'none' an. sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

So generieren Sie eine Momentaufnahme für die Veröffentlichung

  1. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .

  2. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, und klicken Sie dann auf Status des Momentaufnahme-Agents anzeigen.

  3. Klicken Sie im Dialogfeld "Ansicht Momentaufnahmen-Agent Status – <Publikation>" auf "Start".

Nachdem der Momentaufnahme-Agent die Momentaufnahme generiert hat, wird eine Meldung angezeigt, die beispielsweise wie folgt lautet: "[100%] Es wurde eine Momentaufnahme mit 17 Artikel(n) generiert."

Verwenden von Transact-SQL

Sie können Pushabonnements für Nicht-SQL Server-Abonnenten programmgesteuert mithilfe gespeicherter Replikationsprozeduren erstellen.

Wichtig

Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, muss die Datei an einem sicheren Ort gespeichert werden, um unberechtigten Zugriff zu vermeiden.

So erstellen Sie ein Pushabonnement für eine Transaktions- oder Momentaufnahmeveröffentlichung für einen Nicht-SQL Server-Abonnenten

  1. Installieren Sie den neuesten OLE DB-Anbieter für den Nicht-SQL Server-Abonnent sowohl im Publisher als auch beim Distributor. Informationen zu den Replikationsanforderungen für einen OLE DB-Anbieter finden Sie unter Non-SQL Server Subscribers, Oracle Subscribers, IBM DB2 Subscribers.

  2. Überprüfen Sie bei Publisher in der Publikationsdatenbank, ob die Publikation Nicht-SQL Server-Abonnenten unterstützt, indem Sie sp_helppublication (Transact-SQL) ausführen.

    • Wenn der Wert von enabled_for_het_sub 1 ist, werden Nicht-SQL Server-Abonnenten unterstützt.

    • Wenn der Wert von enabled_for_het_sub 0 ist, führen Sie sp_changepublication (Transact-SQL) aus, und geben Sie enabled_for_het_sub für @property und true für @value.

      Hinweis

      Bevor Sie enabled_for_het_sub zu trueändern, müssen Sie alle vorhandenen Abonnements für die Veröffentlichung löschen. Sie können enabled_for_het_sub nicht auf true festlegen, wenn die Veröffentlichung auch Abonnements mit Update unterstützt. Die Änderung von enabled_for_het_sub beeinflusst andere Veröffentlichungseigenschaften. Weitere Informationen finden Sie unter Non-SQL Server Subscribers.

  3. Führen Sie im Publisher in der Publikationsdatenbank sp_addsubscription (Transact-SQL) aus. Geben Sie @publication, @subscriber, den Wert (default destination) für @destination_db, den Wert push für @subscription_type und den Wert 3 für @subscriber_type (gibt einen OLE DB-Anbieter an) an.

  4. Führen Sie im Publisher in der Publikationsdatenbank sp_addpushsubscription_agent (Transact-SQL) aus. Geben Sie die folgenden Informationen an:

    • Die Parameter @subscriber und @publication.

    • Den Wert (Standardziel) für @subscriber_db.

    • Die Eigenschaften der Nicht-SQL Server-Datenquelle für @subscriber_provider, , @subscriber_datasrc, @subscriber_location, @subscriber_provider_stringund @subscriber_catalog.

    • Die Microsoft Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent beim Distributor ausgeführt wird, und @job_login@job_password.

    Hinweis

    Bei Verbindungen, die mit der integrierten Windows-Authentifizierung hergestellt werden, werden immer die von @job_login und @job_password angegebenen Windows-Anmeldeinformationen verwendet. Der Verteilungs-Agent stellt die lokale Verbindung mit dem Verteiler immer mithilfe der Windows-Authentifizierung her. Standardmäßig stellt der Agent mithilfe der integrierten Windows-Authentifizierung eine Verbindung mit dem Abonnenten her.

    • Den Wert 0 für @subscriber_security_mode und die Anmeldeinformationen des OLE DB-Anbieters für @subscriber_login und @subscriber_password.

    • Einen Zeitplan für den Verteilungs-Agentauftrag für dieses Abonnement. Weitere Informationen finden Sie unter Angeben von Synchronisierungszeitplänen.

    Wichtig

    Beim Erstellen eines Pushabonnements auf einem Verleger mit einem Remoteverteiler werden die angegebenen Werte für alle Parameter, einschließlich job_login und job_password, an den Verteiler als Nur-Text gesendet. Sie sollten die Verbindung zwischen dem Verleger und dem zugehörigen Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen zur Datenbank-Engine (SQL Server-Konfigurations-Manager).

Weitere Informationen

IBM DB2-Abonnenten
Oracle-Abonnenten
Andere Nicht-SQL Server-Abonnenten
Replication System Stored Procedures Concepts
Bewährte Methoden für die Replikationssicherheit