Oracle-Quelldatenbank konfigurieren

Übersicht

In diesem Abschnitt wird beschrieben, wie Sie Ihre Oracle-Quelldatenbank konfigurieren, damit Datastream Daten aus ihr abrufen kann.

Oracle-Quelldatenbank konfigurieren

Bevor Sie Datastream zum Abrufen von Daten aus der Oracle-Quelldatenbank verwenden können, müssen Sie Ihre Datenbank so konfigurieren:

  • Richten Sie Archivierungs-Logging ein, um Änderungen in der Datenbank zu verfolgen, z. B. die Vorgänge insert, update, delete und rename.
  • Gewähren Sie die entsprechenden Berechtigungen für das Nutzerkonto, das für die Verbindung mit der Datenbank verwendet wird.
  • Definieren Sie eine Datenaufbewahrungsrichtlinie für Ihre Datenbank, um unter anderem zu bestimmen, welche Daten archiviert werden, wie lange sie aufbewahrt werden sollen und ob die Daten am Ende der Aufbewahrungsdauer archiviert oder gelöscht werden.

In den folgenden Abschnitten wird erläutert, wie die einzelnen Oracle-Datenbanktypen konfiguriert werden.

Datastream funktioniert derzeit mit den folgenden Arten von Oracle-Datenbanken:

Amazon RDS für Oracle-Datenbank konfigurieren

  1. Prüfen Sie, ob die Datenbank im Modus ARCHIVELOG ausgeführt wird. Dazu führen Sie den folgenden Befehl aus:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Wenn das Ergebnis ARCHIVELOG ist, fahren Sie mit Schritt c fort.

    2. Wenn das Ergebnis NOARCHIVELOG ist, müssen Sie den ARCHIVELOG-Modus für Ihre Datenbank aktivieren.

    3. Führen Sie den folgenden Befehl aus, um eine Datenaufbewahrungsrichtlinie für die Datenbank zu definieren:

      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);
      

      Wir empfehlen, Sicherungen und Archivlogs mindestens 4 Tage aufzubewahren. 7 Tage wird empfohlen.

    4. Konfigurieren Sie die Rotationsrichtlinie für Oracle-Logdateien. Wir empfehlen, eine maximale Logdateigröße von maximal 512 MB festzulegen.

  2. Aktivieren Sie zusätzliche Logdaten. Aktivieren Sie dazu zuerst das zusätzliche Logging in der Datenbank, indem Sie den folgenden Befehl ausführen:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
    

    Wählen Sie als Nächstes aus, ob das Logging für bestimmte Tabellen oder für die gesamte Datenbank aktiviert werden soll.

    Führen Sie den folgenden Befehl für jede zu replizierende Tabelle aus, um Änderungen nur für bestimmte Tabellen zu protokollieren:

    ALTER TABLE [SCHEMA].[TABLE] ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    Wenn Sie die meisten oder alle Tabellen in Ihrer Datenbank replizieren möchten, sollten Sie das Logging für die gesamte Datenbank aktivieren.

    Führen Sie an der SQL-Eingabeaufforderung den folgenden Befehl aus, um zusätzliche Logdaten für die gesamte Datenbank zu aktivieren:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Gewähren Sie dem Nutzerkonto die entsprechenden Berechtigungen, mit dem Sie die Verbindung zu Ihrer Datenbank herstellen. Dazu müssen Sie folgende Befehle ausführen:

    GRANT EXECUTE_CATALOG_ROLE TO [user];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','[USER]','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','[USER]','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

    Wenn Ihre Quelldatenbank Oracle 12c oder höher ist, gewähren Sie die folgende zusätzliche Berechtigung:

    GRANT LOGMINING TO [user];

Selbst gehostete Oracle-Datenbank konfigurieren

  1. Prüfen Sie, ob die Datenbank im Modus ARCHIVELOG ausgeführt wird. Dazu führen Sie den folgenden Befehl aus:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Wenn das Ergebnis ARCHIVELOG ist, fahren Sie mit Schritt 2 fort.

    2. Wenn das Ergebnis NOARCHIVELOG ist, müssen Sie den ARCHIVELOG-Modus für Ihre Datenbank aktivieren.

    3. Führen Sie die folgenden Befehle aus, wenn Sie als SYSDBA angemeldet sind:

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
      
  2. Legen Sie mit diesen Befehlen des Oracle Recovery Manager (RMAN) eine Datenaufbewahrungsrichtlinie für Ihre Datenbank fest:

        RMAN > TARGET /
        RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
      

    Wir empfehlen, Sicherungen und Archivlogs mindestens 4 Tage aufzubewahren. 7 Tage wird empfohlen.

  3. Kehren Sie zur SQL-Eingabeaufforderung des Datenbanktools zurück, mit dem Sie die Richtlinie zur Oracle-Logdateirotation konfigurieren. Wir empfehlen, eine maximale Logdateigröße von maximal 512 MB festzulegen.

  4. Aktivieren Sie zusätzliche Logdaten. Aktivieren Sie dazu zuerst das zusätzliche Logging in der Datenbank, indem Sie den folgenden Befehl ausführen:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

    Wählen Sie als Nächstes aus, ob das Logging für bestimmte Tabellen oder für die gesamte Datenbank aktiviert werden soll.

    Führen Sie den folgenden Befehl für jede zu replizierende Tabelle aus, um Änderungen nur für bestimmte Tabellen zu protokollieren:

    ALTER TABLE [SCHEMA].[TABLE] ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    Wenn Sie die meisten oder alle Tabellen in Ihrer Datenbank replizieren möchten, sollten Sie das Logging für die gesamte Datenbank aktivieren.

    Führen Sie den folgenden Befehl aus, um zusätzliche Logdaten für die gesamte Datenbank zu aktivieren:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. Gewähren Sie dem Nutzerkonto die entsprechenden Berechtigungen, mit dem Sie die Verbindung zu Ihrer Datenbank herstellen. Dazu müssen Sie folgende Befehle ausführen:

    GRANT EXECUTE_CATALOG_ROLE TO [user];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    GRANT SELECT ON SYS.V_$DATABASE TO [user];
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR_D TO [user];
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

    Wenn Ihre Quelldatenbank Oracle 12c oder höher ist, gewähren Sie die folgende zusätzliche Berechtigung:

    GRANT LOGMINING TO [user];