5 論理データベース移行の準備

次の各トピックでは、論理データベース移行ジョブを実行する前にZero Downtime Migrationの前提条件を完了する方法について説明します。

論理移行のソース・データベースの前提条件

論理移行の準備をするには、ソース・データベースで次の前提条件を完了します。

オフラインおよびオンライン移行には次が必要です。

  • ソース・データベースの文字セットは、ターゲット・データベースと同じである必要があります。

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

    オフライン論理移行の場合、データ・ポンプのパフォーマンスを最適化するには、初期プールを割り当てるためにSTREAMS_POOL_SIZEを256MB-350MB以上に設定することをお薦めします。そうしないと、起動時にかなりの遅延が発生する可能性があります。

    オンライン論理移行の場合は、STREAMS_POOL_SIZEを2 GB以上に設定します。統合Extractと追加の25パーセントごとに1 GBのSTREAMS_POOL_SIZEの推奨事項については、https://support.oracle.com/epmos/faces/DocumentDisplay?id=2078459.1を参照してください。

  • Zero Downtime Migrationサービス・ホストおよびソース・データベース・サーバーのシステム時間は、Oracle Cloud Infrastructureターゲットと同期している必要があります。

    これらのいずれかのシステムの時間がOCIの時間から6分を超えて異なる場合は、調整する必要があります。NTPが構成されている場合は、ntp time checkを使用して時刻を同期できます。NTPが構成されていない場合は、構成することをお薦めします。NTPを構成するオプションがない場合は、時間を手動で修正して、OCI時間と同期するようにする必要があります。

  • データベース・リンクを使用しており、ターゲット・データベースがAutonomous Database共有インフラストラクチャ上にある場合は、ソースでTCPSを構成する必要があります。Autonomous Database共有インフラストラクチャでは、TCPSで構成されていないソースへのデータベース・リンクは許可されません。

  • Amazon Web Services RDS環境から移行する場合、ソース環境の準備の詳細は、Amazon Web Services RDSからOracle Autonomous Databaseへの移行を参照してください。

  • エクスポートされるPDBで、C##ユーザーのスキーマにローカル・オブジェクトが作成されて、それらをインポートする場合は、同じ名前の共通ユーザーがすでにターゲットCDBインスタンスに存在することを確認するか(Autonomous Database以外のターゲットの場合)、次のZero Downtime Migrationパラメータを使用して、インポート時にスキーマの名前を変更します。

    DATAPUMPSETTINGS_METADATAREMAPS-1=type:REMAP_SCHEMA,oldValue:c##common_user,newValue:new_ name
  • 既存のExadata Cloud@Customerシステムを含め、任意のオンプレミスのOracle DatabaseからOracle Autonomous Database (Exadata Cloud@Customer)に移行する場合、追加の前提条件設定タスクについて、Exadata Cloud@Customer上のOracle Autonomous Databaseへの移行を参照してください。

オンライン移行には次が必要です。

  • ソースがOracle Database 11.2の場合、必須の11.2.0.4 RDBMSパッチをソース・データベースに適用します。

    My Oracle SupportノートOracle GoldenGate -- Oracle RDBMS Server Recommended Patches (ドキュメントID 1557031.1)を参照してください

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

    • OGG RDBMSパッチ31704157 MERGE REQUEST ON TOP OF DATABASE PSU 11.2.0.4.200414 FOR BUGS 31182000 20448066 - このパッチは、Oracle GoldenGate Microservicesバグ20448066 DBMS_XSTREAM_GG APIS SHOULD BE ALLOWED FOR SCA PROCESSESの必須の修正と必須のOGG RDBMSパッチ31182000 MERGE REQUEST ON TOP OF DATABASE PSU 11.2.0.4.200414 FOR BUGS 2990912 12668795を組み合せたものです。

      MOSノート1557031.1にOGGパッチ31177512が記載されていますが、バグ20448066のパッチと競合しています。そのため、OGGパッチ31177512のかわりにOGGパッチ31704157を使用する必要があります。

  • ソースがOracle Database 12.1.0.2以降のリリースの場合は、ソース・データベースに必須RDBMSパッチを適用します。

    Oracle Database 12c以降の最新のDBBP/RUに必要な追加RDBMSパッチがリストされている、My Oracle Supportノートの最新のGoldenGate/Database (OGG/RDBMS)パッチ推奨(ドキュメントID 2193391.1)を参照してください。

  • データベースのARCHIVELOGモードを有効にします。データベースのアーカイブ・モードの変更を参照してください。

  • FORCE LOGGINGを有効にして、Oracle GoldenGate ExtractプロセスによってREDOですべての変更が検出されるようにします。FORCE LOGGINGモードの指定を参照してください

  • データベースの最小サプリメンタル・ロギングを有効にします。最小サプリメンタル・ロギングを参照してください。

    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  • 初期化パラメータENABLE_GOLDENGATE_REPLICATIONを有効にします。

  • 統合Extractのパフォーマンス分析のためにUTL_SPADVまたはUTL_RPADVパッケージをインストールします。

    UTL_RPADVパッケージを使用したXStream統計の収集を参照してください。Oracle Database 19cでは、パッケージの名前がUTL_SPADVからUTL_RPADVに変更されています。

  • 例にリストされているすべての権限を付与して、GoldenGate管理ユーザーggadminを作成します。ソース・データベースがマルチテナント(CDB)の場合は、ソースPDBにユーザーを作成します。

    SQL> create user ggadmin identified by password
     default tablespace users temporary tablespace temp;
    SQL> grant connect, resource to ggadmin;
    SQL> alter user ggadmin quota 100M ON USERS;
    SQL> grant unlimited tablespace to ggadmin;
    SQL> grant select any dictionary to ggadmin;
    SQL> grant create view to ggadmin;
    SQL> grant execute on dbms_lock to ggadmin;
    SQL> exec dbms_goldengate_auth.GRANT_ADMIN_PRIVILEGE('ggadmin');
  • ソース・データベースがマルチテナント(CDB)の場合は、次に示すように、CDB$ROOTにユーザーc##ggadminも作成します。

    SQL> create user c##ggadmin identified by password default tablespace users
    temporary tablespace temp;
    SQL> alter user c##ggadmin quota 100M ON USERS;
    SQL> grant unlimited tablespace to c##ggadmin;
    SQL> grant connect, resource to c##ggadmin container=all;
    SQL> grant select any dictionary to c##ggadmin container=all;
    SQL> grant create view to c##ggadmin container=all;
    SQL> grant execute on dbms_lock to c##ggadmin container=all;
    SQL> exec
    dbms_goldengate_auth.GRANT_ADMIN_PRIVILEGE('c##ggadmin',container=>'all');
  • 移行期間中、高速データベース・レプリケーションに最適な環境を提供するには、大規模なバッチDML操作を回避します。数百万行に影響する単一トランザクションのような大規模なバッチ操作を実行すると、レプリケーション速度が低下する可能性があります。DDLの作成、変更および削除操作はレプリケートされません。

オフライン移行には次が必要です。

  • DATAPUMP_EXP_FULL_DATABASEおよびDATAPUMP_IMP_FULL_DATABASEロールが必要です。これらのロールは、移行ジョブを構成するプロセスに特権アプリケーション・ロールを割り当てる必要があるかどうかを決定するために、データ・ポンプに必要です。

    DATAPUMP_EXP_FULL_DATABASEは、指定されたデータベース・ユーザーのソース・データベースでのエクスポート操作に必要です。DATAPUMP_IMP_FULL_DATABASEロールは、指定されたターゲット・データベース・ユーザーの指定されたターゲット・データベースでのインポート操作に必要です。

    詳細は、Oracle Data Pumpのドキュメントを参照してください。

論理移行のターゲット・データベースの前提条件

論理移行の準備をするには、ソース・データベースで次の前提条件を完了します。

Oracle GoldenGateによる論理移行には、次が必要です。

  • ターゲットがAutonomous Databaseの場合は、事前作成されたggadminユーザーのロックを解除します。

  • ターゲットがAutonomous Databaseでない場合は、ターゲットPDBでggadminユーザーを作成します。このユーザーは、ソース・データベースのggadminユーザーに似ていますが、より多くの権限が必要です。Replicatのすべてのモード・ユーザーに必要な権限の詳細は、Oracle GoldenGate資格証明の確立を参照してください。

データ・ポンプのみの論理移行には、次が必要です。

  • DATAPUMP_IMP_FULL_DATABASEロールは、指定されたターゲット・データベース・ユーザーの指定されたターゲット・データベースでのインポート操作に必要です。

すべての論理移行には、次が必要です。

  • ソース・データベースの文字セットは、ターゲット・データベースと同じである必要があります。

  • Zero Downtime Migrationサービス・ホストおよびソース・データベース・サーバーのシステム時間は、Oracle Cloud Infrastructureターゲットと同期している必要があります。

  • すべてのソース・データベース要件が満たされています。一部のタスクは、ソースとターゲットの両方で実行されます。論理移行のソース・データベースの前提条件を参照してください

追加の論理移行の前提条件

論理移行の準備をするには、次の追加の前提条件を完了します。

OCI APIキー・ペアを作成します

詳細は、必要な鍵とOCIDを参照してください。

データ転送メディアの設定

  • Object Storageデータ転送メディアを使用するには:

    Object Storageをデータ転送メディアとして使用している場合は、Oracle Cloud Infrastructureでオブジェクト・ストア・バケットを作成します。これは、Exadata Cloud at CustomerまたはオンプレミスのExadata Database Machineターゲットには必要ありません。

  • データベース・リンク(DBLINK)を使用するには:

    ソース・データベースのglobal_nameによって、ターゲット・データベースとオンプレミス・ソース・データベース間の既存のデータベース・リンクを使用している場合は、DBLINKが壊れていないことを確認します。Zero Downtime Migrationでは、データ転送メディアが構成されている場合、既存のDBLINKを移行に再利用できます。

    Zero Downtime Migrationでは、ソース・インスタンスとAutonomous Databaseインスタンスの間に使用可能なTCPまたはTCPS接続がある場合、Autonomous Database専用インフラストラクチャのDBLINKがサポートされます。お客様がIPSEC接続またはFASTCONNECTを設定する必要があります。

  • データ転送にデータベース・リンクを使用しない場合は、データ・ポンプ・エクスポート・ディレクトリに使用するファイル・システムに、データ・ポンプ・ダンプ・ファイルを格納するのに十分な領域があることを確認してください。

ソースが自己署名データベース・サーバー証明書を使用する場合:

ソース・データベース・リスナーが自己署名付きデータベース・サーバー証明書を使用してTLS (TCPS)で構成されている場合、自己署名付き証明書がZero Downtime Migrationホーム証明書ストアに次のように追加されていることを確認します。

keytool -import -keystore ZDM_HOME/jdk/jre/lib/security/cacerts -trustcacerts
-alias "src ca cert" -file source_db_server-certificate

オンライン移行の追加の前提条件

オンライン移行の場合、次の追加の前提条件タスクを実行します。

  • Oracle GoldenGate Microservicesハブを設定します。

    Oracle Database Cloud Servicesターゲットの場合は、Oracle Cloud Marketplaceから「Oracle GoldenGate for Oracle - Database Migrations」イメージをデプロイします。

    Oracle GoldenGate Marketplaceイメージの「データベース移行」バージョンには、OCI Database Migration Serviceで使用する限定の無料ライセンスが用意されています。詳細は、ライセンス契約を参照してください。

    その他のGoldenGateを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。詳細は、Oracle GoldenGateのドキュメントを参照してください。

    1. Oracle Cloud Marketplaceにログインします。
    2. 「Oracle GoldenGate for Oracle - Database Migrations」マーケットプレイス・リストを検索します。
    3. マーケットプレイスの検索結果から、「Oracle GoldenGate for Oracle - Database Migrationations」リストを選択します。
    4. マーケットプレイス・リストをデプロイする手順は、Oracle Cloud Marketplace上でのOracle GoldenGate Microservicesのデプロイを参照してください。

    Exadata Cloud@CustomerまたはオンプレミスのOracle Exadata Database Machineに移行する場合、オンプレミスのOracle GoldenGate Microservicesインスタンスを使用して、ソースとターゲットのデプロイメントを作成する必要があります。

  • ソース・データベースがSSL/TLSを使用するように構成されている場合:

    ソース・データベースがSSL/TLSを使用するように構成されている場合は、TLS認証用の証明書を含むウォレットがGoldenGateインスタンスのディレクトリ/u02/deployments/deployment_name/etcにあることを確認します。

  • ターゲット・データベースがSSL/TLSを使用するように構成されている場合:

    TLS認証用の証明書を含むウォレットが、次のようにGoldenGateインスタンスの正しい場所に配置されていることを確認します。

    • Autonomous Databaseの場合、ウォレット・ファイルはディレクトリ/u02/deployments/deployment_name/etc/adbにある必要があります

    • 共同管理データベースの場合、ウォレット・ファイルはディレクトリ/u02/deployments/deployment_name/etcにある必要があります

    Autonomous Databaseは常にTLSを使用するように構成されます。

論理移行パラメータの設定

必要な論理移行レスポンス・ファイル・パラメータを設定します。データベース移行プロシージャのZero Downtime Migrationレスポンス・ファイルの作成に使用するレスポンス・ファイル・テンプレート$ZDM_HOME/rhp/zdm/template/zdm_logical_template.rspを取得し、ここで説明するようにファイルを編集します。

論理移行レスポンス・ファイルの設定の詳細は、Zero Downtime Migration論理移行レスポンス・ファイル・パラメータ・リファレンスを参照してください。

オフラインまたはオンラインの論理移行には、次のパラメータが必要です。

  • MIGRATION_METHOD: GoldenGateを使用したオンライン移行の場合はONLINE_LOGICAL、オフライン・データ・ポンプ転送の場合はOFFLINE_LOGICALに設定します。

  • DATA_TRANSFER_MEDIUM: 設定先

    Object Storageバケットの場合はOSS

    共有ネットワーク・ファイル・システムの場合はNFS

    データベース・リンクを使用した直接転送の場合はDBLINK

    セキュア・コピーを使用するにはCOPY

    Amazon S3バケットを使用する場合はAMAZONS3 (AWS RDSソースからOracle Autonomous Databaseターゲットへの移行にのみ適用されます。Amazon Web Services RDSからOracle Autonomous Databaseへの移行を参照してください)

    データ・ポンプ・ダンプの処理にデフォルトのデータ転送サーバーを使用している場合を除き、ソースおよびターゲット・データベース環境のデータ転送ノード設定も構成する必要があります。

    詳細は、転送メディアの構成および転送ノードの指定を参照してください。

  • Oracle Database 11gソースの11gターゲットへのオフライン論理移行の場合、DATAPUMPSETTINGS_SECUREFILELOB=FALSEを設定すると、エラーが発生することがあります。

  • 次のターゲット・データベース・パラメータを設定します。
    • TARGETDATABASE_OCIDは、Oracle Cloudリソース識別子を指定します。

      例: ocid1.instance.oc1.phx.abuw4ljrlsfiqw6vzzxb43vyypt4pkodawglp3wqxjqofakrwvou52gb6s5a

      https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htmも参照してください

    • TARGETDATABASE_ADMINUSERNAMEでは、データベース管理者のユーザー名を指定します。たとえば、共同管理データベースの移行ユーザー名がsystemで、Autonomous Databaseの移行ユーザー名がadminの場合です。

  • 次のソース・データベース・パラメータを設定します。
    • SOURCEDATABASE_ADMINUSERNAMEでは、データベース管理者のユーザー名を指定します。たとえば、ユーザー名はsystemです。

    • SOURCEDATABASE_CONNECTIONDETAILS_HOSTは、リスナーのホスト名またはIPアドレスを指定します。Oracle RACの場合、SCAN名を指定できます。(Autonomous Databaseでは不要)

    • SOURCEDATABASE_CONNECTIONDETAILS_PORTは、リスナーのポート番号を指定します。(Autonomous Databaseでは不要)

    • SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAMEは、完全修飾サービス名を指定します。(Autonomous Databaseでは不要)

      例: service_name.DB_domain

      https://docs.cloud.oracle.com/en-us/iaas/Content/Database/Tasks/connectingDB.htmも参照してください

    • AWS RDSソースからの移行については、追加のパラメータ設定について、Amazon Web Services RDSからOracle Autonomous Databaseへの移行を参照してください。

  • 次のOCIAUTHENTICATIONDETAILSパラメータを設定します。

    必要な設定の詳細は、https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm#RequiredKeysandOCIDsを参照してください

    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTIDは、OCIテナンシのOCIDを指定します。この値は、コンソールの「Governance and Administration」→「Administration」→「Tenancy Details」にあります。テナンシOCIDが「Tenancy Information」の下に表示されます。

      例: ocid1.tenancy.oc1..aaaaaaaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdsq

      https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingtenancy.htmも参照してください

    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERIDは、IAMユーザーのOCIDを指定します。この値は、コンソールの「Profile」→「User Settings」にあります。

      https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/managingusers.htmも参照してください

    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINTは、API公開キーのフィンガープリントを指定します。

    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILEは、API秘密キー・ファイルの絶対パスを指定します。

    • OCIAUTHENTICATIONDETAILS_REGIONIDは、OCIリージョン識別子を指定します。

      https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htmにある表の「Region Identifier」列を参照してください

Oracle GoldenGateの設定

オンライン論理移行の場合は、前述のパラメータに加えて、GoldenGateパラメータTARGETDATABASE_GGADMINUSERNAMESOURCEDATABASE_GGADMINUSERNAMESOURCECONTAINERDATABASE_GGADMINUSERNAME、および接頭辞GOLDENGATEHUBGOLDENGATESETTINGSが付いたパラメータも設定する必要があります。

これらのパラメータの詳細は、Zero Downtime Migration論理移行レスポンス・ファイル・パラメータのリファレンスを参照してください。

Oracle Data Pump設定

Zero Downtime Migrationでは、パフォーマンスを向上させ、データ・セキュリティを確保するために、データ・ポンプ・パラメータの最適なデフォルトが自動的に設定されます。パフォーマンスをさらにチューニングする必要がある場合は、レスポンス・ファイルで構成できるいくつかのデータ・ポンプ設定があります。

Autonomous Databaseへの移行には、デフォルトのDATAPUMPSETTINGS_JOBMODE=SCHEMAをお薦めします。

デフォルトのデータ・ポンプ・プロパティ設定、含めるまたは除外するスキーマまたはオブジェクトの選択方法、およびデータ・ポンプのエラー処理の詳細は、Zero Downtime Migrationのデフォルトのデータ・ポンプ・パラメータ設定を参照してください。

Zero Downtime Migrationで設定できるすべてのData Pumpパラメータについては、「Zero Downtime Migration論理移行レスポンス・ファイル・パラメータのリファレンス」を参照してください。

AWS RDSから移行するためのデータ・ポンプ・パラメータの設定の詳細は、Amazon Web Services RDSからOracle Autonomous Databaseへの移行を参照してください。

転送メディアの構成および転送ノードの指定

Zero Downtime Migrationには、ターゲット・データベース・サーバーでOracle Data Pumpダンプを使用できるようにするための様々な転送オプションが用意されています。

DATA_TRANSFER_MEDIUMレスポンス・ファイル・パラメータを使用して、次のデータ転送方法を構成できます。

  • OSS: Oracle Cloud Object Storage

    すべての移行タイプおよびターゲットでサポートされます。

  • NFS: ネットワーク・ファイル・システム

    共同管理ターゲット・データベースへのオフライン移行でのみサポートされます。

  • DBLINK: データベース・リンクを介したソースからターゲットへの直接データ転送

    Autonomous Database共有(データ・ウェアハウスまたはトランザクション処理)および共同管理ターゲットへのオンラインおよびオフラインの移行でのみサポートされます。

  • COPY: セキュア・コピーを使用してダンプをターゲット転送ノードに転送します。

    共同管理ターゲット・データベースへのオフライン移行でのみサポートされます。

  • AMAZON3: Amazon S3バケット
  • AWS RDSソースからOracle Autonomous Databaseターゲットへの移行にのみ適用されます。詳細は、Amazon Web Services RDSからOracle Autonomous Databaseへの移行を参照してください。

ノート:

並列性を利用して最適なデータ転送パフォーマンスを実現するために、Oracleでは、サイズが50 GBを超えるデータベースにOSSまたはNFSを使用してデータを転送することをお薦めします。DBLINK転送メディアは、小規模なデータベースには便利ですが、転送中のネットワーク帯域幅に依存するため、パフォーマンスが不確実になる可能性があります。

ソースでのダンプのエクスポートが完了すると、ダンプはパラメータDUMPTRANSFERDETAILS_PARALLELCOUNTで定義されているとおりにパラレルにアップロードまたは転送され(デフォルトは3)、転送の失敗はパラメータDUMPTRANSFERDETAILS_RETRYCOUNTで指定されているとおりにデフォルトで再試行されます(デフォルトは3)。

特定のノードからダンプにアクセスできる場合は、ソース・データ・センターの任意のノードからダンプを転送できます。実行するデータ転送アプローチを決定するには、ネットワーク接続およびソース・データベース・サーバーへの転送ワークロードの影響を確認することが重要です。

ソースからターゲットへの直接転送

このオプションは、共通管理クラウド・ターゲット・データベースにのみ適用されます。

Zero Downtime Migrationでは、ソースからターゲットへのデータ・ポンプ・ダンプの安全な直接転送を使用した論理移行が可能です。データは、セキュア・コピーまたはRSYNCを使用して、ソース・データベースのディレクトリ・オブジェクト・パスからターゲット・データベース・サーバーのディレクトリ・オブジェクト・パスまたはターゲット転送ノードにコピーされます。これにより、WAN経由でデータが転送されたり、ソース環境とターゲット環境の間で追加の共有記憶域が必要になることを回避できます。この機能により、データ・センター内の論理移行が大幅に簡略化されます。

転送ノードについて

転送ノードと呼ばれるノードを、ソース・データ・センターとターゲット・テナンシの両方に構成します。

接頭辞がDUMPTRANSFERDETAILS_SOURCE_TRANSFERNODEのレスポンス・ファイル・パラメータは、ソース・データ・センターでエクスポート・ダンプを処理するノードを指定します。このソース転送ノードのデフォルトは、ソース・データベースです。

同様に、接頭辞がDUMPTRANSFERDETAILS_TARGET_TRANSFERNODEのレスポンス・ファイル・パラメータは、ターゲットでダンプのインポートを処理するノードを指定します。このターゲット転送ノードのデフォルトは、共同管理ターゲットのターゲット・データベースです。

転送ノードの要件

ソース転送ノードは次のいずれかになります。

  • ソース・データベース・サーバー(デフォルト)
  • NAS搭載サーバー
  • Zero Downtime Migrationサービス・ノード

ターゲット転送ノードは次のいずれかになります。

  • ターゲット・データベース・サーバー(デフォルト)
  • NAS搭載サーバー
  • Zero Downtime Migrationサービス・ノード

サーバーを転送ノードとして指定するには、次の重要な考慮事項が必要です。

  • アップロードまたは転送ワークロードを処理するためのCPUおよびメモリーの可用性

  • 指定されたアップロードまたは転送ターゲットへの接続

    • 選択したデータ転送メディアがOSSの場合はObject Storageサービスへのポート443接続

    • 選択した転送メディアがCOPYの場合はターゲット・ストレージ・サーバーへのポート22接続

  • Oracle Cloud Infrastructure CLIの可用性。ダンプのより高速で回復可能なアップロードのために、これはOSS転送メディアに推奨される転送ユーティリティです。

  • OCI CLIは、https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htmの説明に従ってインストールおよび構成する必要があります。

    各ソース・データベース・サーバーでのOCI CLIのインストールおよび構成は、実行できない場合があります。このような場合、データ・センター内のいずれかのノードをOCI CLIが構成された転送ノードとして指定でき、このノードはデータ・ポンプ・ダンプを作成するためにデータベース・サーバーとネットワーク記憶域パスを共有できます。これにより、本番データベース・サーバーで追加のCPUおよびメモリーを消費するアップロード・ワークロードも回避されます。

指定された転送ノードは、データ転送トラフィックを許可する外部データ転送のデータ・センターでゲートウェイ・サーバーとして機能できるため、ソース・データベース・サーバーから、またはターゲット・データベース・サーバーへのデータ転送を許可する必要がありません。

Zero Downtime Migrationサービスがオンプレミス・データ・センターに配置され、前述の転送ノード要件を満たすことができる場合は、必要に応じて、Zero Downtime Migrationサーバーを転送ノードとして利用することで、追加の転送ノード要件を回避できます。

Oracle Cloud Object Storage転送メディアの使用

Object Storageデータ転送メディアは、すべての移行タイプおよびターゲットでサポートされています。

DATA_TRANSFER_MEDIUM=OSSを設定してObject Storageをデータ転送メディアとして使用する場合は、より高速かつ安全で回復可能なアップロードのために、OCI CLIを使用してダンプをアップロードすることをお薦めします。アップロード・ノードでOCI CLIを構成し、パラメータDUMPTRANSFERDETAILS_SOURCE_USEOCICLITRUEに設定する必要があります。OCI CLIのパラメータは次のとおりです

DUMPTRANSFERDETAILS_SOURCE_USEOCICLI

DUMPTRANSFERDETAILS_SOURCE_OCIHOME

データベース・リンク転送メディアの使用

Autonomous Database共有(データ・ウェアハウスまたはトランザクション処理)および共同管理ターゲットへのオンラインおよびオフラインの移行でのみサポートされます。

DATA_TRANSFER_MEDIUM=DBLINKを設定すると、指定したソース・データベースのglobal_nameを使用して、OCIの共同管理データベースまたはAutonomous Databaseターゲットからソース・データベースへのデータベース・リンクが作成されます。

Zero Downtime Migrationでは、データベース・リンクが存在しない場合は作成され、データ・ポンプ・インポート・フェーズが完了するとリンクがクリーン・アップされます。

NFS転送メディアの使用

共同管理ターゲット・データベースへのオフライン移行でのみサポートされます。

NFS転送モードは、ダンプの転送を回避する共通管理ターゲット・データベースに対してDATA_TRANSFER_MEDIUM=NFSを設定することで使用できます。指定したパスがソースとターゲットのデータベース・サーバー・パス間でアクセス可能であることを確認する必要があります。

Zero Downtime Migrationでは、ソースおよびターゲットのデータベース・ユーザーのみがダンプへのアクセスを許可されるように、ダンプに対する制限された権限を保持することで、共有記憶域内のダンプのセキュリティが確保されます。

コピー転送メディアの使用

共同管理ターゲット・データベースへのオフライン移行でのみサポートされます。

DATA_TRANSFER_MEDIUM=COPYを設定することで、ダンプをソースからターゲットに安全に転送できます。関連するパラメータは次のとおりです。

DUMPTRANSFERDETAILS_TRANSFERTARGET_USER

DUMPTRANSFERDETAILS_TRANSFERTARGET_USERKEY

DUMPTRANSFERDETAILS_TRANSFERTARGET_HOST

DUMPTRANSFERDETAILS_TRANSFERTARGET_SUDOPATH

DUMPTRANSFERDETAILS_TRANSFERTARGET_DUMPDIRPATH

SCPのかわりにRSYNCユーティリティを利用できます。DUMPTRANSFERDETAILS_RSYNCAVAILABLETRUEに設定し、ソースとターゲットの両方の転送ノードでRSYNCが使用可能であることを確認します。

Zero Downtime Migrationのデフォルトのデータ・ポンプ・パラメータ設定

Zero Downtime Migrationでは、パフォーマンスを向上させ、データのセキュリティを確保するために、データ・ポンプ・パラメータの最適なデフォルトが自動的に設定されます。次の表に、Zero Downtime Migrationによって設定されるデータ・ポンプ・パラメータと、その設定値を示します。

デフォルトのオーバーライドに使用できるZero Downtime Migrationレスポンス・ファイル・パラメータがある場合は、「オーバーライドするZero Downtime Migrationレスポンス・ファイルのオプション・パラメータ」列にリストされます。オーバーライド・パラメータは、レスポンス・ファイル($ZDM_HOME/rhp/zdm/template/zdm_logical_template.rsp)で設定されます。

表5-1 データ・ポンプ・パラメータのデフォルト

データ・ポンプ・パラメータ デフォルト値 オーバーライドするZDMレスポンス・ファイルのオプション・パラメータ

EXCLUDE

cluster (ADB-D, ADB-S)

indextype (ADW-S)

db_link (ADB)

statistics (ユーザー管理ターゲットおよびADB)

追加のEXCLUDEエントリを指定できます詳細は、「EXCLUDEOBJECTS-LIST_ELEMENT_NUMBER」を参照してください。

ノート

EXCLUDEに無効なオブジェクト・タイプを指定すると、データ・ポンプ・エクスポート・エラーが発生します。DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXCLUDETYPELISTパラメータに有効なオブジェクト・タイプが指定されていることを確認します。

有効なオブジェクト・タイプのリストを表示するには、次のビューを問い合せます: DATABASE_EXPORT_OBJECTS (FULLモードの場合)、SCHEMA_EXPORT_OBJECTS (SCHEMAモードの場合)、TABLE_EXPORT_OBJECTS (TABLEおよびTABLESPACEモードの場合)。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。

たとえば、レスポンス・ファイルに無効なオブジェクト・タイプ・パラメータを指定すると、エクスポート・エラーが発生します。

ORA-39038: オブジェクト・パス"<specified invalid>"はSCHEMAジョブにサポートされていません。

PARALLEL

ZDMはデフォルトでPARALLELパラメータを次のように設定します

ユーザー管理DBの場合:- (ノード当たり2 x (物理CPUの数)の合計)で、最大32個の上限があります。

ADBの場合:- OCPUの数

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE

CLUSTER

ZDMは常にクラスタ・モードをデフォルトとして設定します

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_NOCLUSTER

COMPRESSION

COMPRESSION_ALGORITHMはBASIC (11.2の場合)およびMEDIUM (12.1以上の場合)に設定されます

COMPRESSIONはALLに設定されます

N/A

ENCRYPTION

ENCRYPTIONはALLに設定されます

ENCRYPTION_ALGORITHMはAES128に設定されます

ENCRYPTION_MODEはPASSWORDに設定されます

N/A

FILESIZE

FILESIZEは5Gに設定されます

N/A

FLASHBACK_SCN

OFFLINE_LOGICAL ZDMの場合、FLASHBACK_TIMEが現在のシステム時間に設定されます。

ONLINE LOGICAL ZDMの場合、FLASHBACK_SCNもFLASHBACK_TIMEも使用されません

N/A

REUSE_DUMPFILES

常にYESに設定されます

N/A

TRANSFORM

19c以上のターゲットの場合、常にOMIT_ENCRYPTION_CLAUSE:Yが設定されます

常にLOB_STORAGE:SECUREFILEが設定されます

ADBターゲットの場合、次の変換がデフォルトで設定されます

SEGMENT_ATTRIBUTES:N

DWCS_CVT_IOTS:Y

CONSTRAINT_USE_DEFAULT_INDEX:Y

追加のTRANSFORMを指定できます

METRICS

常にYesに設定されます

N/A

LOGTIME

常にALLに設定されます

N/A

TRACE

常に1FF0b00に設定されます

N/A

LOGFILE

常にデータ・ポンプ・ジョブ名に設定され、指定されたエクスポートまたはインポート・ディレクトリ・オブジェクトの下に作成されます。

データ・ポンプ・ジョブがZDM_2_DP_EXPORT_8417で、使用されるディレクトリ・オブジェクトがDATA_PUMP_DIRの場合、操作ログはZDM_2_DP_EXPORT_8417.logという名前でDATA_PUMP_DIRの下に作成されます。

N/A

拡張データ・ポンプ・パラメータの設定

移行する特定のスキーマを選択したり、表領域の名前を変更したり、移行の一環として特定のオブジェクトを含めたり除外したりできます。

DATAPUMPSETTINGS_JOBMODE=FULLまたはDATAPUMPSETTINGS_JOBMODE=SCHEMAジョブ・モードの設定時にこれらの選択または変更を指定するために使用できるパラメータ設定の例を次に示します。

これらのパラメータは、レスポンス・ファイル($ZDM_HOME/rhp/zdm/template/zdm_logical_template.rsp)で設定されます。

特定のオブジェクト・タイプを除外するには

DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXCLUDETYPELIST=COMMENT,DOMAIN_INDEX,MATERIALIZED_VIEW_LOG,RLS_POLICY,TRIGGER

DATAPUMPSETTINGS_JOBMODE=FULLモードの選択したSCHEMAオブジェクトを除外するには:

DATAPUMPSETTINGS_METADATAFILTERS-1=name:NAME_EXPR,value:'NOT IN(''SYSMAN'')',objectType:SCHEMA

DATAPUMPSETTINGS_METADATAFILTERS-3=name:NAME_EXPR,value:'NOT IN(''SH'')',objectType:SCHEMA

ノート:

SCHEMASYSMANは、二重引用符ではなく、一重引用符で囲みます。

DATAPUMPSETTINGS_JOBMODE=SCHEMAモードの選択したSCHEMAオブジェクトを除外するには:

EXCLUDEOBJECTS-1=owner:SYSMAN

EXCLUDEOBJECTS-2=owner:SCOTT

デフォルトでは、Zero Downtime MigrationはOracleのメンテナンス対象オブジェクトを無視します。

DATAPUMPSETTINGS_JOBMODE=SCHEMAモードの選択したSCHEMAオブジェクトを含めるには:

INCLUDEOBJECTS-1=owner:SYSMAN

INCLUDEOBJECTS-2=owner:SCOTT

デフォルトでは、Zero Downtime MigrationはOracleのメンテナンス対象オブジェクトを無視します。

特殊文字を使用した含めるオブジェクトと除外するオブジェクトの指定

次の例は、EXCLUDEOBJECTSおよびINCLUDEOBJECTSパラメータで特殊文字を使用するオブジェクト名を指定する方法を示しています。

  • 特殊文字をエスケープするには、文字列内の特殊文字の前のすべての文字の前後に2つのスラッシュ(//)を使用します。

    たとえば、ドル記号($)をエスケープするには:

    \\INLUDEOBJECTS-3= owner:GRAF_MULTI\\$_HR

  • 接頭辞と接尾辞パターンの間にあるすべての文字を照合するには、照合の必要な場所にピリオドとアスタリスク(.*)を追加します。

    たとえば、GRAFで始まりHRで終わるすべてのスキーマを除外するには:

    EXCLUDEOBJECTS-3= owner:GRAF.*HR

表領域を再マップするには:

DATAPUMPSETTINGS_METADATAREMAPS-1=type:REMAP_TABLESPACE,oldValue:TS_DATA_X,newValue:DATA

DATAPUMPSETTINGS_METADATAREMAPS-2=type:REMAP_TABLESPACE,oldValue:DBS,newValue:DATA

データ・ポンプのエラー処理

Zero Downtime Migrationでは一部のエラーが無視されます。データ・ポンプ・ログに表示される残りのエラーを確認する必要があります。

次のデータ・ポンプ・エラーは、Zero Downtime Migrationでは無視されます。

  • ORA-31684: XXXXはすでに存在します

  • ORA-39111: 依存オブジェクト型XXXXはスキップされ、ベース・オブジェクト型です

  • ORA-39082: オブジェクト型ALTER_PROCEDURE: XXXXの作成の際、コンパイル・エラーが発生しました

根本的なデータ・ポンプ・エラーを回避するために、クラウド移行前アドバイザ・ツール(CPAT)によって報告されたすべてのエラーをクリアします。

表領域の自動作成

論理移行の場合、Zero Downtime Migrationでは、移行されるユーザー・スキーマに関連付けられたソース・データベース表領域が自動的に検出され、データ・ポンプ・インポート・フェーズの前にターゲット・データベースに自動的に作成されます。

Zero Downtime Migrationは、表領域を事前作成するために必要なDDLを生成し、ターゲット上に表領域を作成し、生成されたDDLを実行します。

自動作成が有効になっていると、Zero Downtime Migrationは、レスポンス・ファイルのREMAPセクションで指定されている表領域、またはターゲット・データベースにすでに存在するすべての表領域の自動作成をスキップします。

Zero Downtime Migrationは、指定されたターゲットで表領域の作成がサポートされるかどうかを検証します。共同管理データベース・システムに制限はありません。ターゲットがAutonomous Databaseシステムである場合、次の制限が適用されます。

  • Autonomous DatabaseシステムはBIGFILE表領域のみをサポートするため、Zero Downtime MigrationはAutonomous DatabaseターゲットにデフォルトでBIGFILE表領域を適用し、SMALLFILE表領域が見つかった場合はエラーを報告します。かわりに任意のSMALLFILE表領域を再マップできます。

  • Autonomous Database Sharedシステムは、表領域の自動作成をサポートしていません。

次のレスポンス・ファイル・パラメータを使用して、ターゲット・データベースで必要な表領域を自動的に作成します。

  • TABLESPACEDETAILS_AUTOCREATEは、表領域の自動作成を有効にします。

  • TABLESPACEDETAILS_USEBIGFILEを使用すると、SMALLFILE表領域をBIGFILE表領域に変換できます。通常、デフォルトでFALSEに設定され、Zero Downtime MigrationによりAutonomous Databaseターゲットに対してTRUEが適用されます。

  • TABLESPACEDETAILS_EXTENTSIZEMBを使用すると、表領域がAUTOEXTENDを実行して、デフォルトのNEXT EXTENTサイズの500MBを使用して拡張エラーを回避できます。

  • TABLESPACEDETAILS_EXCLUDEは、ユーザー・スキーマのインポート時にターゲット・データベースで自動作成から除外する表領域を指定します。デフォルトで、'SYSTEM'、'SYSAUX'、'USERS'表領域は除外されます。

表領域の自動再マップ

論理移行の場合、Zero Downtime Migrationでは、ソース・データベースの表領域をターゲット・データベースの指定した表領域に自動的に再マップできます。

Zero Downtime Migrationでは、移行に必要なソース・データベース表領域が自動的に検出されます。自動再マップが有効になっている場合、Zero Downtime Migrationは、次の条件を満たす表領域を除外することによって、再マッピングが必要なソース表領域を検出します。

  • DATAPUMPSETTINGS_METADATAREMAPSで再マップに指定

  • TABLESPACEDETAILS_EXCLUDEで除外に指定

  • ターゲット・データベースにすでに存在する同じ名前の表領域

次のレスポンス・ファイル・パラメータを使用して、必要な表領域を自動的に再マップします。

  • TABLESPACEDETAILS_AUTOREMAPは、表領域の自動再マップを有効にします。

  • TABLESPACEDETAILS_REMAPTARGETは、ソース・データベースの表領域の再マップ先となるターゲット・データベースの表領域の名前を指定します。デフォルト値はDATAです。

表領域の再マップの検証

コマンドZDMCLI migrate databaseを評価モード(-eval)で実行し、再マップに必要なすべての表領域がリストされていることを確認します。欠落している表領域がある場合は、DATAPUMPSETTINGS_METADATAREMAPSパラメータを使用して再マップします。

ノート:

表領域をREMAPターゲットとして使用するには、インポート操作を実行するユーザー(たとえば、SYSTEM)は、選択した表領域にある程度のクォータを持っている必要があります。

パフォーマンスに関する考慮事項

表領域の再マッピングには、データ・ポンプ全体のインポート時間に追加される運用上のオーバーヘッドが伴います。パフォーマンスを最適化するには、ソース・データベースから不要な表領域を確認して削除して、再マップされた表領域の数を最小限に抑えます。詳細は、What DataPump And Oracle RDBMS Parameters And Features Can Significantly Affect DataPump Performance ? (Doc ID 1611373.1)のREMAP_*セクションを参照してください。

Exadata Cloud@Customer上のOracle Autonomous Databaseへの移行

Zero Downtime Migrationは、オフライン論理移行方法とデータ転送メディアとしてのNFSを使用して、既存のExadata Cloud@Customerシステムを含むオンプレミスのOracle DatabaseからExadata Cloud@Customer上のOracle Autonomous Databaseへの移行をサポートします。

サポートされているユース・ケース

Zero Downtime Migrationでは、次の移行シナリオがサポートされています。

  • Exadata Cloud@Customer (Gen 1またはGen 2)ソースからExadata Cloud@Customerターゲット上のOracle Autonomous Databaseへ(ソース・データベースとターゲット・データベースの標準UID/GIDがOracleユーザーに同じである場合)

  • オンプレミスのOracle DatabaseソースからExadata Cloud@Customerターゲット上のOracle Autonomous Databaseへ(ソース・データベースにOracleユーザーの標準以外のUID/GIDがある場合)

移行パラメータ

必須のソースおよびターゲット接続パラメータに加えて、論理移行レスポンス・ファイルで次を設定します。

MIGRATION_METHOD=OFFLINE_LOGICAL

DATA_TRANSFER_MEDIUM=NFS

ソースの前提条件

論理移行のソース・データベースの前提条件に記載されている通常のソース・データベースの前提条件に加えて、次の手順に説明されているようにデータ・ポンプ・ダンプ・ディレクトリへのアクセスも設定する必要があります。

Exadata Cloud@Customer環境の前提条件の設定

  1. すべてのOracle RACノード:

    [root@onprem ~]# cat /etc/fstab | grep nfsshare
    nas-server.us.com:/scratch/nfsshare /u02/app/oracle/mount nfs defaults 0 0
    [root@onprem ~]#
  2. Autonomous Databaseターゲットで、次のパスをマウントします

    nas-server.us.com:/scratch/nfsshare

    宛先はExadataインフラストラクチャ・リソースで、次のようになります

    specified_mount_path/CDB/PDB_GUID

    次に例を示します。

    /scratch/nfsshare/CDB/PDB_GUID

    NFSをマウントするオプションの詳細は、サポートにお問い合せください。

  3. ソースPDBで、次を実行します。

    SQL> create or replace directory DATA_PUMP_DIR_ADBCC as '/u02/app/oracle/mount/CDB/PDB_GUID';
    
    Directory created.
    
    SQL> select grantee from all_tab_privs where table_name = 'DATA_PUMP_DIR_ADBCC';
    
    no rows selected
    
    SQL> grant read, write on directory DATA_PUMP_DIR_ADBCC to SYSTEM;
    
    Grant succeeded.
  4. ソースでは、マウント・ポイントの権限が必要です(drwxr-x---)

    [oracle@onprem opc]$ ls -ldrt /u02/app/oracle/mount/CDB/PDB_GUID
    drwxr-x--- 2 oracle asmadmin 4096 Jul 12 11:34 /u02/app/oracle/mount/CDB/PDB_GUID
    [oracle@onprem opc]$

オンプレミス環境の前提条件の設定

  1. すべてのOracle RACノード:

    [root@onprem ~]# cat /etc/fstab | grep nfsshare
    nas-server.us.com:/scratch/nfsshare /u02/app/oracle/mount nfs defaults 0 0
    [root@onprem ~]#
  2. GID 1001 - miggrpを指定してグループを作成します

    root> groupadd -g 1001 miggrp
  3. データベース・ユーザーをこのグループに追加します。

    root> usermod -aG migrp oracle
  4. Autonomous Databaseターゲットで、NFS共有をマウントします(グループはrwxを取得する必要があります)

    nas-server.us.com:/scratch/nfsshare

    宛先はExadataインフラストラクチャ・リソースで、次のようになります

    specified_mount_path/CDB/PDB_GUID

    次に例を示します。

    /scratch/nfsshare/CDB/PDB_GUID

    NFSをマウントするオプションの詳細は、サポートにお問い合せください。

  5. ディレクトリが書込み可能であることを確認します。

    touch specified_mount_path/CDB/PDB_GUID/test.txt

  6. ソースPDBで、次を実行します。

    SQL> create or replace directory DATA_PUMP_DIR_ADBCC as '/u02/app/oracle/mount/CDB/PDB_GUID';
    
    Directory created.
    
    SQL> select grantee from all_tab_privs where table_name = 'DATA_PUMP_DIR_ADBCC';
    
    no rows selected
    
    SQL> grant read, write on directory DATA_PUMP_DIR_ADBCC to SYSTEM;
    
    Grant succeeded.
  7. ソースでは、マウント・ポイント権限が必要であり(drwxrwx—)、グループは、作成された移行ダミー・グループと一致する必要があります。

    [oracle@onprem opc]$ ls -ldrt /u02/app/oracle/mount/CDB/PDB_GUID
    drwxrwx--- 2 1001 asmadmin 4096 Jul 12 11:34 /u02/app/oracle/mount/CDB/PDB_GUID
    [oracle@onprem opc]$