Oracle -Daten replizieren

Sie können Daten aus Oracle mit Data Replicationreplizieren.

Um die Replikation für Oracle -Daten einzurichten, konfigurieren Sie zuerst Ihre Oracle -Datenbank als Quelle und erstellen Sie dann eine Verbindung.

Unterstützte Versionen

Oracle 19c R1 (19.1)+

Einschränkung

Sie können nur einige Oracle -Datentypen replizieren. Siehe Unterstützte Oracle -Datentypen.

Oracle als Quelle konfigurieren

Bevor Sie eine Replikation mit einer Oracle -Verbindung starten, müssen Sie sicherstellen, dass die Datenbank-, Benutzerkonten-und Schemaanforderungen erfüllt sind.

  1. Konfigurieren Sie eine Oracle -Datenbank. Wenn Sie eine Oracle -Verbindung konfigurieren, werden Sie aufgefordert, den Namen der Oracle -Datenbank anzugeben, aus der Data Replication Daten replizieren soll. Stellen Sie vor dem Erstellen der Verbindung sicher, dass diese Oracle -Datenbank vorhanden ist und dass Sie einen Datenbankbenutzer erstellen und konfigurieren, der Zugriff darauf hat. Data Replication unterstützt Zuordnungstabellen, die sich in mehreren Schemas innerhalb derselben Datenbank befinden. Stellen Sie sicher, dass Oracle XStream über den Parameter enable_goldengate_replication aktiviert ist.

    Einige der XStream-Konfigurationen für Oracle müssen vorab vorbereitet werden, bevor Sie eine Oracle -Verbindung erstellen können.

  2. Aktivieren Sie enable_goldengate_replication. Sie müssen den Systemparameter enable_goldengate_replication in Ihrer Quellendatenbank festlegen, um die XStream-Replikationsfunktion in Oraclezu aktivieren. Sie können die folgenden Anweisungen verwenden:

    ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH
    

    Alle Instanzen in Oracle RAC müssen dieselbe Einstellung haben. Lesen Sie die Oracle, um zu verstehen, welche Auswirkungen die Aktivierung dieses Parameters auf Ihre Datenbank hat.

  3. Erstellen Sie ein Benutzerkonto für die Oracle-Datenbank.

    Wenn Sie Daten aus Oracle -Datenbanken replizieren, verarbeitet Data Replication die Datenbankprotokolle. Sie können Data Replication für die lokale Erfassung konfigurieren, bei der Protokolle in derselben Datenbank verarbeitet werden wie die Schemata, die Sie replizieren. Alternativ können Sie Data Replication so konfigurieren, dass eine separate Oracle XStream-Verbindung verwendet wird, um Protokolle in einer anderen Datenbank zu verarbeiten. Wenn Sie die lokale Erfassung verwenden, benötigen Sie eine einzelne Oracle -Verbindung. Wenn Sie eine separate Oracle XStream-Datenbank für die Protokollverarbeitung verwenden, benötigen Sie zwei Oracle -Verbindungen: eine für die Verbindung zu der Datenbank, die das zu replizierende Schema enthält, und eine für die Verbindung zu der Datenbank, in der Oracle XStream die Protokolle verarbeitet. Diese Protokollverarbeitungsdatenbank kann eine nachgeordnete Oracle -Datenbank sein.

    Überprüfen Sie die erforderlichen Berechtigungen für Oracle -Benutzer. Überprüfen Sie vor der Konfiguration von Oracle -Verbindungen die Liste der Berechtigungen, die für Oracle -Benutzer erforderlich sind. Sie müssen Benutzern diese Berechtigungen erteilen, indem Sie SQL-Scripts ausführen.

    Die folgenden Beispielscripts können Ihnen helfen, dem Benutzer der Oracle -Datenbank und dem Benutzer der Protokollverarbeitungsdatenbank entsprechende Berechtigungen zu erteilen.

Beispielscript createuser-ora-nodba.sql

Kopieren Sie dieses Script und ersetzen Sie die Werte in spitzen Klammern. Führen Sie dieses Script aus, um einen Oracle -Datenbankbenutzer für die Replikation von Daten aus Oraclezu erstellen.

/* _______________________________________________________ {COPYRIGHT-TOP} _____
** Licensed Materials - Property of IBM
** IBM Data Replication Cartridge for IBM Cloud Pak for Data
** 5900ASF
**
** (c) Copyright IBM Corp. 2001, 2022 All rights reserved.
**
** The following sample of source code ("Sample") is owned by International
** Business Machines Corporation or one of its subsidiaries ("IBM") and is
** copyrighted and licensed, not sold. You may use, copy, modify, and
** distribute the Sample in any form without payment to IBM.
**
** The Sample code is provided to you on an "AS IS" basis, without warranty of
** any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
** IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do
** not allow for the exclusion or limitation of implied warranties, so the above
** limitations or exclusions may not apply to you. IBM shall not be liable for
** any damages you suffer as a result of using, copying, modifying or
** distributing the Sample, even if IBM has been advised of the possibility of
** such damages.
* ________________________________________________________ {COPYRIGHT-END} _____*/

--This script does not grant dba to the data replication user.

-- create user
CREATE user <user> identified by <password>
default tablespace <tablespace_name> temporary tablespace <temporary_tablespace_name>;

-- Grant basic roles
grant connect to <user>;
grant resource to <user>;
grant select_catalog_role to <user>;
grant unlimited tablespace to <user>;

-- Table DDL permissions
grant create any table to <user>;
grant alter any table to <user>;
grant drop any table to <user>;
grant lock any table to <user>;

-- Table DML permissions
grant select any table to <user>;
grant flashback any table to <user>;
grant insert any table to <user>;
grant update any table to <user>;
grant delete any table to <user>;

-- Index and view DDL permissions
grant create any index to <user>;
grant alter any index to <user>;
grant drop any index to <user>;
grant create any view to <user>;
grant drop any view to <user>;

-- Sequence and trigger DDL permissions
grant create any sequence to <user>;
grant create any trigger to <user>;

-- Procedure permissions
grant create any procedure to <user>;
grant execute any procedure to <user>;

-- Permission to perform select on the v_$ tables
grant select any dictionary to <user>;

-- General system views
grant select on sys.v_$database to <user>;
grant select on sys.v_$controlfile to <user>;
grant select on sys.v_$version to <user>;
grant select on sys.nls_database_parameters to <user>;

-- Archive and redo logs
grant select on sys.v_$log to <user>;
grant select on sys.v_$logfile to <user>;
grant select on sys.v_$archived_log to <user>;
grant select on sys.v_$log_history to <user>;

-- Sessions and transactions
grant alter session to <user>;
grant select on sys.v_$session to <user>;
grant select on sys.gv_$session to <user>;
grant select on sys.v_$transaction to <user>;
grant select on sys.v_$mystat to <user>;

-- Tables, indexes, columns and related views
grant select on sys.all_coll_types to <user>;
grant select on sys.all_type_attrs to <user>;
grant select on sys.dba_tables to <user>;
grant select on sys.dba_tab_comments to <user>;
grant select on sys.dba_tab_columns to <user>;
grant select on sys.dba_col_comments to <user>;
grant select on sys.dba_indexes to <user>;
grant select on sys.dba_ind_columns to <user>;
grant select on sys.all_constraints to <user>;
grant select on sys.dba_constraints to <user>;
grant select on sys.all_cons_columns to <user>;
grant select on sys.dba_cons_columns to <user>;
grant select on sys.tab$ to <user>;
grant select on sys.ind$ to <user>;
grant select on sys.lob$ to <user>;
grant select on sys.col$ to <user>;
grant select on sys.icol$ to <user>;
grant select on sys.coltype$ to <user>;
grant select on sys.attrcol$ to <user>;
grant select on sys.ccol$ to <user>;
grant select on sys.cdef$ to <user>;

-- Miscellaneous other objects
grant select on sys.obj$ to <user>;
grant select on sys.dba_mviews to <user>;
grant select on sys.dba_objects to <user>;
grant select on sys.dba_sequences to <user>;
grant select on sys.hist_head$ to <user>;
grant select on sys.resource_cost to <user>;

-- Storage
grant select on sys.dba_tablespaces to <user>;
grant select on sys.dba_rollback_segs to <user>;

-- Permissions
grant select on sys.dba_users to <user>;
grant select on sys.dba_sys_privs to <user>;
grant select on sys.dba_tab_privs to <user>;
grant select on sys.dba_profiles to <user>;
grant select on sys.dba_roles to <user>;
grant select on sys.user$ to <user>;
grant select on user_role_privs to <user>;

exit;

Beispielscript createuser-ora-xstream.sql

Kopieren Sie dieses Script und ersetzen Sie die Werte in spitzen Klammern. Führen Sie das Beispielscript createuser-ora-nodba.sql aus, bevor Sie createuser-ora-xstream.sqlausführen. Wenn Sie Data Replication für die Verwendung einer lokalen Erfassung konfigurieren, bei der Protokolle in derselben Datenbank wie die von Ihnen replizierten Schemas verarbeitet werden, führen Sie createuser-ora-nodba.sql und createuser-ora-xstream.sql für dieselbe Datenbank aus und verwenden Sie denselben Wert für <user>. Wenn Sie die Oracle XStream-Prozessprotokolle in einer anderen Datenbank als die von Ihnen replizierten Schemas verwenden möchten, geben Sie optional einen anderen Benutzer an und führen Sie das Script für die Datenbank aus.

/* _______________________________________________________ {COPYRIGHT-TOP} _____
** Licensed Materials - Property of IBM
** IBM Data Replication Cartridge for IBM Cloud Pak for Data
** 5900ASF
**
** (c) Copyright IBM Corp. 2001, 2022 All rights reserved.
**
** The following sample of source code ("Sample") is owned by International
** Business Machines Corporation or one of its subsidiaries ("IBM") and is
** copyrighted and licensed, not sold. You may use, copy, modify, and
** distribute the Sample in any form without payment to IBM.
**
** The Sample code is provided to you on an "AS IS" basis, without warranty of
** any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
** IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do
** not allow for the exclusion or limitation of implied warranties, so the above
** limitations or exclusions may not apply to you. IBM shall not be liable for
** any damages you suffer as a result of using, copying, modifying or
** distributing the Sample, even if IBM has been advised of the possibility of
** such damages.
* ________________________________________________________ {COPYRIGHT-END} _____*/

-- This script is a continuation of createuser-ora-nodba.sql script with
-- additional changes needed for data replication user as well as XStream Log
-- Processing Database user. Process all needed privileges from the script
-- createuser-ora-nodba.sql prior to continuing with this script.

-- XStream privileges on data replication User

-- Expected to be used for DBMS_CAPTURE_ADM.BUILD
-- to define XStream Capture initialization points

grant execute on DBMS_CAPTURE_ADM to <user>;

-- Optional privilege that is expected to be used on
-- the target engine required for Recursion Prevention
-- in Bidirectional replication.

grant execute on DBMS_XSTREAM_ADM to <user>;

-- Enable enable_goldengate_replication

-- You need to set the enable_goldengate_replication system parameter on your source
-- database to enable XStream replication capability in Oracle.

ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH;

-- to enable the enable_goldengate_replication system parameter.
-- All instances in Oracle RAC must have the same setting. Refer to Oracle documentation
-- for further understanding on the impact of enabling this parameter on your database.

-- Setting up Oracle XStream user account.

-- Most work in data replication is done using the Oracle user account.
-- When data replication needs to interact with Oracle XStream it will use the Oracle XStream account.
-- An Oracle XStream account needs sufficient privileges to comply with Oracle XStream user requirements.
-- In a Pluggable database environment, the Oracle user account has all the granted access to the
-- Pluggable database when replication is configured for a pluggable database, whereas the XStream
-- user account has to be defined in the root container database as per Oracle XStream requirements.
-- All Oracle XStream related objects are defined and managed in the container database in this case.

CALL DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
  grantee                 => <Log Processing Database User>,
  privilege_type          => 'CAPTURE');

exit;
  1. Konfigurieren Sie die Protokollverarbeitungsdatenbank. Wenn Sie ein Asset Data Replication erstellen, werden Sie zur Eingabe des Namens der Oracle -Protokollverarbeitungsdatenbank aufgefordert, die Data Replication verwenden soll. Diese Datenbank stellt eine abgehende XStream-Datenbank bereit, zu der Data Replication eine Verbindung herstellt und eine Verbindung herstellt, um Datensätze logischer Änderungen zu verarbeiten, die von der Oracle -XStream-API bereitgestellt werden. Für den lokalen Oracle XStream Capture-und Outbound-Server ist dies dieselbe Datenbank wie zuvor. Bei Plug-in-Datenbanken ist die Protokollverarbeitungsdatenbank die Stammcontainerdatenbank. Bei Downstream-Capture ist die Protokollverarbeitungsdatenbank die Downstream-Datenbank. Die Protokollverarbeitungsdatenbank erfordert auch enable_goldengate_replication.

  2. Optional: Konfigurieren Sie eine Downstream-Protokollverarbeitungsdatenbank. Es sind eine Reihe von Schritten erforderlich, um entweder die nachgeschaltete Echtzeiterfassung oder die nachgeschaltete Erfassung des Archivprotokolls zu konfigurieren. Informationen zum Konfigurieren von Datenbanklinks und der Protokolldateiübertragung finden Sie in der Dokumentation zu Oracle XStream.

  3. Richten Sie das XStream-Benutzerkonto für Oracle ein. Die meisten Arbeiten bei der Data Replication werden mithilfe des Oracle -Benutzerkontos ausgeführt. Wenn Data Replication mit Oracle XStream interagieren muss, wird das Oracle XStream-Konto verwendet. Ein Oracle XStream-Konto benötigt ausreichende Berechtigungen, um die Oracle XStream-Benutzeranforderungen zu erfüllen. In einer Plug-in-Datenbankumgebung hat das Benutzerkonto Oracle den gesamten erteilten Zugriff auf die Plug-in-Datenbank, wenn die Replikation für eine Plug-in-Datenbank konfiguriert ist. Das XStream-Benutzerkonto muss jedoch in der Stammcontainerdatenbank gemäß den Oracle XStream-Anforderungen definiert werden. Alle auf Oracle XStream bezogenen Komponenten werden in diesem Fall in der Stammcontainerdatenbank definiert und verwaltet. Sie können DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE zum Erteilen von Berechtigungen für XStream-Benutzeraccounts. Bei Oracle XStream-Berechtigungsnachweisen für abgehende Datenbanken muss die Groß-/Kleinschreibung beachtet werden. Weitere Informationen finden Sie in der Oracle.

  4. Erstellen Sie ein Schema oder wählen Sie ein bereits vorhandenes Schema für die Metadatentabellen Ihrer Datenbank aus. Sie müssen dieses Schema angeben, wenn Sie Data Replicationkonfigurieren.

Verbindung zu Oracle in einem Projekt herstellen

Für private Konnektivität müssen Sie eine sichere Verbindung einrichten, um eine Verbindung zu einer Datenbank herstellen zu können, die nicht über das Internet zugänglich ist (z. B. hinter einer Firewall).

Um eine Verbindung zu Oracle in einem Projekt herzustellen, siehe Oracle connection.

Erstellen eines Replikations-Assets mit Oracle

So erstellen Sie ein Asset vom Typ Data Replication :

  1. Klicken Sie im Projekt auf die Registerkarte Assets .

  2. Klicken Sie auf Neues Asset > Daten replizieren.

  3. Geben Sie einen Namen ein.

  4. Klicken Sie auf Verbindungen.

  5. Wählen Sie auf der Seite Quellenoptionen Oracle aus der Liste der Verbindungen oder klicken Sie auf Verbindung hinzufügen, um eine neue Verbindung zu erstellen.

    Oracle verbindungen erfordern zusätzliche Parameter wie folgt:

    1. Wählen Sie Lokale Erfassung aus, um die Protokolle in derselben Datenbank wie die Quellenverbindung zu verarbeiten.

    2. Wählen Sie eine separate Oracle XStream-Verbindung zur Verarbeitung von Protokollen in einer separaten Datenbank.

      • Wenn Sie Echtzeit-Downstream-Erfassung wählen, wird eine separate Oracle XStream-Verbindung verwendet, um Protokolle in einer anderen Datenbank zu verarbeiten.
      • Wenn Sie keine Echtzeit-Downstream-Erfassung auswählen, können Sie steckbare Datenbanken (PDBs) oder mandantenfähige Container-Datenbanken (CDBs) und archivierte Protokoll-Downstream-Erfassung verwenden.
    3. Legen Sie das Replikation-Heartbeat-Intervall fest, um zu steuern, wie oft der Replikationsauftrag Heartbeat-Datensätze an die Oracle XStream-Verbindung sendet. Ein Heartbeat-Datensatz ist eine spezielle Zeile, die regelmäßig in eine Tabelle geschrieben wird, um die Verbindung zur Datenbank Oracle aufrechtzuerhalten. Sie können das Heartbeat-Intervall für die Replikation auf einen Wert zwischen 5 Minuten und 60 Minuten einstellen.

    4. Legen Sie den Schwellenwert für die Nichtaktivität des Replikationsberichts fest, um zu steuern, wie lange der Replikationsauftrag auf den Empfang von Daten von der XStream-Verbindung Oracle wartet. Wenn innerhalb des Schwellenwerts für die Nichtaktivität keine Daten oder Heartbeat-Datensätze empfangen werden, weist der Replikationsauftrag Sie darauf hin, dass keine Daten erfasst werden. Sie können den Schwellenwert für die Nichtaktivität des Replikationsberichts auf einen Wert zwischen 6 Minuten und 61 Minuten festlegen.

      Wichtig:

      Der Schwellenwert für den Replikationsbericht muss 60 Sekunden größer sein als das Replikations-Heartbeat-Intervall, um zu verhindern, dass der Replikationsauftrag Sie vorzeitig darüber informiert, dass keine Daten von der Oracle XStream-Verbindung empfangen wurden.

  6. Klicken Sie auf Daten auswählen, wählen Sie ein Schema und optional eine Tabelle aus dem Schema aus.

  7. Wählen Sie auf der Seite Zieloptionen eine Zielverbindung aus der Liste aus, oder klicken Sie auf Verbindung hinzufügen, um eine neue Verbindung zu erstellen.

    Optional : Legen Sie die folgenden Parameter fest, um zu konfigurieren, wie große Objektdatentypen während des Replikationsprozesses behandelt werden:

    Hinweis:

    Die Parameter für die Behandlung von Large Object-Datentypen sind nur verfügbar, wenn Sie Oracle als Quelldatenbank und watsonx.data als Zieldatenbank verwenden.

    Option zur Handhabung von nicht unterstützten Spaltentypen
    Wählen Sie, wie die Replikation von Tabellen behandelt werden soll, die Spalten mit nicht unterstützten Datentypen enthalten.
    Option zur Handhabung von BLOBs
    Konfigurieren Sie, wie ein übergroßes binäres großes Objekt (BLOB) repliziert wird.
    Option zur Handhabung von CLOBs
    Konfigurieren Sie, wie ein Oversize Character Large Object (CLOB) repliziert wird.
    Option zur Handhabung von XML
    Konfigurieren Sie, wie XML-Spalten repliziert werden.
  8. Überprüfen Sie auf der Seite Überprüfung die Zusammenfassung und klicken Sie dann auf Erstellen.