Erstellen einer Veröffentlichung aus einer Oracle-DatenbankCreate a Publication from an Oracle Database

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

In diesem Thema wird beschrieben, wie in SQL Server 2019 (15.x)SQL Server 2019 (15.x) mit SQL Server Management StudioSQL Server Management Studio oder Transact-SQLTransact-SQLeine Veröffentlichung aus einer Oracle-Datenbank erstellt wird.This topic describes how to create a publication from an Oracle database in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

In diesem ThemaIn This Topic

VorbereitungenBefore You Begin

VoraussetzungenPrerequisites

  • Voraussetzung für das Erstellen einer Veröffentlichung aus einer Oracle-Datenbank ist, dass die Oracle-Software auf dem MicrosoftMicrosoft SQL ServerSQL Server-Verteiler installiert ist und die Oracle-Datenbank konfiguriert wurde.Before creating a publication, you must install Oracle software on the MicrosoftMicrosoft SQL ServerSQL Server Distributor, and you must configure the Oracle database. Weitere Informationen finden Sie unter Konfigurieren eines Oracle-Verlegers.For more information, see Configure an Oracle Publisher.

Verwenden von SQL Server Management StudioUsing SQL Server Management Studio

Sie können mithilfe des Assistenten für neue Veröffentlichung eine Momentaufnahme- bzw. eine Transaktionsveröffentlichung aus einer Oracle-Datenbank erstellen.Create a snapshot or transactional publication from an Oracle Database with the New Publication Wizard.

Wenn Sie zum ersten Mal eine Veröffentlichung aus einer Oracle-Datenbank erstellen, müssen Sie den Oracle-Verleger auf dem SQL ServerSQL Server -Verteiler identifizieren (für nachfolgende Veröffentlichungen aus derselben Datenbank ist dies nicht mehr erforderlich).The first time you create a publication from an Oracle database, you must identify the Oracle Publisher at the SQL ServerSQL Server Distributor (you do not need to do this for subsequent publications from the same database.). Der Oracle-Verleger kann über den Assistenten für neue Veröffentlichung oder das Dialogfeld Verteilereigenschaften – <Distributor> identifiziert werden. Im Folgenden wird das Identifizieren anhand der Vorgehensweise im Dialogfeld Verteilereigenschaften – <Distributor> beschrieben.Identifying the Oracle Publisher can be accomplished from the New Publication Wizard or the Distributor Properties - <Distributor> dialog box; this topic shows the Distributor Properties - <Distributor> dialog box.

So identifizieren Sie den Oracle-Verleger auf dem SQL Server-VerteilerTo identify the Oracle Publisher at the SQL Server Distributor

  1. Stellen Sie in SQL Server Management StudioSQL Server Management Studioeine Verbindung mit der SQL ServerSQL Server -Instanz her, die der Oracle-Verleger als Verteiler verwenden wird. Erweitern Sie dann den Serverknoten.In SQL Server Management StudioSQL Server Management Studio, connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Replikation , und klicken Sie dann auf Verteilereigenschaften.Right-click the Replication folder, and then click Distributor Properties.

  3. Klicken Sie auf der Seite Verleger des Dialogfelds Verteilereigenschaften – <Distributor> auf Hinzufügen und anschließend auf Oracle-Verleger hinzufügen.On the Publishers page of the Distributor Properties - <Distributor> dialog box, click Add, and then click Add Oracle Publisher.

  4. Klicken Sie im Dialogfeld Verbindung mit Server herstellen auf die Schaltfläche Optionen .In the Connect to Server dialog box, click the Options button.

  5. Gehen Sie auf der Registerkarte Anmeldung wie folgt vor:On the Login tab:

    1. Geben Sie den Namen der Oracle-Datenbankinstanz ein, oder wählen Sie im Kombinationsfeld Serverinstanz den Eintrag Suche fortsetzen aus.Enter the Oracle database instance name or select Browse for more in the Server instance combo box.

    2. Wählen Sie Oracle-Standardauthentifizierung (empfohlen) oder Windows-Authentifizierungaus.Select Oracle Standard Authentication (recommended) or Windows Authentication.

      Wenn Sie die Windows-Authentifizierungwählen: Der Oracle-Server muss so konfiguriert werden, dass Verbindungen mithilfe von Windows-Anmeldeinformationen möglich sind (weitere Informationen dazu finden Sie in der Oracle-Dokumentation). Darüber hinaus müssen Sie aktuell mit demselben MicrosoftMicrosoft Windows-Konto angemeldet sein, das Sie für das Schema des administrativen Replikationsbenutzers angegeben haben.If you select Windows Authentication: the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same MicrosoftMicrosoft Windows account you specified for the replication administrative user schema.

    3. Wenn Sie sich für Oracle-Standardauthentifizierungentschieden haben, geben Sie den Anmeldenamen und das Kennwort für das Schema für den administrativen Replikationsbenutzer ein, das Sie beim Konfigurieren auf dem Oracle-Verleger erstellt haben.If you select Oracle Standard Authentication, enter the login and password of the replication administrative user schema you created on the Oracle Publisher during configuration.

  6. Wählen Sie auf der Registerkarte Verbindungseigenschaften als Verlegertyp Gateway oder Vollständigaus.On the Connection Properties tab, select a Publisher type of Gateway or Complete.

    Mithilfe der Option Vollständig kann für Momentaufnahme- und Transaktionsveröffentlichungen der vollständige Satz an unterstützten Funktionen für Oracle-Veröffentlichungen verfügbar gemacht werden.The Complete option is designed to provide snapshot and transactional publications with the complete set of supported features for Oracle publishing. Die Option Gateway bietet spezielle Designoptimierungen, um die Leistung in Fällen zu verbessern, in denen die Replikation als Gateway zwischen Systemen verwendet wird.The Gateway option provides specific design optimizations to improve performance for cases where replication serves as a gateway between systems. Sie können die Option Gateway nicht verwenden, wenn Sie planen, dieselbe Tabelle in mehreren Transaktionsveröffentlichungen zu veröffentlichen.The Gateway option cannot be used if you plan to publish the same table in multiple transactional publications. Wenn Sie Gatewayauswählen, kann eine Tabelle höchstens in einer Transaktionsveröffentlichung und in einer beliebigen Zahl an Momentaufnahmeveröffentlichungen erscheinen.A table can appear in at most one transactional publication and any number of snapshot publications if you select Gateway.

  7. Klicken Sie auf Verbinden. Es wird eine Verbindung mit dem Oracle-Verleger hergestellt, und die Verbindung wird für die Replikation konfiguriert.Click Connect, which creates a connection to the Oracle Publisher and configures it for replication. Das Dialogfeld Verbindung mit Server herstellen wird geschlossen, und es wird wieder das Dialogfeld Verteilereigenschaften – <Distributor> angezeigt.The Connect to Server dialog box closes and you are returned to the Distributor Properties - <Distributor> dialog box.

    Hinweis

    Falls bei der Netzwerkkonfiguration Probleme auftreten, wird jetzt eine Fehlermeldung angezeigt.If there are any problems with the network configuration, you will receive an error at this point. Wenn Sie Probleme haben, eine Verbindung mit der Oracle-Datenbank herzustellen, finden Sie entsprechende Informationen in dem Abschnitt in Troubleshooting Oracle Publishers, der sich mit Verbindungsproblemen zwischen dem SQL Server-Verteiler und der Oracle-Datenbankinstanz beschäftigt.If you experience problems connecting to the Oracle database, see the section "The SQL Server Distributor cannot connect to the Oracle database instance" in Troubleshooting Oracle Publishers.

  8. Klicken Sie auf OK.Click OK.

So erstellen Sie eine Veröffentlichung aus einer Oracle-DatenbankTo create a publication from an Oracle database

  1. Stellen Sie eine Verbindung mit der SQL ServerSQL Server -Instanz her, die der Oracle-Verleger als Verteiler verwenden wird. Erweitern Sie dann den Serverknoten.Connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. Erweitern Sie den Ordner Replikation .Expand the Replication folder.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Lokale Veröffentlichungen , und klicken Sie dann auf Neue Oracle-Veröffentlichung.Right-click the Local Publications folder, and then click New Oracle Publication.

  4. Wählen Sie auf der Seite Oracle-Verleger des Assistenten für neue Veröffentlichung den Oracle-Verleger aus.On the Oracle Publisher page of the New Publication Wizard, select the Oracle Publisher. Wenn der Oracle-Verleger nicht angezeigt wird, klicken Sie auf Oracle-Verleger hinzufügen. Führen Sie dann die in der vorherigen Prozedur beschriebenen Schritte aus.If the Oracle Publisher is not displayed, click Add Oracle Publisher, which takes you through the steps from the previous procedure.

  5. Wählen Sie auf der Seite Veröffentlichungstyp entweder Momentaufnahmeveröffentlichung oder Transaktionsveröffentlichungaus.On the Publication Type page, select Snapshot publication or Transactional publication.

  6. Wählen Sie auf der Seite Artikel die Datenbankobjekte aus, die Sie veröffentlichen möchten.On the Articles page, select the database objects you want to publish.

    Optional können Sie auch Tabellenspalten herausfiltern, indem Sie eine Tabelle erweitern und dann die Kontrollkästchen für die Spalten deaktivieren, die nicht einbezogen werden sollen.Optionally, filter out table columns by expanding a table and then clearing the checkbox for one or more columns. Klicken Sie auf Artikeleigenschaften , um die Artikeleigenschaften anzuzeigen und zu ändern und um bei Bedarf alternative Datentypzuordnungen anzugeben.Click Article Properties to view and modify article properties and to specify alternative data type mappings if necessary. Weitere Informationen zu Datentypzuordnungen finden Sie unter Angeben von Datentypzuordnungen für einen Oracle-Verleger.For more information about data type mappings, see Specify Data Type Mappings for an Oracle Publisher.

  7. Wenden Sie bei Bedarf auf der Seite Tabellenzeilen filtern Filter an, um nur bestimmte Daten aus einer oder mehreren Tabellen zu veröffentlichen.On the Filter Table Rows page, optionally apply filters to publish a subset of data from one or more tables.

  8. Deaktivieren Sie auf der Seite Momentaufnahme-Agent nur dann die Option Momentaufnahme sofort erstellen , wenn Sie alle Objekte erstellt und alle erforderlichen Daten der Abonnementdatenbank hinzugefügt haben.On the Snapshot Agent page, clear Create a snapshot immediately only if you have created all objects and added all required data in the subscription database.

  9. Geben Sie auf der Seite Agentsicherheit die Anmeldeinformationen für den Momentaufnahme-Agent (für alle Veröffentlichungen) und den Protokolllese-Agent (für Transaktionsveröffentlichungen) an.On the Agent Security page, specify credentials for the Snapshot Agent (for all publications) and the Log Reader Agent (for transactional publications). Die Agents werden ausgeführt und stellen mithilfe des von Ihnen angegebenen SQL ServerSQL Server Windows-Kontos Verbindungen zum MicrosoftMicrosoft -Verteiler her.The agents run and make connections to the SQL ServerSQL Server Distributor using the context of the MicrosoftMicrosoft Windows account you specify. Für die Verbindungen zur Oracle-Datenbank verwenden die Agents den Kontext des Kontos, das Sie als Schema für den administrativen Replikationsbenutzer angegeben haben.The agents make connections to the Oracle database using the context of the account you specified as the replication administrative user schema. Weitere Informationen finden Sie unter Konfigurieren eines Oracle-Verlegers.For more information, see Configure an Oracle Publisher.

    Weitere Informationen zu den erforderlichen Berechtigungen für die einzelnen Agents finden Sie unter Replication Agent Security Model und Replication Security Best Practices.For more information about the permissions required by each agent, see Replication Agent Security Model and Replication Security Best Practices.

  10. Erstellen Sie optional auf der Seite Aktionen des Assistenten ein Skript für die Veröffentlichung.On the Wizard Actions page, optionally script the publication. Weitere Informationen finden Sie unter Scripting Replication.For more information, see Scripting Replication.

  11. Geben Sie auf der Seite Assistenten abschließen einen Namen für die Veröffentlichung an.On the Complete the Wizard page, specify a name for the publication.

Verwenden von Transact-SQLUsing Transact-SQL

Nachdem eine Oracle-Datenbank als Verleger konfiguriert wurde, können Sie mit gespeicherten Systemprozeduren auf die gleiche Weise wie bei Verwendung eines MicrosoftMicrosoft SQL ServerSQL Server-Verlegers eine Transaktions- oder Momentaufnahmenveröffentlichung erstellen.After the Oracle database has been configured as a Publisher, you can create a transactional or snapshot publication the same way that you would from a MicrosoftMicrosoft SQL ServerSQL Server Publisher, by using system stored procedures.

So erstellen Sie eine Oracle-VeröffentlichungTo create an Oracle Publication

  1. Konfigurieren Sie die Oracle-Datenbank als Verleger.Configure the Oracle database as a Publisher. Weitere Informationen finden Sie unter Konfigurieren eines Oracle-Verlegers.For more information, see Configure an Oracle Publisher.

  2. Wenn kein Remoteverteiler vorhanden ist, konfigurieren Sie den Remoteverteiler.If a remote Distributor does not exist, configure the remote Distributor. Weitere Informationen finden Sie unter Configure Publishing and Distribution.For more information, see Configure Publishing and Distribution.

  3. Führen Sie auf dem Remoteverteiler, der vom Oracle-Verleger verwendet wird, sp_adddistpublisher (Transact-SQL) aus.At the remote Distributor that the Oracle Publisher will use, execute sp_adddistpublisher (Transact-SQL). Geben Sie den TNS-Namen (Transparent Network Substrate) der Oracle-Datenbankinstanz für @publisher und den Wert ORACLE oder ORACLE GATEWAY für @publisher_type an.Specify the Transparent Network Substrate (TNS) name of the Oracle database instance for @publisher and a value of ORACLE or ORACLE GATEWAY for @publisher_type. Specify : Geben Sie den beim Herstellen der Verbindung vom Oracle-Verleger zum Remote- SQL ServerSQL Server -Verteiler verwendeten Sicherheitsmodus auf eine der folgenden Arten an:Specify the security mode used when connecting from the Oracle Publisher to the remote SQL ServerSQL Server Distributor as one of the following:

    • Geben Sie für die Standardeinstellung „Oracle-Standardauthentifizierung“ für @security_mode den Wert 0, für @login den Anmeldenamen für das Schema des administrativen Replikationsbenutzers, das Sie während der Konfiguration auf dem Oracle-Verleger erstellt haben, und für @password das Kennwort an.To use Oracle Standard Authentication, the default, specify a value of 0 for @security_mode, the login of the replication administrative user schema you created on the Oracle Publisher during configuration for @login, and the password for @password.

      Wichtig

      Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben.When possible, prompt users to enter security credentials at runtime. Wenn Sie Anmeldeinformationen in einer Skriptdatei speichern, müssen Sie die Datei schützen, um unberechtigtem Zugriff vorzubeugen.If you store credentials in a script file, you must secure the file to prevent unauthorized access.

    • Geben Sie für @ security_mode den Wert 1 an, um die Windows-Authentifizierung zu verwenden.To use Windows Authentication, specify a value of 1 for @security_mode.

      Hinweis

      Für die Verwendung der Windows-Authentifizierung muss der Oracle-Server so konfiguriert werden, dass Verbindungen mithilfe von Windows-Anmeldeinformationen möglich sind (weitere Informationen dazu finden Sie in der Oracle-Dokumentation). Darüber hinaus müssen Sie aktuell mit demselben Microsoft Windows-Konto angemeldet sein, das Sie für das Schema für den administrativen Replikationsbenutzer angegeben haben.To use Windows Authentication, the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same Microsoft Windows account you specified for the replication administrative user schema..

  4. Erstellen Sie einen Protokolllese-Agentauftrag für die Veröffentlichungsdatenbank.Create a Log Reader Agent job for the publication database.

    • Wenn Sie sich nicht sicher sind, ob ein Protokolllese-Agentauftrag für die Veröffentlichungsdatenbank vorhanden ist, dann führen Sie sp_helplogreader_agent (Transact-SQL) auf dem vom Oracle-Verleger verwendeten Verteiler für die Verteilerdatenbank aus.If you are unsure whether a Log Reader Agent job exists for a published database, execute sp_helplogreader_agent (Transact-SQL) at the Distributor used by the Oracle Publisher on the distribution database. Geben Sie für @publisher den Namen des Oracle-Verlegers an.Specify the name of the Oracle Publisher for @publisher. Wenn das Resultset leer ist, muss ein Protokolllese-Agentauftrag erstellt werden.If the result set is empty, then a Log Reader Agent job must be created.

    • Wenn ein Protokolllese-Agentauftrag für die Veröffentlichungsdatenbank bereits vorhanden ist, fahren Sie mit Schritt 5 fort.If a Log Reader Agent job already exists for the publication database, proceed to step 5.

    • Führen Sie dem vom Oracle-Verleger verwendeten Verteiler für die Verteilungsdatenbank sp_addlogreader_agent (Transact-SQL) aus.At the Distributor used by the Oracle Publisher on the distribution database, execute sp_addlogreader_agent (Transact-SQL). Geben Sie für @job_login und @job_password die Windows-Anmeldeinformationen an, unter denen der Agent ausgeführt wird.Specify the Windows credentials under which the agent runs for @job_login and @job_password.

      Hinweis

      Der Parameter @job_login muss mit den in Schritt 3 angegebenen Anmeldeinformationen übereinstimmen.The @job_login parameter must match the login supplied in step 3. Geben Sie keine Sicherheitsinformationen zum Verleger an.Do not supply publisher security information. Der Protokolllese-Agent stellt mit den in Schritt 3 bereitgestellten Sicherheitsinformationen eine Verbindung mit dem Verleger her.The Log Reader agent connects to the Publisher using the security information provided in step 3.

  5. Führen Sie auf dem Verteiler für die Verteilerdatenbank sp_addpublication (Transact-SQL) aus, um die Veröffentlichung zu erstellen.At the Distributor on the distribution database, execute sp_addpublication (Transact-SQL) to create the publication. Weitere Informationen finden Sie unter Create a Publication.For more information, see Create a Publication.

  6. Führen Sie auf dem Verteiler für die Verteilerdatenbank sp_addpublication_snapshot (Transact-SQL)aus.At the Distributor on the distribution database, execute sp_addpublication_snapshot (Transact-SQL). Geben Sie für @publication den in Schritt 4 verwendeten Veröffentlichungsnamen und für @job_name und @password die Windows-Anmeldeinformationen an, unter denen der Momentaufnahme-Agent ausgeführt wird.Specify the publication name used in step 4 for @publication and the Windows credentials under which the Snapshot Agent runs for @job_name and @password. Wenn zum Herstellen der Verbindung mit dem Verleger die Oracle-Standardauthentifizierung verwendet werden soll, müssen Sie außerdem für @publisher_security_mode den Wert 0 und für @publisher_login und @publisher_password die Oracle-Anmeldeinformationen angeben.To use Oracle Standard Authentication when connecting to the Publisher, you must also specify a value of 0 for @publisher_security_mode and the Oracle login information for @publisher_login and @publisher_password. Dadurch wird ein Auftrag des Momentaufnahme-Agents für die Veröffentlichung erstellt.This creates a Snapshot Agent job for the publication.

Weitere InformationenSee Also

Konfigurieren eines Oracle-Verlegers Configure an Oracle Publisher
Veröffentlichen von Daten und Datenbankobjekten Publish Data and Database Objects
Konfigurieren des Transaktionssatz-Auftrags für einen Oracle-Verleger (Replikationsprogrammierung mit Transact-SQL) Configure the Transaction Set Job for an Oracle Publisher (Replication Transact-SQL Programming)
Oracle Publishing Overview Oracle Publishing Overview
Skript zum Erteilen von Oracle-BerechtigungenScript to Grant Oracle Permissions