Prozedure Replikation

Erfahren Sie mehr über die prozedurale Replikation und deren Konfiguration.

Prozedurale Replikation

Die prozedurale Replikation ist nur mit Oracle AI Database verfügbar. Oracle GoldenGate verwendet die prozedurale Replikation, um von Oracle AI Database bereitgestellte PL/SQL-Prozeduren zu replizieren, um den Versand und die Anwendung von High-Volume-Datensätzen zu vermeiden, die normalerweise von diesen Vorgängen generiert werden. Bei der prozeduralen Replikation werden Dictionary-Änderungen implementiert, die das Benutzer- und Sessionverhalten sowie das Swapping von Objekten im Dictionary steuern.

Die prozedurale Replikation bezieht sich nicht auf die Replikation der Anweisungen CREATE, ALTER und DROP (oder DDL), sondern auf die Replikation eines Prozeduraufrufs wie:

CALL *procedure_name*(*arg1*, *arg2*, ...);

Im Gegensatz zu:

exec *procedure_name*(*arg1*, *arg2*, ...)

Nachdem Sie die prozedurale Replikation aktiviert haben, werden Aufrufe von Prozeduren in von Oracle AI Database bereitgestellten Packages in einer Datenbank in einer oder mehreren anderen Datenbanken repliziert und dann in diesen Datenbanken ausgeführt. Beispiel: Ein Aufruf von Unterprogrammen im Package DBMS_REDEFINITION kann eine Online-Neudefinition einer Tabelle durchführen. Wenn die Tabelle in mehreren Datenbanken repliziert wird und dieselbe Online-Neudefinition für die Tabelle in jeder Datenbank ausgeführt werden soll, können Sie die Aufrufe der Unterprogramme im Package DBMS_REDEFINITION in einer Datenbank ausführen, und Oracle GoldenGate kann diese Aufrufe in den anderen Datenbanken replizieren.

Um die prozedurale Replikation zu unterstützen, muss Ihre Oracle AI Database so konfiguriert werden, dass Prozeduren identifiziert werden, die für diese Optimierung aktiviert sind.

Um die prozedurale Replikation zu verwenden, müssen die folgenden Voraussetzungen erfüllt sein:

Prozedurale Replikation - Überblick

Die prozedurale Replikation verwendet einen Traildatensatz, um sicherzustellen, dass genügend Informationen mit dem Datensatz gekapselt sind.

Um die prozedurale Oracle GoldenGate-Replikation zu verwenden, müssen Sie sie aktivieren. Ihre Oracle AI Database muss über einen integrierten Mechanismus verfügen, mit dem die Verfahren identifiziert werden können, die für diese Optimierung aktiviert sind.

Mit PL/SQL-Pragmas wird angegeben, welche Prozeduren repliziert werden können. Wenn das Pragma angegeben wird, wird beim Ein- und Ausstieg aus der Routine ein Rückruf an Logminer durchgeführt. Der Callback gibt den Namen des Prozeduraufrufs und der Argumente an und gibt an, ob die Prozedur erfolgreich oder mit einem Fehler beendet wurde. Logminer erweitert den Redo-Stream um die Informationen aus den Callbacks. Bei unterstützten Prozeduren wird das von der Prozedur generierte normale Redo unterdrückt, und nur der Prozeduraufruf wird repliziert.

Ein neuer Traildatensatz wird generiert, um die prozedurale Replikation zu identifizieren. Dieser Traildatensatz nutzt das vorhandene Traildatenformat für Argumente, die an PL/SQL-Prozeduren übergeben werden. Bei LOBs werden Daten in Blöcken übergeben, die dem vorhandenen Trailformat für LOBs ähneln. Dieser Traildatensatz enthält ausreichende Informationen, um die Prozedur unverändert auf dem Ziel wiederzugeben.

Wenn Sie die prozedurale Replikation aktivieren, wird verhindert, dass einzelne Datensätze, die von der Prozedur betroffen sind, in die Traildatei geschrieben werden.

Wenn beim Anwenden einer PL/SQL-Prozedur ein Fehler auftritt, kann Replicat die gesamte PL/SQL-Prozedur wiedergeben.

Bestimmen, ob die Prozedurreplikation aktiviert ist

Verwenden Sie die Funktion GG_PROCEDURE_REPLICATION_ON im Package DBMS_GOLDENGATE_ADM, um zu bestimmen, ob die prozedurale Oracle GoldenGate-Replikation ein- oder ausgeschaltet ist.

Wenn Sie Oracle GoldenGate in einer Oracle AI Database Vault-Umgebung mit prozeduraler Replikation verwenden möchten, müssen Sie die entsprechenden Berechtigungen festlegen. Siehe Oracle AI Database Vault Administrator's Guide.

So aktivieren Sie die prozedurale Replikation:

  1. Stellen Sie eine Verbindung zur Datenbank als sys (sqlplus, sqlcl, sqldeveloper) und nicht als Oracle GoldenGate-Administrator her.

  2. Führen Sie die Funktion GG_PROCEDURE_REPLICATION_ON aus.

Beispiel 9-1: Funktion GG_PROCEDURE_REPLICATION_ON ausführen

SET SERVEROUTPUT ON
DECLARE
  on_or_off   NUMBER;
BEGIN
  on_or_off := DBMS_GOLDENGATE_ADM.GG_PROCEDURE_REPLICATION_ON;
  IF on_or_off=1 THEN
    DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is ON.');
  ELSE
    DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is OFF.');
  END IF;
END;
/

Zusätzliches Logging aktivieren und deaktivieren

Oracle GoldenGate stellt Befehle bereit, mit denen Sie das zusätzliche prozedurale Logging aktivieren oder deaktivieren können.

So aktivieren Sie zusätzliches Logging:

  1. Melden Sie sich als Oracle GoldenGate-Administrator mit DBLOGIN bei der Quelldatenbank an.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. Fügen Sie das zusätzliche Logging für die prozedurale Replikation hinzu.

    ADD PROCEDURETRANDATA

    Ausgabe:

    INFO OGG-13005 PROCEDURETRANDATA supplemental logging has been enabled.

Das zusätzliche Logging ist für die Prozedurreplikation aktiviert.

So deaktivieren Sie das zusätzliche Logging:

  1. Melden Sie sich als Oracle GoldenGate-Administrator mit dblogin bei der Quelldatenbank an.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. Entfernen Sie das zusätzliche Logging für die Prozedurreplikations.

    DELETE PROCEDURETRANDATA

Zusätzliches Logging ist für die Prozedurreplikation deaktiviert.

So zeigen Sie Informationen zum zusätzlichen Logging an:

  1. Melden Sie sich als Oracle GoldenGate-Administrator mit dblogin bei der Quelldatenbank an.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. Zusätzliche Logginginformationen für die Prozedurreplikation anzeigen.

    INFO PROCEDURETRANDATA

Zusätzliche Logginginformationen für die Prozedurreplikation werden angezeigt.

Filterfunktionen für die prozedurale Replikation

Sie können angeben, welche Prozeduren und Packages Sie für die Prozedurreplikation ein- oder ausschließen möchten.

Unterstützte Packages und Prozeduren werden mit Featuregruppen gruppiert. Mit dem Prozedurparameter mit dem Schlüsselwort INCLUDE oder EXCLUDE können Sie Funktionen für die Prozedurreplikation filtern.

Im Prozedurparameter geben INCLUDE oder EXCLUDE den Anfang einer Filterklausel an. Sie geben die Prozeduren an, die repliziert (INCLUDE) oder herausgefiltert (EXCLUDE) werden sollen. Die Filterklausel muss aus dem Schlüsselwort INCLUDE ALL_SUPPORTED oder EXCLUDE ALL_SUPPORTED gefolgt von einer gültigen Kombination der anderen Filteroptionen des Prozedurparameters bestehen. Der Filter EXCLUDE hat Vorrang vor allen INCLUDE-Filtern, die dieselben Kriterien enthalten.

  <div class="infoboxnote" markdown="1">


  **Note:**

  When replicating Oracle Streams Advanced Queuing (AQ) procedures, you must use the `RULE` option in your parameter file as follows:

  `PROCEDURE INCLUDE FEATURE ALL_SUPPORTED`

  or

  `PROCEDURE INCLUDE FEATURE AQ, RULE`

  Do *not* use `PROCEDURE INCLUDE FEATURE AQ` without the `RULE` option.

  </div>

Inklusive aller vom System bereitgestellten Pakete bei Extract:

  1. Melden Sie sich bei Extract in der Quelldatenbank an.

    EXTRACT edba

    USERIDALIAS admin_dbA DOMAIN ORADEV

  2. Neue Traildatei erstellen

    EXTTRAIL ea

  3. Aktivieren Sie die Prozedurreplikation, falls noch nicht geschehen.

    TRANLOGOPTIONS INTEGRATEDPARAMS (ENABLE_PROCEDURAL_REPLICATION Y)

  4. Filter für Prozedurreplikation einschließen.

    PROCEDURE INCLUDE FEATURE ALL_SUPPORTED

Sie haben erfolgreich alle vom System bereitgestellten Packages für die Prozedurreplikation aufgenommen.

Spezifische Packages in Replicat werden ausgeschlossen:

  1. Stellen Sie eine Verbindung zu Replicat in der Zieldatenbank her.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. Filter für Prozedurreplikation einschließen.

    PROCEDURE EXCLUDE FEATURE RLS

Sie haben bestimmte Packages für die Prozedurreplikation erfolgreich ausgeschlossen.

Prozedurale Replikationsfehler behandeln

Bei der prozeduralen Replikation wird der Parameter REPERROR verwendet, um das Verhalten von Replicat zu konfigurieren, wenn ein prozeduraler Fehler auftritt.

Standardmäßig wird Replicat abgebrochen, wenn eine prozedurale Replikation erfolgt. Mit den folgenden Schritten wird die Fehlerbehandlung eingerichtet:

  1. Stellen Sie eine Verbindung zu Replicat in der Zieldatenbank her.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. Filter für Prozedurreplikation einschließen.

    PROCEDURE EXCLUDE FEATURE RLS

  3. Geben Sie den Parameter für die Fehlerbehandlung an. Weitere Optionen finden Sie unter REPERROR in der Referenz zu Parametern und Funktionen für Oracle GoldenGate.

    REPERROR (PROCEDURE, DISCARD)

Sie haben Fehler für die prozedurale Replikation erfolgreich behandelt.

Für die prozedurale Replikation von Oracle GoldenGate unterstützte Prozeduren auflisten

In der Ansicht DBA_GG_SUPPORTED_PROCEDURES werden Informationen zu den unterstützten Packages für die prozedurale Oracle GoldenGate-Replikation angezeigt.

Wenn eine Prozedur unterstützt wird und die prozedurale Replikation von Oracle GoldenGate aktiviert ist, werden Aufrufe der Prozedur repliziert, es sei denn, die Prozedur ist speziell ausgeschlossen.

  1. Stellen Sie eine Verbindung zur Datenbank als sys (sqlplus, sqlcl, sqldeveloper) und nicht als Oracle GoldenGate-Administrator her.

  2. Fragen Sie die Ansicht DBA_GG_SUPPORTED_PROCEDURES ab.

Beispiel 9-2: Informationen zu den für die Oracle GoldenGate-Prozedurale Replikation unterstützten Packages anzeigen

Diese Abfrage zeigt die folgenden Informationen zu den Packages an:

COLUMN OWNER FORMAT A10
COLUMN PACKAGE_NAME FORMAT A15
COLUMN PROCEDURE_NAME FORMAT A15
COLUMN MIN_DB_VERSION FORMAT A14
COLUMN EXCLUSION_RULE_EXISTS FORMAT A14

SELECT OWNER,
       PACKAGE_NAME,
       PROCEDURE_NAME,
       MIN_DB_VERSION,
       EXCLUSION_RULE_EXISTS
  FROM DBA_GG_SUPPORTED_PROCEDURES;

Die Ausgabe sieht in etwa wie folgt aus:

OWNER      PACKAGE_NAME    PROCEDURE_NAME  MIN_DB_VERSION EXCLUSION_RULE
---------- --------------- --------------- -------------- --------------
XDB        DBMS_XDB_CONFIG ADDTRUSTMAPPING 12.2           NO
CTXSYS     CTX_DDL         ALTER_INDEX     12.2           NO
SYS        DBMS_FGA        DROP_POLICY     12.2           NO
SYS        XS_ACL          DELETE_ACL      12.2           NO
.
.
.

Prozedurale Oracle GoldenGate-Replikation überwachen

Mit einer Gruppe von Data Dictionary Views können Sie die prozedurale Oracle GoldenGate-Replikation überwachen.

Mit den folgenden Ansichten können Sie die prozedurale Oracle GoldenGate-Replikation überwachen:

Anzeigen Beschreibung
DBA_GG_SUPPORTED_PACKAGES

Enthält Details zu unterstützten Packages für die prozedurale Oracle GoldenGate-Replikation.

Wenn ein Package unterstützt wird und die prozedurale Oracle GoldenGate-Replikation aktiviert ist, werden Aufrufe von Unterprogrammen im Package repliziert.

DBA_GG_SUPPORTED_PROCEDURES Enthält Details zu den Prozeduren, die für die prozedurale Oracle GoldenGate-Replikation unterstützt werden.
DBA_GG_PROC_OBJECT_EXCLUSION

Enthält Details zu allen Datenbankobjekten, die sich in der Ausschlussliste für die prozedurale Oracle GoldenGate-Replikation befinden.

Ein Datenbankobjekt wird der Ausschlussliste mit der Prozedur INSERT_PROCREP_EXCLUSION_OBJ im Package DBMS_GOLDENGATE_ADM hinzugefügt. Wenn sich ein Datenbankobjekt in der Ausschlussliste befindet, wird die Ausführung eines Unterprogramms n nicht repliziert, wenn das Unterprogramm für das ausgeschlossene Objekt ausgeführt wird.

  1. Stellen Sie eine Verbindung zur Datenbank als sys (sqlplus, sqlcl oder sqldeveloper) und nicht als Oracle GoldenGate-Administrator her.

  2. Fragen Sie die Views für die prozedurale Oracle GoldenGate-Replikation ab.