Datenbanken für die Migration vorbereiten

Bevor Sie mit der Datenmigration mit Oracle Cloud Infrastructure Database Migration Service beginnen können, müssen Sie die Quell- und Zieldatenbanken wie hier beschrieben konfigurieren.

Oracle Datenbanken für die Migration vorbereiten

Bereiten Sie Ihre Datenbanken mit einer der folgenden Methoden vor:

  • Bereiten Sie die Datenbank vor, indem Sie Skripte ausführen, die vom Datenbankvorbereitungsutility generiert wurden (empfohlene Option).
  • Konfigurieren Sie Ihre Oracle-Datenbanken manuell, indem Sie der Dokumentation folgen und die SQL-Befehle ausführen.

Datenbanken mit dem Utility zur Datenbankvorbereitung vorbereiten:

So bereiten Sie Ihre Datenbanken für die Migration vor:
  1. Weitere Informationen finden Sie in diesem MOS-Hinweis.
  2. Laden Sie das Dienstprogramm zur Datenbankvorbereitung herunter, das eine Shell-Skriptdatei ist.
  3. Folgen Sie den Anweisungen, um fortzufahren.
  4. Führen Sie das Skript lokal aus.
Das Utility zur Datenbankvorbereitung:
  1. Akzeptiert die für Ihre Migration spezifischen Eingaben und generiert ein SQL-Skript, das Sie für die Quell- und Zieldatenbank ausführen können.
  2. Analysiert Ihre Datenbanken auf fehlende erforderliche Konfigurationen oder Berechtigungen.
  3. Prüft den aktuellen Status der Datenbank und stellt Informationen zu den Vorgängen bereit, die für Ihre Datenbanken ausgeführt werden.
  4. Generiert ein letztes Skript, das die erforderlichen Vorgänge für Ihre Datenbanken ausführt, um sie für die Migration vorzubereiten.
    Hinweis

    • Sie müssen die vom Datenbankvorbereitungsutility generierten Skripte prüfen und die erforderlichen Korrekturen vornehmen, bevor Sie sie für die Datenbank ausführen.
    • Sie müssen das Utilityskript zweimal ausführen, einmal für die Quelldatenbank und dann für die Zieldatenbank.

    Folglich bereitet das Konfigurations-SQL-Skript die Datenbank für die Migration vor.

Datenbanken manuell für die Migration konfigurieren:

Informationen zum manuellen Vorbereiten der Quell- und Zieldatenbank mit den SQL-Befehlen finden Sie in den folgenden Themen:

Quelldatenbank für die Migration vorbereiten

Bevor Sie Daten mit Oracle Cloud Infrastructure Database Migration migrieren können, konfigurieren Sie die Quelldatenbank manuell, wie hier beschrieben.

  • Um einen einzelnen Mandanten (keine CDB) als Quelle für die Migration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
 
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=256M;
 
-- Force Logging
ALTER DATABASE FORCE LOGGING;
 
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
  • Um eine mandantenfähige (CDB) als Quelle für die Migration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Connect to CDB and run:
 
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
 
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=256M SCOPE=BOTH;
 
-- Force Logging
ALTER DATABASE FORCE LOGGING;
 
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
ALTER SESSION SET CONTAINER=PDB;
ALTER USER SYSTEM ACCOUNT UNLOCK;
  • Um Amazon RDS (Nicht-CDB) als Quelle für die Migration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
    -- Remember to set the following parameters thru the Parameter groups functionality:
    -- STREAMS_POOL_SIZE=2147483648
    -- GLOBAL_NAMES=FALSE
    -- To see how Parameter groups work refer to https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/parameter-groups-overview.html
     
    -- Archive Log Mode
    EXEC RDSADMIN.RDSADMIN_UTIL.SET_CONFIGURATION('ARCHIVELOG RETENTION HOURS',72);
     
    -- Force Logging
    EXEC RDSADMIN.RDSADMIN_UTIL.FORCE_LOGGING(P_ENABLE => TRUE);
     
    -- Supplemental Logging
    EXEC RDSADMIN.RDSADMIN_UTIL.ALTER_SUPPLEMENTAL_LOGGING('ADD');
Zusätzliche Konfigurationen zur Vorbereitung der Quelldatenbank für die Online-Migration

Bevor Sie Daten mit Oracle Cloud Infrastructure Database Migration migrieren können, führen Sie zusätzliche Konfigurationen für die Quelldatenbank zur Onlinemigration aus, wie hier beschrieben.

  • Um einen einzelnen Mandanten (keine CDB) als Quelle für die Onlinemigration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
 
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G;
 
-- Force Logging
ALTER DATABASE FORCE LOGGING;
 
-- Enable GoldenGate
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
 
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
 
-- Create GoldenGate nonCDB user
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA 100M ON GG_ADMIN;
GRANT CONNECT TO GGADMIN;
GRANT RESOURCE TO GGADMIN;
GRANT CREATE TO GGADMIN;
GRANT SELECT_CATALOG_ROLE TO GGADMIN;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN; 
GRANT ALTER SYSTEM TO GGADMIN; 
GRANT ALTER USER TO GGADMIN; 
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN; 
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN; 
GRANT SELECT ANY DICTIONARY TO GGADMIN; 
GRANT SELECT ANY TRANSACTION TO GGADMIN; 
GRANT INSERT ANY TABLE TO GGADMIN; 
GRANT UPDATE ANY TABLE TO GGADMIN; 
GRANT DELETE ANY TABLE TO GGADMIN; 
GRANT LOCK ANY TABLE TO GGADMIN; 
GRANT CREATE ANY TABLE TO GGADMIN; 
GRANT CREATE ANY INDEX TO GGADMIN; 
GRANT CREATE ANY CLUSTER TO GGADMIN; 
GRANT CREATE ANY INDEXTYPE TO GGADMIN; 
GRANT CREATE ANY OPERATOR TO GGADMIN; 
GRANT CREATE ANY PROCEDURE TO GGADMIN; 
GRANT CREATE ANY SEQUENCE TO GGADMIN; 
GRANT CREATE ANY TRIGGER TO GGADMIN; 
GRANT CREATE ANY TYPE TO GGADMIN; 
GRANT CREATE ANY SEQUENCE TO GGADMIN; 
GRANT CREATE ANY VIEW TO GGADMIN; 
GRANT ALTER ANY TABLE TO GGADMIN; 
GRANT ALTER ANY INDEX TO GGADMIN; 
GRANT ALTER ANY CLUSTER TO GGADMIN; 
GRANT ALTER ANY INDEXTYPE TO GGADMIN; 
GRANT ALTER ANY OPERATOR TO GGADMIN; 
GRANT ALTER ANY PROCEDURE TO GGADMIN; 
GRANT ALTER ANY SEQUENCE TO GGADMIN; 
GRANT ALTER ANY TRIGGER TO GGADMIN; 
GRANT ALTER ANY TYPE TO GGADMIN; 
GRANT ALTER ANY SEQUENCE TO GGADMIN; 
GRANT CREATE DATABASE LINK TO GGADMIN;
GRANT EXECUTE ON dbms_lock TO GGADMIN; 
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN');
  • Um eine mandantenfähige (CDB) als Quelle für die Onlinemigration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Connect to CDB and run:
 
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
 
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G SCOPE=BOTH;
 
-- Force Logging
ALTER DATABASE FORCE LOGGING;
 
-- Enable GoldenGate
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
 
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK CONTAINER=ALL;
 
-- Create GoldenGate users
-- CDB user
ALTER SESSION SET CONTAINER = CDB$ROOT;
CREATE USER C##GGADMIN IDENTIFIED BY cggadmin_pwd CONTAINER=ALL DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS;
GRANT CONNECT TO C##GGADMIN CONTAINER=ALL;
GRANT RESOURCE TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE TABLE TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE VIEW TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE SESSION TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT_CATALOG_ROLE TO C##GGADMIN CONTAINER=ALL;
GRANT DV_GOLDENGATE_ADMIN TO C##GGADMIN CONTAINER=ALL;
GRANT DV_GOLDENGATE_REDO_ACCESS TO C##GGADMIN CONTAINER=ALL;
GRANT ALTER SYSTEM TO C##GGADMIN CONTAINER=ALL;
GRANT ALTER USER TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT ANY TRANSACTION TO C##GGADMIN CONTAINER=ALL;
GRANT EXECUTE ON dbms_lock TO C##GGADMIN CONTAINER=ALL;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('C##GGADMIN',CONTAINER=>'ALL');
 
-- PDB User
ALTER SESSION SET CONTAINER = v_pdb_name;
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN;
GRANT CONNECT TO GGADMIN CONTAINER=CURRENT;
GRANT RESOURCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT_CATALOG_ROLE TO GGADMIN CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER SYSTEM TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER USER TO GGADMIN CONTAINER=CURRENT;
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT ANY DICTIONARY TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT ANY TRANSACTION TO GGADMIN CONTAINER=CURRENT;
GRANT INSERT ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT UPDATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT DELETE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT LOCK ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY INDEX TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TYPE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY VIEW TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY INDEX TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TYPE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE DATABASE LINK TO GGADMIN CONTAINER=CURRENT;
GRANT EXECUTE ON dbms_lock TO GGADMIN CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN',CONTAINER=>'CURRENT');
  • Um Amazon RDS (Nicht-CDB) als Quelle für die Onlinemigration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
    -- Remember to set the following parameters thru the Parameter groups functionality:
    -- STREAMS_POOL_SIZE=2147483648
    -- ENABLE_GOLDENGATE_REPLICATION=TRUE
    -- GLOBAL_NAMES=FALSE
    -- To see how Parameter groups work refer to https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/parameter-groups-overview.html
     
    -- Archive Log Mode
    EXEC RDSADMIN.RDSADMIN_UTIL.SET_CONFIGURATION('ARCHIVELOG RETENTION HOURS',72);
     
    -- Force Logging
    EXEC RDSADMIN.RDSADMIN_UTIL.FORCE_LOGGING(P_ENABLE => TRUE);
     
    -- Supplemental Logging
    EXEC RDSADMIN.RDSADMIN_UTIL.ALTER_SUPPLEMENTAL_LOGGING('ADD');
     
    -- Create GoldenGate user
    CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 100M ON USERS;
    GRANT UNLIMITED TABLESPACE TO GGADMIN;
    GRANT CONNECT, RESOURCE TO GGADMIN;
    GRANT SELECT ANY DICTIONARY TO GGADMIN;
    GRANT CREATE VIEW TO GGADMIN;
    GRANT EXECUTE ON DBMS_LOCK TO GGADMIN;
    GRANT SELECT ON SYS.CCOL$ TO GGADMIN;
    GRANT SELECT ON SYS.CDEF$ TO GGADMIN;
    GRANT SELECT ON SYS.COL$ TO GGADMIN;
    GRANT SELECT ON SYS.CON$ TO GGADMIN;
    GRANT SELECT ON SYS.DEFERRED_STG$ TO GGADMIN;
    GRANT SELECT ON SYS.ICOL$ TO GGADMIN;
    GRANT SELECT ON SYS.IND$ TO GGADMIN;
    GRANT SELECT ON SYS.LOB$ TO GGADMIN;
    GRANT SELECT ON SYS.LOBFRAG$ TO GGADMIN;
    GRANT SELECT ON SYS.OBJ$ TO GGADMIN;
    GRANT SELECT ON SYS.SEG$ TO GGADMIN;
    GRANT SELECT ON SYS.TAB$ TO GGADMIN;
    GRANT SELECT ON SYS.TABCOMPART$ TO GGADMIN;
    GRANT SELECT ON SYS.TABPART$ TO GGADMIN;
    GRANT SELECT ON SYS.TABSUBPART$ TO GGADMIN;
    EXEC RDSADMIN.RDSADMIN_DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (GRANTEE=>'GGADMIN',PRIVILEGE_TYPE=>'CAPTURE',GRANT_SELECT_PRIVILEGES=>TRUE,DO_GRANTS=>TRUE);
Anwendungsfall für die Vorbereitung der Quelldatenbank für die Migration

Im Folgenden finden Sie einen Beispielanwendungsfall zur Vorbereitung der Quelldatenbank für die Migration. Wenn Sie eine PDB als Quelle für Ihre Migration konfigurieren möchten, ähneln die Schritte dem Einrichten einer klassischen Datenbank als Quelle. Allerdings müssen Sie CDBROOT als ggaliassrc verwenden.

Die Schritte unterscheiden sich geringfügig, wenn Sie eine PDB als Quelldatenbank verwenden. Befolgen Sie daher die Empfehlungen, wenn sich Ihre Datenbank in einer mehrmandantenfähigen Umgebung befindet.

  1. Konfigurieren Sie den Streampool mit dem Initialisierungsparameter STREAMS_POOL_SIZE.

    • Für logische Offlinemigrationen und optimale Data Pump-Performance müssen Sie STREAMS_POOL_SIZE auf mindestens 256 bis 350 MB setzen, damit ein anfänglicher Pool zugewiesen wird. Andernfalls kann es zu einer erheblichen Verzögerung beim Hochfahren kommen.

    • Setzen Sie für logische Onlinemigrationen STREAMS_POOL_SIZE auf mindestens 2 GB.

      Eine Erläuterung von 1 GB STREAMS_POOL_SIZE pro integriertem Extrakt + zusätzliche 25-Prozent-Empfehlung finden Sie unter Integrierter Extract/Replicat und STREAMS_POOL_SIZE (Dokument-ID 2078459.1).

  2. Prüfen Sie den Parameter GLOBAL_NAMES. Wenn er auf true gesetzt ist, ändern Sie ihn in false.

    sqlplus > show parameter global
    NAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    global_names                         boolean TRUE
    
    sqlplus > alter system set global_names=false
  3. Aktivieren Sie ARCHIVELOG, falls noch nicht aktiviert.

    1. Prüfen Sie, ob archivelog aktiviert ist:

      sqlplus > archive log list
      Zurückgegebene Beispielausgabe:
      Database log mode Archive log Mode
      Automatic archival Enabled
      Archive destination USE_DB_RECOVERY_FILE_DEST
      Oldest online log sequence 33
      Next log sequence to archive 35
      Current log sequence 35
    2. Aktivieren Sie den archivelog-Modus:

      sqlplus > shutdown immediate
      sqlplus > startup mount
      sqlplus > alter database archivelog;
      sqlplus > alter database open;
    3. Deaktivieren Sie den archivelog-Modus (zur späteren Bereinigung):

      sqlplus > shutdown immediate
      sqlplus > startup mount
      sqlplus > alter database noarchivelog;
      sqlplus > alter database open;
  4. Logging aktivieren:

    1. Prüfen Sie, ob Logging aktiviert ist:

      sqlplus > SELECT supplemental_log_data_min, force_logging FROM v$database;
    2. Logging aktivieren:

      sqlplus > ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
      sqlplus > ALTER DATABASE FORCE LOGGING;
    3. Deaktivieren Sie Logging (zur späteren Bereinigung):

      sqlplus > ALTER DATABASE DROP SUPPLEMENTAL LOG DATA;
      sqlplus > ALTER DATABASE NO FORCE LOGGING;
  5. Erstellen Sie einen Datenbankadministratorbenutzer mit vollen Oracle Data Pump-Berechtigungen für den erstmaligen Ladevorgang. Ein Benutzer mit der Rolle DATAPUMP_EXP_FULL_DATABASE ist für den Exportvorgang in der Quelldatenbank erforderlich. Dieser Benutzer wird als Datenbankadministrator ausgewählt, wenn Sie Datenbankverbindungen mit den Quelldatenbanken erstellen.

    Weitere Informationen finden Sie unter Oracle Data Pump in der Dokumentation Oracle Database-Utilitys.

  6. Wenn in der exportierten PDB eine Abhängigkeit von lokalen Objekten im Schema des C##-Benutzers erstellt wird, können diese Objekte nicht in die autonome Zieldatenbank importiert werden. Schließen Sie das problematische Schema aus dem Migrationsjob aus.

  7. Wenn Sie Object Storage als Datenübertragungsmedium verwenden, stellen Sie sicher, dass ein Exportverzeichnisobjekt vorhanden ist und von Data Pump zum Speichern generierter Dumpdateien verwendet werden kann.

    • Das Verzeichnisobjekt ist ein Dateipfad im Dateisystem des Quelldatenbankservers. Der Name muss den Regeln für Oracle Database-Verzeichnisobjekte entsprechen. Weitere Informationen finden Sie unter CREATE DIRECTORY in der SQL-Sprachreferenz für Oracle Database.

    • Der Eigentümer des Exportverzeichnisobjekts muss der BS-Benutzer sein, der Eigentümer des Oracle Home der Datenbank ist.

    • Dieser Schritt ist nicht erforderlich, wenn Sie einen Datenbanklink als Übertragungsmedium verwenden.

  8. Wenn Sie Daten mit einem Datenbanklink übertragen möchten, müssen Sie die SSL-Verschlüsselung für die Quelldatenbank einrichten. Wenn Data Pump mit einem Datenbanklink zu einem Autonomous Database-Ziel verwendet wird, muss die SSL-Verschlüsselung für die Quelldatenbank aktiviert sein. Das Erstellen eines Datenbanklinks von einem Autonomous Database on Shared Infrastructure-Ziel zu einer Quelldatenbank mit einer privaten IP erfordert Unterstützung von Oracle Support.

    Weitere Informationen finden Sie unter Transport Layer Security-Authentifizierung konfigurieren in der Oracle Database-Sicherheitsdokumentation.

  9. Wenn Sie bei logischen Onlinemigrationen Migrationen mit Replikation ausführen möchten, aktivieren Sie die Replikation GoldenGate:

    1. Wenn Sie eine PDB migrieren, aktivieren Sie in einer mehrmandantenfähigen Umgebung die GoldenGate-Replikation in der CDB.

      sqlplus > ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
    2. Spielen Sie die obligatorischen RDBMS-Patches in der Quelldatenbank je nach Version der Quelldatenbank ein:

      • Oracle Database 11.2:

        Der My Oracle Support-Hinweis Oracle GoldenGate - Oracle RDBMS Server Recommended Patches (Dokument-ID 1557031.1) empfiehlt die folgenden Updates:

        Database PSU 11.2.0.4.210720 enthält einen Fix für Oracle GoldenGate-Performancebug 28849751 - IE PERFORMANCE DEGRADES WHEN NETWORK LATENCY BETWEEN EXTRACT AND CAPTURE IS MORE THAN 8MS.

        OGG RDBMS Patch 32248879 MERGE REQUEST ON TOP OF DATABASE PSU 11.2.0.4.201020 FOR BUGS 32048478 20448066 - Dieser Patch enthält den erforderlichen Fix für den Oracle GoldenGate Microservices-Bug 20448066 DBMS_XSTREAM_GG APIS SHOULD BE ALLOWED FOR SCA PROCESSES

      • Oracle Database 12.1.0.2 oder höher

        Im My Oracle Support-Hinweis Latest GoldenGate/Database (OGG/RDBMS) Patch recommendations (Dok.-ID 2193391.1) sind die zusätzlichen RDBMS-Patches aufgeführt, die zusätzlich zu den neuesten DBBP/RU für Oracle Database 12c und höher bei Verwendung von Oracle GoldenGate erforderlich sind.

Zieldatenbank für Migration vorbereiten

Bevor Sie Daten mit Oracle Cloud Infrastructure Database Migration migrieren können, konfigurieren Sie die Zieldatenbank manuell wie hier beschrieben.

  • Um eine autonome Datenbank als Ziel für die Migration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
  • Um eine nicht autonome Einzelmandanten- (Nicht-CDB) als Migrationsziel zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
  • Um eine nicht autonome, mandantenfähige (CDB) als Ziel für die Migration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
    -- Connect to CDB and run:
     
    -- Global Names
    ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
     
    -- User system for Datapump
    ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK SCOPE=BOTH;
Zusätzliche Konfigurationen zur Vorbereitung der Zieldatenbank für die Onlinemigration

Bevor Sie Daten mit Oracle Cloud Infrastructure Database Migration migrieren können, führen Sie zusätzliche Konfigurationen für die Zieldatenbank für die Onlinemigration aus, wie hier beschrieben.

Sie müssen die Sperre des Benutzers ggadmin über die Oracle Cloud Infrastructure-Konsole aufheben, indem Sie die folgenden Schritte ausführen:
  1. Befolgen Sie die Schritte 1 bis 3, die unter Benutzer und Benutzerrollen in Autonomous Database verwalten - Verbindung mit Database Actions herstellen erwähnt werden.
  2. Deaktivieren Sie den Schalter Account ist gesperrt.
  3. Geben Sie ein Kennwort mit der entsprechenden Bestätigung an.
  • Um eine autonome Datenbank als Ziel für die Onlinemigration zu konfigurieren, führen Sie alternativ die folgenden SQL-Befehle aus:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- Create GoldenGate user if doesn't exist
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN;
 
-- Or unlock it if exists
ALTER USER GGADMIN IDENTIFIED BY ggadmin_pwd ACCOUNT UNLOCK;
  • Um eine nicht autonome Einzelmandanten- (Nicht-CDB) als Ziel für die Onlinemigration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
 
-- Create GoldenGate nonCDB user
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA 100M ON GG_ADMIN;
GRANT CONNECT TO GGADMIN;
GRANT RESOURCE TO GGADMIN;
GRANT CREATE TO GGADMIN;
GRANT SELECT_CATALOG_ROLE TO GGADMIN;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN; 
GRANT ALTER SYSTEM TO GGADMIN; 
GRANT ALTER USER TO GGADMIN; 
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN; 
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN; 
GRANT SELECT ANY DICTIONARY TO GGADMIN; 
GRANT SELECT ANY TRANSACTION TO GGADMIN; 
GRANT INSERT ANY TABLE TO GGADMIN; 
GRANT UPDATE ANY TABLE TO GGADMIN; 
GRANT DELETE ANY TABLE TO GGADMIN; 
GRANT LOCK ANY TABLE TO GGADMIN; 
GRANT CREATE ANY TABLE TO GGADMIN; 
GRANT CREATE ANY INDEX TO GGADMIN; 
GRANT CREATE ANY CLUSTER TO GGADMIN; 
GRANT CREATE ANY INDEXTYPE TO GGADMIN; 
GRANT CREATE ANY OPERATOR TO GGADMIN; 
GRANT CREATE ANY PROCEDURE TO GGADMIN; 
GRANT CREATE ANY SEQUENCE TO GGADMIN; 
GRANT CREATE ANY TRIGGER TO GGADMIN; 
GRANT CREATE ANY TYPE TO GGADMIN; 
GRANT CREATE ANY SEQUENCE TO GGADMIN; 
GRANT CREATE ANY VIEW TO GGADMIN; 
GRANT ALTER ANY TABLE TO GGADMIN; 
GRANT ALTER ANY INDEX TO GGADMIN; 
GRANT ALTER ANY CLUSTER TO GGADMIN; 
GRANT ALTER ANY INDEXTYPE TO GGADMIN; 
GRANT ALTER ANY OPERATOR TO GGADMIN; 
GRANT ALTER ANY PROCEDURE TO GGADMIN; 
GRANT ALTER ANY SEQUENCE TO GGADMIN; 
GRANT ALTER ANY TRIGGER TO GGADMIN; 
GRANT ALTER ANY TYPE TO GGADMIN; 
GRANT ALTER ANY SEQUENCE TO GGADMIN; 
GRANT CREATE DATABASE LINK TO GGADMIN;
GRANT EXECUTE ON dbms_lock TO GGADMIN; 
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN');
  • Um eine nicht autonome, mandantenfähige (CDB) als Ziel für die Onlinemigration zu konfigurieren, führen Sie die folgenden SQL-Befehle aus:
    -- Connect to CDB and run:
     
    -- Global Names
    ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
     
    -- User system for Datapump
    ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK CONTAINER=ALL;
     
    -- Create GoldenGate PDB User
    ALTER SESSION SET CONTAINER = v_pdb_name;
    CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
    CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN;
    GRANT CONNECT TO GGADMIN CONTAINER=CURRENT;
    GRANT RESOURCE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE TO GGADMIN CONTAINER=CURRENT;
    GRANT SELECT_CATALOG_ROLE TO GGADMIN CONTAINER=CURRENT;
    GRANT DV_GOLDENGATE_ADMIN TO GGADMIN CONTAINER=CURRENT;
    GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER SYSTEM TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER USER TO GGADMIN CONTAINER=CURRENT;
    GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
    GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
    GRANT SELECT ANY DICTIONARY TO GGADMIN CONTAINER=CURRENT;
    GRANT SELECT ANY TRANSACTION TO GGADMIN CONTAINER=CURRENT;
    GRANT INSERT ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT UPDATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT DELETE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT LOCK ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY INDEX TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY TYPE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE ANY VIEW TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY TABLE TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY INDEX TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY TYPE TO GGADMIN CONTAINER=CURRENT;
    GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
    GRANT CREATE DATABASE LINK TO GGADMIN CONTAINER=CURRENT;
    GRANT EXECUTE ON dbms_lock TO GGADMIN CONTAINER=CURRENT;
    EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN',CONTAINER=>'CURRENT');
Anwendungsfall für die Vorbereitung der Zieldatenbank für Migration

Im Folgenden finden Sie einen Beispielanwendungsfall für die Vorbereitung einer Zieldatenbank für die Migration.

  1. Erstellen Sie eine autonome Datenbank. Wenn die autonome Zieldatenbank bereits vorhanden ist, können Sie diesen Schritt überspringen.

  2. Prüfen Sie den Parameter GLOBAL_NAMES. Wenn er auf true gesetzt ist, ändern Sie ihn in false.

    sqlplus > show parameter global
    NAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    global_names                         boolean TRUE
    
    sqlplus > alter system set global_names=false
  3. Erstellen Sie einen Datenbankadministratorbenutzer mit vollen Oracle Data Pump-Berechtigungen für den erstmaligen Ladevorgang. Ein Benutzer mit der Rolle DATAPUMP_IMP_FULL_DATABASE ist für den Exportvorgang in der Zieldatenbank erforderlich. Dieser Benutzer wird als Datenbankadministrator ausgewählt, wenn Sie Datenbankverbindungen mit den Zieldatenbanken erstellen.

    Weitere Informationen finden Sie unter Oracle Data Pump in der Dokumentation Oracle Database-Utilitys.

MySQL-Datenbanken für die Migration vorbereiten

Wenn Sie MySQL-Onlinemigrationen ausführen möchten, bereiten Sie die Quell- und Zieldatenbank wie folgt für die Replikation vor:

  • Quelldatenbankanforderungen:
    Je nach Konfiguration des Quellservers werden folgende Modi unterstützt:
    • Einzelner Server: Informationen zum Aktivieren von Binärlogging finden Sie unter Das Binärlog.
    • Mehrere Replikationsserver: Informationen zum Einrichten der Replikation mit GTIDs finden Sie unter Replikation mit GTIDs einrichten.
    Hinweis

    Die oben genannten Schritte gelten nur, wenn Sie eine Onlinemigration durchführen.
  • Zieldatenbankanforderungen:
Hinweis

Wenn Sie bei Onlinemigrationen einen anderen Replikationsbenutzer definieren, stellen Sie sicher, dass für ihn die Berechtigungen definiert sind, die hier definiert sind. Wenn Sie den Benutzer jedoch nicht definieren, stellen Sie sicher, dass der Hauptbenutzer für die Verbindung über diese Berechtigungen verfügt.