Eine Plug-in-Oracle-Datenbank konfigurieren

Datastream unterstützt die mehrmandantenfähige Oracle-Architektur, bei der eine einzelne Containerdatenbank (CDB) eine oder mehrere Plug-in-Datenbanken (PDBs) enthält. Jede austauschbare Datenbank ist eine eigenständige Datenbank mit einer eindeutigen ID und einem eindeutigen Namen, die unabhängig verwaltet werden kann.

Führen Sie die folgenden Schritte aus, um eine selbstgehostete Pluggable-Datenbank von Oracle so zu konfigurieren, dass Sie sie mit Datastream verwenden können:

  1. Prüfen Sie, ob die Datenbank im Modus ARCHIVELOG ausgeführt wird. Führen Sie dazu den folgenden Befehl im CDB$ROOT-Container 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.

  2. Definieren Sie eine Aufbewahrungsrichtlinie für die Daten Ihrer Datenbank, indem Sie den folgenden RMAN-Befehl (Oracle Recovery Manager) über den Container CDB$ROOT ausführen:

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
    

    Der Befehl definiert die Aufbewahrungsrichtlinie für alle Plug-in-Datenbanken in Ihrer Containerdatenbank.

    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 für die Oracle-Protokolldateirotation 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 auf der Containerebene CDB$ROOT. Führen Sie dazu den folgenden Befehl aus:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

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

    Wenn Sie Änderungen nur für bestimmte Tabellen protokollieren möchten, stellen Sie eine Verbindung zum Plug-in-Datenbankcontainer her und führen Sie den folgenden Befehl für jede Tabelle aus, die Sie replizieren möchten:

    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 mehrere oder alle Tabellen in Ihrer Datenbank replizieren möchten, sollten Sie 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. Einen gemeinsamen Nutzer erstellen. Ein gemeinsamer Nutzer hat im CDB$ROOT-Container und in den Plug-in-Datenbanken dieselbe Identität. Ein gemeinsamer Nutzer kann sich mit dem CDB$ROOT-Container und jeder Plug-in-Datenbank, in der er über Berechtigungen verfügt, verbinden und Vorgänge ausführen. Der gängige Nutzername muss mit C## oder c## beginnen.

  6. Gewähren Sie dem Nutzer, der zum Herstellen einer Verbindung zur Datenbank verwendet wird, die entsprechenden Berechtigungen. Auf den CDB$ROOT-Container- und Plug-in-Datenbankebenen sind unterschiedliche Berechtigungen erforderlich.

    • Stellen Sie eine Verbindung zum CDB$ROOT-Container her und führen Sie die folgenden Befehle aus:
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SET CONTAINER TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    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 LOGMINING TO USER_NAME;
    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    
    • Stellen Sie eine Verbindung zur Plug-in-Datenbank her und führen Sie die folgenden Befehle aus:
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SET CONTAINER TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
    GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;