Selbstverwaltete Oracle-Datenbank konfigurieren

  1. Prüfen Sie, ob die Datenbank im Modus ARCHIVELOG ausgeführt wird.
  2. Melden Sie sich dazu bei Ihrer Oracle-Datenbank an und führen Sie den folgenden Befehl an der SQL-Eingabeaufforderung 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;
    4. Archivierte Protokolldateien belegen Speicherplatz, daher sollten Sie den Parameter DB_RECOVERY_FILE_DEST_SIZE für Ihre Datenbank konfigurieren. Verwenden Sie diesen Parameter, um (in Byte) die harte Grenze für den Gesamtspeicherplatz anzugeben, der von den Wiederherstellungsdateien der Zieldatenbank verwendet werden soll. Durch Festlegen dieses Parameters können Sie die Vor- und Nachteile zwischen dem Schutz der Datenbank vor knappem Speicherplatz und dem Fehlschlagen des Streams durch den Verlust der Logposition regeln.

  3. Legen Sie mit diesen Befehlen des Oracle Recovery Manager (RMAN) eine Datenaufbewahrungsrichtlinie für Ihre Datenbank fest:
    TARGET /
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
    

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

  4. Kehren Sie zur SQL-Eingabeaufforderung des Datenbanktools zurück, mit dem Sie die Richtlinie für die Oracle-Protokolldateirotation konfigurieren. Wir empfehlen, eine maximale Logdateigröße von maximal 512 MB festzulegen.
  5. Aktivieren Sie zusätzliche Logdaten. Aktivieren Sie dazu zuerst ein minimales zusätzliches Logging auf Datenbankebene, 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

    Ersetzen Sie Folgendes:

    • SCHEMA: der Name des Schemas, das die Tabelle enthält.
    • TABLE: der Name der Tabelle, für die Sie Änderungen protokollieren möchten.

    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;
  6. 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_NAME;
    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USERNAME;
    GRANT SELECT ON SYS.V$DATABASE TO USERNAME;
    GRANT SELECT ON SYS.V$ARCHIVED_LOG TO USERNAME;
    GRANT SELECT ON SYS.V$LOGMNR_CONTENTS TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    

    Wenn Ihre Organisation das Gewähren der Berechtigung GRANT SELECT ANY TABLE nicht zulässt, verwenden Sie die Lösung, die im Abschnitt Oracle Change Data Capture (CDC) auf der Seite mit häufig gestellten Fragen zu Datastream beschrieben wird.

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

    GRANT LOGMINING TO USER_NAME;