移行のためのデータベースの準備

Oracle Cloud Infrastructure Database Migration Serviceを使用してデータの移行を開始する前に、ここの説明に従ってソース・データベースとターゲット・データベースを構成する必要があります。

移行のためのOracle Databasesの準備

次のいずれかの方法を使用して、データベースを準備します。

  • データベース準備ユーティリティ(推奨オプション)によって生成されたスクリプトを実行して、データベースを準備します。
  • ドキュメントに従ってSQLコマンドを実行し、Oracleデータベースを手動で構成します。

データベース準備ユーティリティを使用したデータベースの準備:

データベースを移行用に準備するには:
  1. このMOSノートを参照してください。
  2. シェル・スクリプト・ファイルであるデータベース準備ユーティリティをダウンロードします。
  3. 続行するには、次の手順に従います。
  4. スクリプトをローカルに実行します。
データベース準備ユーティリティ:
  1. 移行に固有の入力を受け入れ、ソース・データベースおよびターゲット・データベースに対して実行できるSQLスクリプトを生成します。
  2. 必要な構成または権限がないかどうかデータベースを分析します。
  3. データベースの現在のステータスをチェックし、データベースで実行される操作に関する情報を提供します。
  4. 移行の準備に必要な操作をデータベースで実行する最終スクリプトを生成します。
    ノート

    • データベースに対してスクリプトを実行する前に、データベース準備ユーティリティによって生成されたスクリプトを確認し、必要な修正を行う必要があります。
    • ユーティリティ・スクリプトは、ソース・データベースに対して1回、ターゲット・データベースに対して2回実行する必要があります。

    したがって、構成SQLスクリプトによって、移行のためにデータベースが準備されます。

移行のためのデータベースの手動構成:

SQLコマンドを使用してソース・データベースとターゲット・データベースを手動で準備するには、次のトピックを参照してください。

移行のためのソース・データベースの準備

Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従ってソース・データベースを手動で構成します。

  • 移行のソースとしてシングルテナント(非CDB)を構成するには、次のSQLコマンドを実行します。
-- 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;
  • 移行のソースとしてマルチテナント(CDB)を構成するには、次のSQLコマンドを実行します。
-- 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;
  • Amazon RDS (非CDB)を移行のソースとして構成するには、次のSQLコマンドを実行します:
    -- 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');
オンライン移行に向けてソース・データベースを準備するための追加の構成

Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従って、オンライン移行のためにソース・データベースの追加構成を実行します。

  • オンライン移行のソースとしてシングルテナント(非CDB)を構成するには、次のSQLコマンドを実行します。
-- 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');
  • マルチテナント(CDB)をオンライン移行のソースとして構成するには、次のSQLコマンドを実行します。
-- 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');
  • Amazon RDS (非CDB)をオンライン移行のソースとして構成するには、次のSQLコマンドを実行します:
    -- 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);
移行に向けたソース・データベースの準備のユースケース

次に、移行のためにソース・データベースを準備するユースケースの例を示します。移行のソースとしてPDBを構成するためのステップは、従来のデータベースのソースとしての設定と似ていますが、CDBROOTggaliassrcとして使用するという要件があります。

ソース・データベースとしてPDBを使用している場合、ステップは若干異なります。データベースがマルチテナント環境にある場合は、推奨事項に従ってください。

  1. 初期化パラメータSTREAMS_POOL_SIZEを使用してストリーム・プールを構成します。

    • オフライン論理移行の場合、最適なデータ・ポンプ・パフォーマンスのために、STREAMS_POOL_SIZEの最小値を256MBから350MBまでに設定して初期プールを割り当てる必要があります。そうしないと、起動中に大幅な遅延が発生する可能性があります。

    • オンライン論理移行の場合、STREAMS_POOL_SIZEを2GB以上に設定します。

      統合Extract当たり1GBのSTREAMS_POOL_SIZEに25パーセント分を追加するという推奨事項については、統合Extract/ReplicatおよびSTREAMS_POOL_SIZE (Doc ID 2078459.1)を参照してください。

  2. GLOBAL_NAMESパラメータを確認します。trueに設定されている場合は、falseに変更します。

    sqlplus > show parameter global
    NAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    global_names                         boolean TRUE
    
    sqlplus > alter system set global_names=false
  3. ARCHIVELOGがまだ有効になっていない場合は有効にします。

    1. archivelogが有効かどうかを確認します。

      sqlplus > archive log list
      返される出力例:
      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. archivelogモードを有効にします:

      sqlplus > shutdown immediate
      sqlplus > startup mount
      sqlplus > alter database archivelog;
      sqlplus > alter database open;
    3. archivelogモードを無効にします(後でクリーンアップするため)

      sqlplus > shutdown immediate
      sqlplus > startup mount
      sqlplus > alter database noarchivelog;
      sqlplus > alter database open;
  4. ロギングを有効にします:

    1. ロギングが有効になっているかどうかを確認します:

      sqlplus > SELECT supplemental_log_data_min, force_logging FROM v$database;
    2. ロギングを有効にします:

      sqlplus > ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
      sqlplus > ALTER DATABASE FORCE LOGGING;
    3. ロギングを無効にします(後でクリーンアップするため)

      sqlplus > ALTER DATABASE DROP SUPPLEMENTAL LOG DATA;
      sqlplus > ALTER DATABASE NO FORCE LOGGING;
  5. 初期ロードを実行するための完全なOracle Data Pump権限を持つデータベース管理者ユーザーを作成します。DATAPUMP_EXP_FULL_DATABASEロールを持つユーザーは、ソース・データベースでのエクスポート操作に必要です。このユーザーは、ソース・データベースとのデータベース接続の作成時にデータベース管理者として選択されます。

    詳細は、『Oracle Databaseユーティリティ』Oracle Data Pumpに関する項を参照してください。

  6. エクスポートされるPDBにおいて、C##ユーザーのスキーマ内のローカル・オブジェクトに対して作成された依存関係がある場合、ターゲットAutonomous Databaseへのインポートは失敗します。問題のあるスキーマを移行ジョブから除外します。

  7. データ転送メディアとしてオブジェクト・ストレージを使用している場合は、エクスポート・ディレクトリ・オブジェクトが存在し、生成されたダンプ・ファイルを格納するためにデータ・ポンプによって使用可能であることを確認してください。

    • ディレクトリ・オブジェクトは、ソース・データベース・サーバーのファイル・システム上のファイル・パスです。名前は、Oracle Databaseディレクトリ・オブジェクト・ルールに準拠している必要があります。詳細は、『Oracle Database SQL言語リファレンス』CREATE DIRECTORYに関する項を参照してください。

    • エクスポート・ディレクトリ・オブジェクトは、データベースのOracleホームを所有するのと同じOSユーザーが所有する必要があります。

    • データベース・リンク転送メディアを使用している場合、このステップは不要です。

  8. データベース・リンクを使用してデータを転送する場合は、ソース・データベースでSSL暗号化を設定する必要があります。Autonomous Databaseターゲットへのデータベース・リンクによるData Pumpを使用するには、ソース・データベースでSSL暗号化を有効にする必要があります。Autonomous Database共有インフラストラクチャ・ターゲットからプライベートIPを持つソース・データベースへのデータベース・リンクを作成するには、Oracleサポートの支援が必要です。

    詳細は、『Oracle Databaseセキュリティ・ガイド』Transport Layer Security認証の構成を参照してください。

  9. オンライン論理移行の場合、レプリケーションを使用して移行を実行する場合は、GoldenGateレプリケーションを有効にします:

    1. マルチテナント環境でPDBを移行する場合は、CDBでGoldenGateレプリケーションを有効にします。

      sqlplus > ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
    2. ソース・データベースのバージョンに基づいて、必須のRDBMSパッチをソース・データベースに適用します:

      • Oracle Database 11.2:

        My Oracle SupportノートOracle GoldenGate -- Oracle RDBMSサーバー推奨パッチ(Doc ID 1557031.1)では、次の更新を推奨しています:

        Database PSU 11.2.0.4.210720には、Oracle GoldenGateパフォーマンス・バグ(28849751 - IE PERFORMANCE DEGRADES WHEN NETWORK LATENCY BETWEEN EXTRACT AND CAPTURE IS MORE THAN 8MS)の修正が含まれています

        OGG RDBMSパッチ32248879 MERGE REQUEST ON TOP OF DATABASE PSU 11.2.0.4.201020 FOR BUGS 32048478 20448066 - このパッチには、Oracle GoldenGate Microservicesのバグ20448066 DBMS_XSTREAM_GG APIS SHOULDがSCA PROCESSESに対する必須修正が含まれています

      • Oracle Database 12.1.0.2以降

        My Oracle Supportノート最新のGoldenGate/Database (OGG/RDBMS)パッチ推奨事項(Doc ID 2193391.1)には、Oracle GoldenGateを使用する場合に、Oracle Database 12c以降向けの最新DBBP/RUに加えて必要となる追加のRDBMSパッチがリストされています。

移行のためのターゲット・データベースの準備

Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従ってターゲット・データベースを手動で構成します。

  • 自律型データベースを移行のターゲットとして構成するには、次のSQLコマンドを実行します:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
  • 非自律型のシングルテナント(非CDB)を移行のターゲットとして構成するには、次のSQLコマンドを実行します。
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
 
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
  • 移行のターゲットとして非自律型マルチテナント(CDB)を構成するには、次のSQLコマンドを実行します。
    -- 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;
オンライン移行に向けてターゲット・データベースを準備するための追加の構成

Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従って、オンライン移行用にターゲット・データベースの追加構成を実行します。

Oracle Cloud Infrastructure Consoleからggadminユーザーをロック解除するには、次のステップを実行します。
  1. 「Autonomous Databaseでのユーザーおよびユーザー・ロールの管理- データベース・アクションを使用した接続」に記載されているステップ1からステップ3に従います。
  2. 「アカウントはロックされています」トグルをオフにします。
  3. パスワードとそれに対応する確認を入力します。
  • または、自律型データベースをオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します:
-- 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;
  • 非自律型のシングルテナント(非CDB)をオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します。
-- 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');
  • 非自律型マルチテナント(CDB)をオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します。
    -- 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');
移行に向けたターゲット・データベースの準備のユースケース

次に、移行のためにターゲット・データベースを準備するためのサンプル・ユースケースを示します。

  1. Autonomous Databaseの作成ターゲットAutonomous Databaseがすでに存在する場合は、このステップを省くことができます。

  2. GLOBAL_NAMESパラメータを確認します。trueに設定されている場合は、falseに変更します。

    sqlplus > show parameter global
    NAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    global_names                         boolean TRUE
    
    sqlplus > alter system set global_names=false
  3. 初期ロードを実行するための完全なOracle Data Pump権限を持つデータベース管理者ユーザーを作成します。ターゲット・データベースでのエクスポート操作には、DATAPUMP_IMP_FULL_DATABASEロールを持つユーザーが必要です。このユーザーは、ターゲット・データベースとデータベースの接続の作成時にデータベース管理者として選択されます。

    詳細は、『Oracle Databaseユーティリティ』Oracle Data Pumpに関する項を参照してください。

移行のためのMySQLデータベースの準備

オンラインのMySQL移行を実行する場合は、次のようにソース・データベースとターゲット・データベースをレプリケーション用に準備します。

  • ソース・データベースの要件:
    ソース・サーバーの構成に応じて、次のモードがサポートされています。
    • 単一サーバー: バイナリロギングを有効にするには、The Binary Logを参照してください。
    • 複数のレプリカサーバー: GTIDを使用してレプリケーションを設定するには、Setting Up Replication Using GTIDsを参照してください。
    ノート

    前述のステップは、オンライン移行を実行する場合にのみ適用されます。
  • ターゲット・データベースの要件:
ノート

オンライン移行の場合、別のレプリケーション・ユーザーを定義する場合は、ここで定義された権限があることを確認してください。ただし、ユーザーを定義しない場合は、接続のメイン・ユーザーにこれらの権限があることを確認してください。

関連トピック