クロス・プラットフォームのEnterprise Managerリポジトリ・データベースの移行

進化し続けるデータ管理環境において、企業では、様々なエンディアン・プラットフォーム間でデータベースを移行する必要が頻繁に発生します。データベース移行は重要な操作であり、多くの場合、システムのアップグレード、クラウドの導入、またはビジネス要件の変化のために必要になります。クロス・プラットフォームおよびクロス・エンディアンの移行のコンテキストでは、データ構造、バイト・オーダーおよびデータベース形式がシステム間で異なるため、課題は高くなります。データベース移行の領域では、Oracle Data Pumpテクノロジを使用すると、多様なプラットフォームおよびエンディアン・アーキテクチャにわたって、あるデータベースから別のデータベースへのデータの非常に高速な移動が可能になります。オンプレミスのサーバーとクラウド間を移行する場合でも、異なるデータベース管理システム間を移行する場合でも、データの整合性、セキュリティおよびシステム・パフォーマンスを維持するために、堅牢なデータ・ポンプ・メカニズムが重要になります。

Enterprise Managerリポジトリは、Oracle Enterprise Managerの核心であり、組織のITエコシステムを効果的にモニタリングおよび管理するために不可欠で重要なメタデータおよびパフォーマンス・データが含まれています。プラットフォームまたはエンディアン・アーキテクチャ間での移行を検討する際には、この重要なリポジトリの整合性およびアクセシビリティを確保するために、綿密な戦略が最も重要です。

データ・ポンプ・テクノロジは、このような移行中のデータのシームレスな移動を促進する上で重要な役割を果たします。この調査に着手するにあたり、この項では、Enterprise Managerリポジトリ・データベースのコンテキスト内でのクロス・プラットフォーム・クロス・エンディアンの移行の複雑さを説明します。RepMigrateユーティリティを紹介し、最短の時間と最大限の効率でリポジトリ・データベースを正常にかつ確実に移行するために管理者が実行できるプロセスを定義します。

Enterprise Managerリポジトリ・データベースの移行にRepMigrateユーティリティを使用することをお薦めします。

移行の全体の戦略は次の内容によって異なります。

  • ソース・データベースとターゲット・データベースのバージョン

  • リポジトリのデータ量/サイズ

  • 移行する実際のデータ

クロス・プラットフォーム・トランスポータブル表領域、データ・ポンプおよびエクスポート/インポート・オプションに関するOracleデータベースの詳細は、Oracle Databaseドキュメントを参照してください。

トピック:

RepMigrateの概要

Enterprise Managerリポジトリ・データベースの移行にRepMigrateユーティリティを使用することをお薦めします。

RepMigrateは、Enterprise Manager管理者のクロス・プラットフォーム・クロス・エンディアン・リポジトリ・データベースの移行を容易にするためにOracle Data Pumpの上に記述されるラッパー・ユーティリティです。基礎となるユーティリティでは、Oracle Data Pumpを使用します。これは、リリース10g以降のOracle Databaseの機能で、リリース9i以前のOracle ExportおよびOracle Import (expおよびimp)ユーティリティの後継です。Oracle Data Pumpは、スキーマ間、バージョンが異なるデータベース間、様々なオペレーティング・システム上、オンプレミスからオンプレミスおよびOracle Cloudへのデータの移行に役立ちます。

RepMigrateユーティリティの入手方法

Enterprise Manager 13cリリース5更新22 (13.5.0.22)以降、リリース更新ファイルにはRepMigrateユーティリティ(RepMigrate.zipファイル)が含まれています。

RepMigrateユーティリティを取得するには、次を実行します:
  1. My Oracle Supportからリリース更新ファイルをダウンロードして抽出します。
  2. リリース更新を抽出したら、RepMigrate.zipファイルを探します。
  3. RepMigrate.zipファイルをソース・データベースにコピーします。
    ファイルをリポジトリ・データベース・ホスト(ソース・データベース)内の場所にコピーして解凍します。

    ノート:

    ターゲット・データベースでも、同様にファイルをコピーして解凍する必要があります。

    Enterprise Managerリポジトリ・データベースの移行プロセスに使用されるRepMigrateユーティリティ・バージョンは、デプロイされたEnterprise Managerリリース更新(RU)と同じバージョンである必要があります。

  4. ファイルを解凍すると、次の各項で説明するように、エクスポートおよびインポートのステップでリポジトリ・データベースの移行プロセスに使用できるRepMigrateユーティリティ・ディレクトリが表示されます。

RepMigrateパラメータの詳細は、「RepMigrateの使用方法」を参照してください。

RepMigrateの使用方法

Enterprise Manager 13cリリース5更新22 (13.5.0.22)以降では、RepMigrateユーティリティがリリース更新ファイルに含まれ、Enterprise Managerリポジトリ・データベースの移行の実行に使用できます。

使用可能なRepMigrateのオプションをすべてリストするには、次を実行します:
./RepMigrate.sh -help

便利なパラメータ(一部)のリスト:

  • -datafileLocation: データファイル・オプションを指定します。

    これは、ASMおよびRAC環境に必須のパラメータです。

  • -encryptionPassword: TDE環境用のソース・データベースのエクスポート・ダンプ・ファイル内の暗号化列のデータ、メタデータまたは表データのパスワードを指定します。

    ターゲット・データベースでのインポート操作中に同じパスワードを必ず渡してください。

  • -parallel: エクスポート・ジョブまたはインポート・ジョブのために動作するアクティブな実行プロセスの最大数を指定します。

  • -prereqOnly: エクスポート操作中にRepMigrateの前提条件チェックのみを実行するように指定します。詳細は、「ステップ3. 前提条件チェックの実行」を参照してください。

  • -ignorePrereqList: 前提条件チェックを無視します。

  • -repmigrate_prereq_dbpatch: データベース・パッチが適用されているかどうかをチェックします。

RAC環境の場合は、RAC設定の最初のノードで接続文字列ベースの接続を使用します。スキャン・アドレスはサポートされていません。

SSL構成リポジトリの場合は、RepMigrate.sh -helpを使用して使用可能なオプションを確認します。

RepMigrateユーティリティは、TEMPおよびUNDO表領域をチェックします。十分な空き領域がない場合は、失敗します。

RepMigrateを使用したリポジトリ移行のステップ

次の各項では、RepMigrateユーティリティを使用したリポジトリ移行のステップについて説明します:

ステップ1.データベースの準備

RepMigrateを使用してリポジトリ・データベースを移行するには、次の前提条件を満たします:

ステップ1.1.ソース・データベースとターゲット・データベースの共通の前提条件の実行

次に、リポジトリの移行にRepMigrateユーティリティを使用する場合のソース・データベースとターゲット・データベースの両方の前提条件を示します。

データベース・パッチの前提条件

必要に応じて、すべてのデータベース・パッチをソース・データベースとターゲット・データベースの両方に適用します。

ノート:

ソースとターゲットの両方のデータベースは、すべてのパッチが適用された同じデータベース・リリース更新(DB RU)バージョンである必要があります。
  • リポジトリ移行プロセスを開始する前に、ソース・データベースとターゲット・データベースの両方にデータベース・パッチ30978304をインストールします。データベース・パッチ情報は、My Oracle Supportを参照してください。
  • Oracle Database 19リリース更新19 (19.19)の推奨パッチを適用します。

    ノート:

    一部のデータベース・パッチは、データベース・リリース更新(DB RU)パッチの一部として含まれる場合があります。データベース・パッチがインベントリにリストされているかどうかを確認することをお薦めします。データベース・パッチがない場合は、My Oracle Supportをチェックし、それらが使用可能かどうかを確認します。データベース・パッチがリリース更新(RU)に使用できない場合は、個別パッチをリクエストする必要があります。

    Oracle Database 19リリース更新19 (19.19)パッチ:

    • パッチ35042068: データベース・リリース更新: 19.19.0.0.230418 (35042068)
    • パッチ35261302: データポンプ・バンドル・パッチ19.19.0.0.0

    RU19およびデータ・ポンプ・ユーティリティに固有のOracle Database 19リリース更新(RU)パッチ:

    • パッチ36205997: 19cで最大PGA制限フラグがリセットされました。
    • パッチ36018313: データベースRU 19.19.0.0.0の35261302 35854529に対するマージ(バグ35854529のパッチ)。
    • パッチ33421125: PGA制限が高くなると'KOLASLASSIGN'およびPGAのメモリー・リークが増加(DB RU19パッチ35042068の一部)。
    • パッチ35799058: パーティション化された表EM_METRIC_VALUES_E (Enterprise Managerリポジトリ)のEXPDPが低速。

タイムゾーンの前提条件

ソース・データベースとターゲット・データベースのタイムゾーンは同じである必要があります。

たとえば、timedatectlを実行して、Linuxのタイムゾーンを確認できます

表領域の考慮事項

  • 表領域の作成: 表領域はSMALLFILEを使用して明示的に作成する必要があります。必要なデータ・ファイルを事前に割り当てます。
  • 表領域のサイズ:

    • ソース・データベースで表領域(MGMT_TABLESPACEMGMT_ECM_DEPOT_TSおよびMGMT_AD4J_TS)のサイズを問い合せ、それらをターゲット・データベースで再作成します。

    • TEMPおよびUNDO表領域:
      • インポート時に使用される最大UNDO領域は680 MBです。
      • インポート時に使用される最大TEMP領域は140 GBです。

ノート:

表領域を手動で作成する手順は、「ステップ2.2. ターゲット・データベースでの表領域の作成」を参照してください。

その他の推奨事項

  • RAC環境: RAC環境では、最初のノードで接続文字列ベースの接続を使用します。スキャン・アドレスはサポートされていません。
  • パラレル環境:
    • エクスポート: コアの半分以下を使用します。デフォルト値は16です。
    • インポート: コアの数以下を使用します。デフォルト値は16です。
    • パラレル・ジョブのデータベース・パラメータの推奨事項:
      • 単一インスタンスの場合: max_datapump_parallel_per_job=200
      • CDB/PDBの場合: 両方のデータベースで次のパラメータを設定します:
        • max_datapump_jobs_per_pdb=200
        • max_datapump_parallel_per_job=400
ステップ1.2.ソース・データベースの前提条件の完了

リポジトリの移行にRepMigrateユーティリティを使用する場合のソース・データベース(ASMおよび非ASM)の前提条件を次に示します:

  1. ソース・データベースとターゲット・データベースはいずれも、同じデータベース・リリース更新(DB RU)バージョンで、同じデータベース・パッチがインストールされている必要があります。

    「ステップ1.1. ソース・データベースとターゲット・データベースの共通の前提条件の実行」の説明に従って、すべてのデータベース・パッチがソース・データベースに適用されていることを確認します。

  2. TDEの場合のみ、ソース・データベースとターゲット・データベースに同じRepMigrate -encryptionPasswordパラメータを必ず渡します。-encryptionPasswordパラメータを使用してソース・データベースでRepMigrateエクスポート操作を実行する場合、ターゲット・データベースのRepMigrateインポート操作時に同じ-encryptionPasswordパラメータ値を渡す必要があります。RepMigrateの詳細は、「RepMigrateの使用方法」を参照してください。
  3. リポジトリ移行プロセスを開始する前に、ソース・ホストに、エクスポート操作時に作成されるファイル(ダンプファイル)を格納するための十分な領域があることを確認します。
    • 表領域の検証を実行します。

      ダンプ・ファイルの場所に指定された宛先ディレクトリがデータベースの内容を収容できるかどうかをチェックし、ソース・ホストに十分な領域があることを確認します。

ステップ1.3.ターゲット・データベースの前提条件の完了
リポジトリの移行にRepMigrateユーティリティを使用する場合のターゲット・データベースの前提条件を次に示します:
  1. ソース・データベースとターゲット・データベースはいずれも、同じデータベース・リリース更新(DB RU)バージョンで、同じデータベース・パッチがインストールされている必要があります。

    「ステップ1.1. ソース・データベースとターゲット・データベースの共通の前提条件の実行」の説明に従って、すべてのデータベース・パッチがターゲット・データベースに適用されていることを確認します。

  2. 管理エージェントは、リポジトリの移行を開始する前に、ターゲット・データベースにプッシュし、OMSで使用されるのと同じEnterprise Managerリリース更新(RU)バージョンを使用してパッチを適用する必要があります。

    Enterprise Managerの要件の詳細は、「ステップ1.4. ソースおよびターゲットのEnterprise Managerホストの共通の前提条件の実行」を参照してください。

  3. SSL構成データベースの場合、EM Oracleホームを使用してソース・データベースで作成したDBウォレットを使用して、同じJDKバージョンが使用されるようにします。

    TDEの場合、ソース・データベースとターゲット・データベースに同じRepMigrate -encryptionPasswordパラメータを必ず渡します。ターゲット・データベースでRepMigrateインポート操作を実行する場合、ソース・データベースでのRepMigrateエクスポート操作時に渡されたのと同じ-encryptionPasswordパラメータ値を渡す必要があります。RepMigrateの詳細は、「RepMigrateの使用方法」を参照してください。

  4. リポジトリ移行プロセスを開始する前に、ターゲット・ホストに、インポート操作時に使用されるファイル(ダンプファイル)を格納するための十分な領域があることを確認します。
    • 表領域の検証を実行します。

      インポート操作のためにダンプ・ファイルの場所に指定されたディレクトリがデータベースの内容を収容できるかどうかをチェックし、ターゲット・ホストに十分な領域があることを確認します。

  5. 停止時間を最小限に抑えるには、リポジトリ移行プロセスを実行する前にターゲット・データベースを準備します。詳細は、「ステップ2. ベスト・プラクティス」を参照してください。
ステップ1.4.ソースおよびターゲットのEnterprise Managerホストの共通の前提条件の実行

次に、リポジトリの移行にRepMigrateユーティリティを使用する場合の共通のEnterprise Managerの前提条件を示します:

  1. ソース環境とターゲットOMS環境の両方に、必要なEnterprise Managerリリース更新(RU)バージョンを適用します。

    Enterprise Managerリリース更新バージョンは、ソースおよびターゲットOMSホストRepMigrateユーティリティで同じである必要があります。RepMigrateの詳細は、「RepMigrateユーティリティの入手方法」を参照してください。

  2. 一元管理された管理エージェントに、必要なEnterprise Managerリリース更新バージョンを適用します。

    ソース・ホストとターゲット・ホスト上のEnterprise Manager管理エージェントは、同じEnterprise Manager RUバージョンである必要があります。

  3. 適切なEnterprise Managerリリース更新(RU)エージェントをプライマリ・ターゲット・データベース・ノードに追加します。

ステップ2.ベスト・プラクティス

停止時間を最小限に抑えるには、ターゲット・データベースで次のステップを実行します:

ステップ2.1.データベース・オブジェクトの確認

停止時間を最小限に抑えるには、ターゲット・データベースがリポジトリ移行のために準備できていることを確認することが重要です。

リポジトリ移行プロセスを開始する前に、ターゲット・データベースで次を確認することをお薦めします:

  • すでに作成済の表領域。
  • 要件に応じてサイズ設定されている表領域。
  • 更新済のデータベース・パラメータ。
  • すでに作成済のEnterprise Manager以外のロールおよびユーザー。
  • 保持する外部プロファイルがいずれも作成されていること。
  • ソース・データベースから削除された、またはターゲット・データベースに作成されたレガシー・ユーザー。
  • ターゲット・データベースで作成されたソース・データベースから保持されるDBAディレクトリ。
  • チェック済のストレージ。
  • RACサービスを使用する場合は、ジョブがすでに作成されていること。
ステップ2.2.ターゲット・データベースでの表領域の作成

停止時間を最小限に抑えるには、リポジトリの移行を開始する前に、ターゲット・データベースでこのステップを実行することが重要です。

次を実行して、ターゲット・データベースに表領域を手動で作成します:

  1. SYSユーザーとして次の問合せを使用して、MGMT、ECM_DEPOTおよびAD4J表領域について、ソース・データベースで表領域のサイズを確認します:
    select sum(bytes)/1024/1024 SIZE_IN_MB from dba_segments
    where tablespace_name='MGMT_TABLESPACE';
    
    select sum(bytes)/1024/1024 SIZE_IN_MB from dba_segments
    where tablespace_name='MGMT_ECM_DEPOT_TS';
    
    select sum(bytes)/1024/1024 SIZE_IN_MB from dba_segments
    where tablespace_name='MGMT_AD4J_TS';
  2. 前述の出力をサイズとして使用し、次の問合せを使用して表領域を作成します:
    CREATE SMALLFILE TABLESPACE "MGMT_AD4J_TS" EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
    DATAFILE '<datafileLocation>/mgmt_ad4j.dbf'  SIZE <MGMT_AD4J_TS_size_as_calculated>
    REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
    
    CREATE SMALLFILE TABLESPACE "MGMT_ECM_DEPOT_TS" EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
    DATAFILE  '<datafileLocation>/mgmt_depot.dbf' SIZE <MGMT_ECM_DEPOT_TS_size_as_calculated>
    REUSE AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED;
    
    CREATE SMALLFILE TABLESPACE "MGMT_TABLESPACE" EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
    DATAFILE  '<datafileLocation>/mgmt.dbf' SIZE <MGMT_TABLESPACE_size_as_calculated> 
    REUSE AUTOEXTEND ON NEXT 50M  MAXSIZE UNLIMITED;

    ノート:

    <datafileLocation>の値は、ソース・データベース・ホストで使用したのと同様である必要があります。
  3. TEMPおよびUNDO表領域の場合、次のサイズを使用することをお薦めします:
    • 最大PDB TEMP使用量 = 140 GB
    • 最大PDB UNDO使用量 = 680 MB

    RepMigrateユーティリティは、TEMPおよびUNDO表領域をチェックします。十分な空き領域がない場合は、失敗します。

ステップ2.3.RACのみ: RACサービスの作成

停止時間を最小限に抑えるには、リポジトリの移行を開始する前に、ターゲット・データベースでこのステップを実行することが重要です。

これはRAC環境にのみ適用されます: ソース・データベースでRACサービスが使用されている場合は、ターゲット・データベースで必要なRACサービスを作成する必要があります。

サイズ設定の詳細は、Enterprise Managerアドバンスト・インストレーションおよび構成ガイド「ソフトウェア構成」を参照してください。

RACサービス・リンクの作成の詳細は、Enterprise Managerアドバンスト・インストレーションおよび構成ガイド「ジョブ」を参照してください。

ステップ3.前提条件チェックの実行

ソース・データベースで次のステップを実行してRepMigrateユーティリティを実行し、リポジトリの移行(エクスポート操作)を開始する前に前提条件のみを確認し、問題を事前に解決します。

ノート:

続行する前に、データベースの前提条件が完了していることを確認します。詳細は、「ステップ1.1. ソース・データベースとターゲット・データベースの共通の前提条件の実行」を参照してください。
  1. RepMigrateを実行して、-prereqOnlyパラメータを使用してソース・データベースの前提条件のみを確認します。

    たとえば:
    ./RepMigrate.sh -prereqOnly -dbUser sys -dbPassword <db password> -connectString "<connect string>" -dataPumpDir <data pump dir location> -dataPumpUser <datapump user> -dataPumpPassword <datapump password> -action expdp  -dbHome <db home location> -reposPassword <repos Password> [-parallel <number>]
  2. 標準出力からレポートされた問題に対処します。

    満足するまでステップ1を繰り返し、必要な修正をすべて実行します。

-prereqOnlyパラメータを使用すると、外部ユーザー、外部プロファイル、外部ロール、外部ディレクトリ、レガシーEMスキーマ(SYSMAN_BIPLATFORMSYSMAN_APMなど)、DBMSスケジューラ・ジョブ、外部スキーマ内の無効なオブジェクトの問題がないか確認できます。レポートを受信したら、RepMigrateの指示に従って問題を解決します。その後、RepMigrateを再度度実行します(ステップ1)。まだ問題がある場合は、-ignorePrereqListパラメータを使用して無視することが可能です。指示に従わずに-ignorePrereqListを渡すと、インポート操作が失敗します。

ノート:

RAC環境の場合は、RAC設定の最初のノードで接続文字列ベースの接続を使用します。スキャン・アドレスはサポートされていません。

SSL構成リポジトリの場合は、RepMigrate.sh -helpを使用して使用可能なオプションを確認します。

RepMigrateユーティリティの詳細は、「RepMigrateの使用方法」を参照してください。

ステップ4.移行の実行

前述のステップを完了した後、RepMigrateを使用してリポジトリ・データベースを移行するには、次を実行します:

ステップ4.1.OMSおよびエージェントの停止

Enterprise Manager OMSおよび管理エージェントを停止するには、ソース・ホストに接続し、次を実行します:

  1. $OMS_Home/binディレクトリからOMSを停止します。
    emctl stop oms -all -force

    ノート:

    複数のOMS環境がある場合は、すべてのノードで各OMSおよびエージェントを停止します。
  2. 管理エージェントを停止します。
    emctl stop agent
  3. すべての中央管理エージェントを停止します。
  4. SYSMANユーザーとしてごみ箱をパージします。
    SYSMANユーザーとしてソース・リポジトリ・データベースに接続し、次を実行します:
    SQL> PURGE RECYCLEBIN;
ステップ4.2.ソース・データベースの再起動

プラガブル・データベースが含まれるソース・データベースを停止して再起動します。

  • OMSリポジトリが単一インスタンス・データベースにある場合は、データベースを停止して再起動する必要があります。

  • OMSリポジトリがプラガブル・データベースにある場合は、プラガブル・データベースのみを停止して再起動する必要があります。

  • OMSリポジトリがRAC環境にある場合は、すべてのデータベース・インスタンスを停止して再起動します。

ステップ4.3.RepMigrateを使用したソース・データベースからのエクスポート

RepMigrateユーティリティを使用して、ソース・データベースからのエクスポート操作を続行できるようになりました。

クロス・プラットフォーム・クロス・エンディアン・リポジトリ・データベースでのエクスポート操作を成功させるためにソース・データベースで実行する必要があるステップを次に示します:

  • コマンドラインでRepMigrateを起動します。
    ./RepMigrate.sh -dbUser sys -dbPassword <db password> -connectString "<connect string>" -dataPumpDir <data pump dir location> -dataPumpUser <datapump user> -dataPumpPassword <datapump password> -action expdp -dbHome <db home location> -reposPassword <repos Password> [-parallel <number>]

    各項目の意味は次のとおりです。

    • <db password>は、SYSデータベース・ユーザーのパスワードです。
    • <connect string>は、Enterprise Managerリポジトリ・データベースの接続文字列です。
    • <data pump dir location>は、データポンプ・エクスポート・ダンプ・ファイルのコピー先の場所です。
    • <datapump user>は、SYSTEMデータベース・ユーザーまたはEXP_FULL_DATABASE権限を持つユーザーです。
    • <datapump password>は、データポンプ・ユーザーのパスワードです。この場合、SYSTEMユーザーのパスワードです。
    • <db home location>は、Enterprise Managerリポジトリのデータベース・ホームです。
    • <repos Password>は、SYSMANデータベース・ユーザーのパスワードです。
    • -parallel <number>はオプションです。パラレル・ワーカーの数です。デフォルトは16です。

ノート:

ASM環境では、-dataPumpDir <data pumpdir location>パラメータにASM固有の場所を渡す必要があります。たとえば:

-dataPumpDir +DATAC1/DP_EXPORT_DIR

RepMigrateユーティリティの詳細は、「RepMigrateの使用方法」を参照してください。

./RepMigrate.sh -dbUser sys -dbPassword abc -connectString "(DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname)))" -dataPumpDir /abc/dirname -dataPumpUser system -dataPumpPassword abc -action expdp -dbHome /abc/db_home -reposPassword abc

あるいは、レスポンス・ファイルを使用してRepMigrateを起動することもできます。詳細は、「RepMigrateレスポンス・ファイル」を参照してください。

出力

出力は次のようになります。

Looking for suitable Agent.
_agentRUVersion=13.5.0.22
Arguments validated Successfully
RepMigrate invoked with command line parameters: -action expdp -dataPumpPassword  ******** -dataPumpUser system -dataPumpDir /abc/dirname  -dbUser sys-dbPassword  ******** -reposPassword ******** -script_dir  /abc/RepMigrate  -connectString (DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname))) -dbHome /abc/db_home
RepMigrate parameters from command line: -action expdp -dataPumpPassword ********  -dataPumpUser system -dataPumpDir /abc/dirname  -dbUser sys -dbPassword  ******** -reposPassword ******** -script_dir  /abc/RepMigrate -connectString (DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname))) -dbHome /abc/db_home
DB Patch 30978304applied.
External Role check passed.
External User check passed.
External Profile check passed.
Legacy User check passed.
DBMS Scheduler Jobs check passed.
Invalid Objects check passed.
DBA Directory check passed.
Directory Created Successfully
Directory Created Successfully
Stopping AQ...
         RCU Logfile: /abc/RepMigrate/logs/rcu.log
Processing command line ....
Repository Creation Utility - Checking Prerequisites
Checking Global Prerequisites  
Repository Creation Utility - Checking Prerequisites
Checking Component Prerequisites
Repository Creation Utility - Creating Tablespaces
Validating and Creating Tablespaces
Create tablespaces in the repository database
Repository Creation Utility - Create 
Repository Create in progress.
Executing pre create operations
        Percent Complete: 55
        ...
Creating DB Migration Utility(EM_REPOS_MIGRATE_EXPORT)
        Percent Complete: 84
Executing post create operations
        Percent Complete: 100

Repository Creation Utility: Create - Completion Summary

Database details:
-----------------------------
Connect Descriptor                           :(DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname)))
Connected As                                 : SYS
RCU Logfile                                  :/abc/RepMigrate/logs/rcu.log

Component schemas created:
-----------------------------
Component                                    Status         Logfile

DB Migration Utility                         Success        /abc/RepMigrate/logs/em_repos_migrate_export.log

Repository Creation Utility - Create : Operation Completed
Please copy the logs folder from baseHome to a safe location if you plan to delete the baseHome folder where baseHome is the location where the RepMigrate Utility is unzipped.

ログ・ファイル

<full_path_RepMigrate_location>/logsディレクトリのログ・ファイルを確認します。詳細は、「RepMigrateログ・ファイル」を参照してください。

ステップ4.4.ソースからターゲットへのダンプファイルのコピー

エクスポート操作が完了したら、エクスポート操作時に使用された-dataPumpDirの場所の内容を、ソースからターゲット・ホストにコピーします。

  • -dataPumpDirの場所にあるすべてをソースからターゲットにコピーします。
  • admin_gen_grants_to_ro_user.sqlおよびcarry_info.txtファイルを$BASE_DIR (BASE_DIR値は、ソース・ホストでRepMigrateユーティリティを解凍した場所)から、ターゲット・ホストの$BASE_DIR (RepMigrateユーティリティを解凍した場所)の下にコピーします。
  • ASMの場合は、次を実行します:
    • 次を使用して、ASMソース・ホストからASMターゲット・ホストにコピーします:
      asmcmd cp +DATAC1/DP_MIGRATE_DIR/* sys/<pwd>@<IPAddress>.+ASM1:+DATAC1/DP_MIGRATE_DIR

      <pwd>ASM SYSのパスワードです。

ステップ4.5.RepMigrateを使用したターゲット・データベースへのインポート

RepMigrateユーティリティを使用して、ターゲット・データベースへのインポート操作を続行できるようになりました。

クロス・プラットフォーム・クロス・エンディアン・リポジトリ・データベースでのインポート操作を成功させるためにターゲット・データベースで実行する必要があるステップを次に示します:

コマンドラインでRepMigrateを起動します。
./RepMigrate.sh -dbUser sys -dbPassword <db password> -connectString "<connect  string>" -dataPumpDir <data pump dir location> -dataPumpUser <datapump user> -dataPumpPassword <datapump password>  -action impdp -dbHome <db home location> -reposPassword <repos  Password> [-datafileLocation <Location To Create Datafiles>]  [-parallel <number>] 
各項目の意味は次のとおりです。
  • <db password>は、SYSデータベース・ユーザーのパスワードです。
  • <connect string>は、Enterprise Managerリポジトリ・データベースの接続文字列です。
  • <data pump dir location>は、データポンプ・エクスポート・ダンプ・ファイルのコピー先の場所です。
  • <datapump user>は、SYSTEMデータベース・ユーザーまたはIMP_FULL_DATABASE権限を持つユーザーです。
  • <datapump password>は、データポンプ・ユーザーのパスワードです。この場合、SYSTEMユーザーのパスワードです。
  • <db home location>は、Enterprise Managerリポジトリのデータベース・ホームです。
  • <repos Password>は、SYSMANデータベース・ユーザーのパスワードです。

    -reposPassword <repos Password>値は、ソース・データベースに使用されたのと同じにする必要があります。

  • -datafileLocation <Location To Create Datafiles>]はオプションです。データファイルを作成する場所です。
  • -parallel <number>はオプションです。パラレル・ワーカーの数です。デフォルト値は16です。

ノート:

  • RepMigrateユーティリティは、デフォルトでは、ジョブ・キュー・プロセスを設定し、ターゲットのジョブを送信します。これを止めるには、-keepQuiesceを追加します。
  • ASMの場合は、追加パラメータ-datafileLocation <Location to Datafile>を指定します。

./RepMigrate.sh -dbUser sys -dbPassword abc -connectString (DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=123hostname)(PORT=0000)) (CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname))) -dataPumpDir /abc/dirname -dataPumpUser system -dataPumpPassword abc -action impdp -dbHome /abc/db_home -reposPassword abc  

あるいは、レスポンス・ファイルを使用してRepMigrateを起動することもできます。詳細は、「RepMigrateレスポンス・ファイル」を参照してください。

出力

出力は次のようになります。
Looking for suitable Agent.
_agentRUVersion=13.5.0.22
Arguments validated Successfully
RepMigrate invoked with command line parameters:  -action impdp -dataPumpPassword  ******** -dataPumpUser system -dataPumpDir /abc/dirname -dbUser sys  -dbPassword ******** -reposPassword ******** -connectString (DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname))) -dbHome /abc/db_home
RepMigrate parameters from command line:  -action impdp -dataPumpPassword ******** -dataPumpUser system  -dataPumpDir /abc/dirname -dbUser sys -dbPassword ********  -reposPassword ******** -connectString (DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname))) -dbHome /abc/db_home
DB Patch 30978304 applied.
Directory Created Successfully
Datafile Folder Validated
Directory Created Successfully
Folder already exists. Skipping creation of the folder.
         RCU Logfile: /abc/RepMigrate/logs/rcu.log 
Processing command line ....
Repository Creation Utility - Checking Prerequisites
Checking Global Prerequisites
Repository Creation Utility - Checking Prerequisites
Checking Component Prerequisites
Repository Creation Utility - Creating Tablespaces
Validating and Creating Tablespaces
Create tablespaces in the repository database
Repository Creation Utility - Create
Repository Create in progress.
Executing pre create
        operations
        Percent Complete: 55
        ...
Creating DB Migration Utility(EM_REPOS_MIGRATE_IMPORT)
        Percent Complete: 84
Executing post create operations
        Percent Complete: 100

Repository Creation Utility: Create - Completion Summary

Database details:
-----------------------------
Connect Descriptor                         : (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=em1111.subnetaaa.bbbb.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=orcl)))
Connected As                                 : SYS
RCU Logfile                                  : /abc/RepMigrate/logs/rcu.log

Component schemas created:
-----------------------------
Component                                    Status         Logfile
DB Migration Utility                         Success       /abc/RepMigrate/logs/em_repos_migrate_import.log

Repository Creation Utility - Create : Operation Completed
Please copy the logs folder from baseHome to a safe location ifyou plan to delete the baseHome folder where baseHome is the location where the RepMigrate Utility is unzipped.
Starting AQ.

ログ・ファイル

<full_path_RepMigrate_location>/logsディレクトリのログ・ファイルを確認します。詳細は、「RepMigrateログ・ファイル」を参照してください。

ステップ4.6.新しいリポジトリの設定
新しいリポジトリを設定するには、次を実行します:
  • adminオプションを使用してEnterprise Manager OMSを再起動します。
    • emctl start oms -admin_only
  • OMS構成を変更します。
    emctl config oms -store_repos_details -repos_conndesc '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<Host_NAME>)(PORT=<Port>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<Service>)))' -repos_user SYSMAN -repos_pwd <pwd>
    emctl config emrep -sysman_pwd <sysman password> -conn_desc "new DB descriptor"
  • Enterprise Managerで使用されるすべてのサービスを変更します。

    RACの場合、Enterprise Managerには、RACサービスを使用する特定のサブシステムの接続文字列があります。これらが構成されている場合は、変更する必要があります。詳細は、Enterprise Managerアドバンスト・インストレーションおよび構成ガイドを参照してください。

  • OMSを停止します。
    • emctl stop oms -all
  • OMSおよび管理エージェントを再起動します。
    • emctl start oms
    • emctl start agent

移行後の検証の実行

次の検証ステップを移行後に実行し、移行が完全に成功したかどうかを確認します。

  • ソース・データベースとターゲット・データベースをEnterprise Managerで比較してオブジェクトの矛盾を検証します。

  • 移行されたデータベースをEnterprise Managerで検証し、データベースが問題なく実行しているかどうかを確認します。

  • リポジトリ操作、dbmsジョブ、管理システム・エラーが報告されているかどうかを検証します。

  • すべてのEnterprise Manager機能が移行後適切に機能しているかどうかを検証します。

  • Enterprise Managerによる検証で、管理サービスとリポジトリ・データベースが適切に再配置されていることを確認します。

RepMigrateファイルとトラブルシューティング

Enterprise Manager 13cリリース5更新22 (13.5.0.22)以降では、RepMigrateユーティリティをEnterprise Managerリポジトリ・データベースの移行の実行に使用できます。

この項では、ログ・ファイル、レスポンス・ファイル、トラブルシューティングなど、RepMigrateユーティリティに関する追加情報を示します。

RepMigrateログ・ファイル

この項では、RepMigrateユーティリティの使用時に生成されるログ・ファイルについて説明します。

場所

<RepMigrate_location>/logsフォルダにあります。

エクスポート・ログ・ファイル

RepMigrateエクスポート・ログ・ファイルの内容は次のとおりです:
  • em_repos_migrate_export.log
  • error.txt
  • export/
    • restOfSchemasExportOutput.log
    • sysmanTypesDataOnlySchemaExportOutput.log
    • sysmanUsersOnlyExportOutput.log
    • tableExportOutput.log
    • viewExportOutput.log
  • logger<number>.properties (<number>は、生成された乱数です。)
  • output.txt
  • rcu.log
  • repmigrate/
    • m_<timestamp>.expdp (<timestamp>は、生成された日時です。)
      • repmigrate_expdp.log

インポート・ログ・ファイル

RepMigrateインポート・ログ・ファイルの内容は次のとおりです:
  • custom_comp_create_tbs.log
  • import/
    • restOfSchemasImportOutput.log
    • sysmanTypesDataOnlySchemaImportOutput.log
    • sysmanUsersOnlyImportOutput.log
    • tableImportOutput.log
    • viewImportOutput.log
  • output.txt
  • repmigrate/
    • m_<timestamp>.impdp (<timestamp>は、生成された日時です。)
      • repmigrate_impdp.log
  • em_repos_migrate_import.log
  • error.txt
  • logger<number>.properties (<number>は、生成された乱数です。)
  • rcu.log
  • utlprp.sql

RepMigrateレスポンス・ファイル

この項では、レスポンス・ファイルを使用したRepMigrateの起動について説明します。

レスポンス・ファイルを作成し、RepMigrateユーティリティの起動時に使用できます。

レスポンス・ファイルの場所

RepMigrateホーム・ディレクトリ(RepMigrateが解凍された場所)の下に作成および保存できます。

エクスポート・レスポンス・ファイル

テキスト・エディタを使用してレスポンス・ファイルを作成し、エクスポート操作に必要なパラメータを追加して、任意の希望の名前で保存できます。たとえば、<RepMigrate_location>/repmigrate_exp.rspファイルとして保存できます。

エクスポート用のレスポンス・ファイルの例:

action=expdp
connectString=(DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname)))
dbUser=SYS
dbPassword=welcome***
reposPassword=welcome***
dataPumpUser=SYSTEM
dataPumpPassword=welcome***
dataPumpDir=/abc/dirname
dbHome=/abc/db_home 

前述のパラメータおよび値の詳細は、「ステップ4.3. RepMigrateを使用したソース・データベースからのエクスポート」を参照してください。

インポート・レスポンス・ファイル

テキスト・エディタを使用してレスポンス・ファイルを作成し、インポート操作に必要なパラメータを追加して、任意の希望の名前で保存できます。たとえば、<RepMigrate_location>/repmigrate_imp.rspファイルとして保存できます。

インポート用のレスポンス・ファイルの例:
action=impdp
connectString=(DESCRIPTION=(ADDRESS=(PROTOCOL=abc)(HOST=abchostname)(PORT=0000))(CONNECT_DATA=(SERVER=DEDICATED)(SID=sidname)))
dbUser=SYS
dbPassword=welcome****
reposPassword=welcome***
dataPumpUser=SYSTEM
dataPumpPassword=welcome***
dataPumpDir=/abc/dirname 
dbHome /abc/em/db_home

前述のパラメータおよび値の詳細は、「ステップ4.5. RepMigrateを使用したターゲット・データベースへのインポート」を参照してください。

レスポンス・ファイルを使用したRepMigrateの起動

レスポンス・ファイルを使用してRepMigrateを起動するには、次を実行します:
RepMigrate.sh -responsefile <full_path_response_file>
エクスポートの例:
RepMigrate.sh -responsefile /abc/repmigrate_exp.rsp 

RepMigrateのトラブルシューティング

この項では、RepMigrateユーティリティに関連する一般的な問題および解決策についていくつか説明します。

リポジトリ移行プロセス中には、様々なエラーが発生することがあります。一般的なエラーの原因と推奨処置を次に示します。

エージェント・ホームのRUバージョンがOMSのバージョンと異なります。エージェントにOMSと同じRUバージョンでパッチが適用されていることを確認してから、操作を再試行してください。

原因: RepMigrateユーティリティでは、OMSと同じリリース更新(RU)レベルのEMエージェントが、ソースおよびターゲットのデータベース・ホストで実行されている必要があります。EMエージェントがソース・ホストまたはターゲット・ホストで実行されていない場合、前述のエラーが表示されます。

処置: エクスポート(expdp)操作またはインポート(impdp)操作を実行する前に、OMSと同じRUのEMエージェントをソース・ホストまたはターゲット・ホストにプッシュしてください。

DBパッチ30978304が見つかりません。このエラーを解決するには、Oracleサポートに連絡してください。

原因: RepMigrateユーティリティでは、expdpまたはimpdp操作の前に、ソース・ホストとターゲット・ホストの両方にデータ・ポンプ・パッチ30978304を適用する必要があります。パッチがソース・ホストまたはターゲット・ホストに適用されていない場合、このエラーがスローされます。

可能な処置: My Oracle Supportに連絡し、データベース・パッチ30978304またはソース・ホストまたはターゲット・ホストのデータベース・バージョンに固有のデータ・ポンプ・パッチを適用してください。データベース・パッチ情報は、My Oracle Supportを参照してください。

外部ユーザー・チェックに失敗しました。インポート前に、ターゲットDBでEM_ADMINユーザーを作成してください。

原因: RepMigrateユーティリティは、ソース・データベースで作成されたEMユーザー以外の外部ユーザーがないかチェックします。外部ユーザーが見つかった場合、ソース内の外部ユーザーのすべての名前とともにこのエラーがスローされます。前述の例では、EM_ADMINは外部ユーザーです。

可能な処置: エラーでリストされた外部ユーザーをターゲットで作成する必要があります。

-ignorePrereqList repmigrate_external_user_checkパラメータを渡してユーティリティを再実行する必要があります。

次のように、同じ情報がエラーとともにコンソールに表示されます:

"-ignorePrereqList repmigrate_external_user_check"オプションを指定してソース・データベースでRepMigrateユーティリティを再実行し、エクスポート操作を完了してください。複数の前提条件が満たされていない場合は、カンマ(,)区切りのリストで渡してください。例: "-ignorePrereqList repmigrate_<x>_check,repmigrate_<y>_check"。使用方法については、RepMigrate -helpを使用してください。

外部ロール・チェックに失敗しました。インポート前に、ターゲットDBでSYSMAN_READ1ロールを作成してください。

原因: RepMigrateユーティリティは、ソース・データベースで作成されたEMロール以外の外部ロールがないかチェックします。外部ロールが見つかった場合、ソース内の外部ロールのすべての名前とともにこのエラーがスローされます。前述の例では、SYSMAN_READ1は外部ロールです。

可能な処置: エラーでリストされた外部ロールをターゲットで作成する必要があります。

-ignorePrereqList repmigrate_external_roles_checkパラメータを渡してユーティリティを再実行する必要があります。

次のように、同じ情報がエラーとともにコンソールに表示されます:

"-ignorePrereqList repmigrate_external_role_check"オプションを指定してソース・データベースでRepMigrateユーティリティを再実行し、エクスポート操作を完了してください。複数の前提条件が満たされていない場合は、カンマ(,)区切りのリストで渡してください(例: "-ignorePrereqList repmigrate_<x>_check,repmigrate_<y>_check")。使用方法については、RepMigrate -helpを使用してください。

外部プロファイル・チェックに失敗しました。インポート前に、ターゲットDBでPGGDプロファイルを作成してください。

原因: RepMigrateユーティリティは、ソースDBで作成されたEMプロファイル以外の外部プロファイルがないかチェックします。外部プロファイルが見つかった場合、ソース内の外部プロファイルのすべての名前とともにこのエラーがスローされます。この例では、PGDBは外部プロファイルです。

可能な処置: エラーでリストされた外部プロファイルをターゲットで作成する必要があります。

-ignorePrereqList repmigrate_external_profile_checkパラメータを渡してユーティリティを再実行する必要があります。

次のように、同じ情報がエラーとともにコンソールに表示されます:

"-ignorePrereqList repmigrate_external_profile_check"オプションを指定してソース・データベースでRepMigrateユーティリティを再実行し、エクスポート操作を完了してください。複数の前提条件が満たされていない場合は、カンマ(,)区切りのリストで渡してください(例: "-ignorePrereqList repmigrate_<x>_check,repmigrate_<y>_check")。使用方法については、RepMigrate -helpを使用してください。

古いEnterprise Managerのリカバリ

古いEMをリカバリするには、ソース・データベースでSYSとして次を実行します:
  1. ALTER SYSTEM SET job_queue_processes=<JOB_QUEUE_MAX>  sid='*';  where JOB_QUEUE_MAX can be checked from carry_info.txt file present in  <dataPumpDir>.

    ASMの場合、JOB_QUEUE_MAXの値は、<BASEDIR>にあるcarry_info.txtファイルから確認できます。

  2. ALTER SESSION SET CURRENT_SCHEMA = SYSMAN;
  3. @<baseDir>/rsc/sql/admin_submit_dbms_jobs.sql;
    <baseDir>は、RepMigrateが解凍されている場所です。
  4. AQを起動するには、SYSMANとして次を実行します:
     begin
    for emqrec in (select name from dba_queues where owner='SYSMAN' and name not like 'AQ$%')        
    loop       
    DBMS_AQADM.start_queue(
            queue_name => emqrec.name,
            enqueue =>    true,
            dequeue => true);
            end loop;
            end;
     /
  5. OMSを起動します
    emctl start oms
  6. エージェントを起動します
    emctl start agent

エクスポート時の障害からのリカバリ

エクスポート時に障害が発生した場合は、次を実行します:
  1. ソース・データベースでSYSとして次を実行します:
    ALTER SYSTEM SET job_queue_processes=<JOB_QUEUE_MAX>  sid='*';  where JOB_QUEUE_MAX can be checked from carry_info.txt file present in  <dataPumpDir>.

    ASMの場合、JOB_QUEUE_MAXの値は、<baseDir>にあるcarry_info.txtファイルから確認できます。

    ALTER SESSION SET CURRENT_SCHEMA = SYSMAN;
    @<baseDir>/rsc/sql/admin_submit_dbms_jobs.sql;

    <baseDir>は、RepMigrateが解凍されている場所です。

  2. AQを起動するには、SYSMANとして次を実行します:
    begin
    for emqrec in (select name from dba_queues where owner='SYSMAN' and name not like 'AQ$%')
    loop       
    DBMS_AQADM.start_queue(
    queue_name => emqrec.name,
    enqueue =>    true,
    dequeue => true);
    end loop;
    end; 
    /
  3. 次を削除します:
    • -dataPumpDirオプションに指定された、ステップ3でユーティリティに渡された<dumpfile folder>
    • <baseDir/logs>フォルダ。
    • ASMの場合、前述のステップに加えて、<baseDir>からcarry_info.txtおよびadmin_gen_grants_to_ro_user.sqlを削除します。
    • エクスポートを再試行します。

インポート時の障害からのリカバリ

  1. 古いDBインスタンスを削除します。

    古いデータベース・インスタンスがCDBで、PDBにインポートしている場合は、PDBを削除して再作成できます。

  2. 新しいインスタンスを作成します。
  3. インポートを再試行する前に、<baseDir><baseDir/logs>フォルダを削除します。

    <baseDir>は、RepMigrateが解凍されている場所です。

  4. ASMの場合、前述のステップに加えて、次を実行することで、ASMCMDを使用してDUMPSETを削除します:
    • ASMCMDにログインします。
    • ASMインスタンスのDUMPSETに移動します。
    • 次を実行します:
      rm sysman_*
      rm view.dmp
      rm table.dmp