Freigeben über


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

In diesem Thema wird beschrieben, wie ein Abonnement für einen Nicht-SQL Server-Abonnenten in SQL Server 2012 mit SQL Server Management Studio oder Transact-SQL erstellt wird. Von der Transaktionsreplikation und der Momentaufnahmereplikation wird das Veröffentlichen von Daten auf Nicht-SQL Server-Abonnenten unterstützt. Informationen zu den unterstützten Abonnentenplattformen finden Sie unter Nicht-SQL Server-Abonnenten.

In diesem Thema

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

    SQL Server Management Studio

    Transact-SQL

Verwendung von SQL Server Management Studio

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

  1. Nehmen Sie die Installation und Konfiguration der entsprechenden Clientsoftware und OLE DB-Anbieter auf dem SQL Server-Verteiler vor. Weitere Informationen finden Sie unter Oracle-Abonnenten und IBM DB2-Abonnenten.

  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öffentlichung aus.

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

      Die Erstellung der Momentaufnahme erfolgt nach der Aktivierung der Veröffentlichung für Nicht-SQL Server-Abonnenten, um sicherzustellen, dass der Momentaufnahme-Agent eine Momentaufnahme und Initialisierungsskripts generiert, die für Nicht-SQL Server-Abonnenten geeignet sind.

  3. Verwenden Sie zur Aktivierung der Veröffentlichung für Nicht-SQL Server-Abonnenten das Dialogfeld Veröffentlichungseigenschaften - <PublicationName>. Weitere Informationen zu diesem Schritt finden Sie unter Veröffentlichungseigenschaften, Abonnementoptionen.

  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 Synchronisieren eines Pushabonnements.

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

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her, 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 zulassen aus. Beim Auswählen dieser Option werden eine Reihe von Eigenschaften so geändert, dass die Veröffentlichung mit Nicht-SQL Server-Abonnenten kompatibel ist.

    HinweisHinweis

    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. Klicken 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. Von Nicht-SQL Server-Abonnenten wird das Ausführen von Agents auf dem Abonnenten nicht unterstützt.

  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 Datenquellenname einen 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-Abonnenten und IBM DB2-Abonnenten.

  7. Klicken 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 besitzt ein Server höchstens eine Datenbank, 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 in den Feldern Prozesskonto, Kennwort und Kennwort bestätigen das Konto und Kennwort von Microsoft Windows an, unter dem der Verteilungs-Agent ausgeführt werden soll und unter dem er lokale Verbindungen mit dem Verteiler 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, Kennwort und 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). Die einzelnen Optionen sollten durch ein Semikolon voneinander abgetrennt 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 beziehen sich speziell auf den DB2-Server, den Sie konfigurieren, die Option Process Binary as Character sollte jedoch immer auf False festgelegt sein. Zur Identifizierung der Abonnementdatenbank muss für die Option Initial Catalog ein Wert angegeben werden.

  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ühren auf).

  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. Mit Bei der ersten Synchronisierung überträgt der Agent die Dateien bei seiner nächsten planmäßigen Ausführung.

  12. Erstellen Sie optional auf der Seite Aktionen des Assistenten ein Skript für das Abonnement. Weitere Informationen finden Sie unter Erstellen von Skripts für die Replikation.

So behalten Sie Tabellen auf dem Abonnenten bei

  • Standardmäßig wird durch das Aktivieren einer Veröffentlichung für Nicht-SQL Server-Abonnenten der Wert der pre_creation_cmd-Artikeleigenschaft 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 beibehalten möchten, verwenden Sie für jeden Artikel die gespeicherte Prozedur sp_changearticle. Geben Sie für pre_creation_cmd den 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 Status des Momentaufnahme-Agents anzeigen - <Veröffentlichung> 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."

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

Sie können Pushabonnements auf Nicht-SQL Server-Abonnenten mithilfe von gespeicherten Replikationsprozeduren programmgesteuert erstellen.

SicherheitshinweisSicherheitshinweis

Die Benutzer sollten nach Möglichkeit während der Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen aufgefordert werden. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, muss die Datei geschützt werden, um unberechtigte Zugriffe zu verhindern.

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-Abonnenten sowohl auf dem Verleger als auch auf dem Verteiler. Informationen zu den Replikationsanforderungen für einen OLE DB-Anbieter finden Sie unter Nicht-SQL Server-Abonnenten, Oracle-Abonnenten, IBM DB2-Abonnenten.

  2. Überprüfen Sie beim Verleger auf der Veröffentlichungsdatenbank, ob die Veröffentlichung Nicht-SQL Server-Abonnenten unterstützt, indem Sie sp_helppublication (Transact-SQL) ausführen.

    • Der Wert 1 für enabled_for_het_sub bedeutet, dass Nicht-SQL Server-Abonnenten unterstützt werden.

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

      HinweisHinweis

      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 Nicht-SQL Server-Abonnenten.

  3. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank 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 (den OLE DB-Anbieter) an.

  4. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addpushsubscription_agent (Transact-SQL) aus. Geben Sie Folgendes an:

    • Die Parameter @subscriber und @publication.

    • Den Wert (default destination) für @subscriber_db.

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

    • Die Microsoft Windows-Anmeldeinformationen, unter denen der Verteilungs-Agent auf dem Verteiler für @job_login und @job_password ausgeführt wird.

      HinweisHinweis

      Für Verbindungen, die mit der integrierten Windows-Authentifizierung hergestellt werden, werden immer die mit @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.

    SicherheitshinweisSicherheitshinweis

    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 zum Datenbankmodul (SQL Server-Konfigurations-Manager).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Konzepte

IBM DB2-Abonnenten

Oracle-Abonnenten

Andere Nicht-SQL Server-Abonnenten

Konzepte für gespeicherte Systemprozeduren für die Replikation

Bewährte Methoden für die Replikationssicherheit