AWS DMS を使用して Oracle PeopleSoft データベースを AWS に移行する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS DMS を使用して Oracle PeopleSoft データベースを AWS に移行する

作成者: sampath kathirvel (AWS)

環境:本稼働

ソース: Oracle PeopleSoft

ターゲット: Amazon RDS for Oracle

R タイプ: リプラットフォーム

ワークロード: ‬Oracle

テクノロジー: 移行、データベース

AWS サービス: AWS DMS Amazon RDS

[概要]

Oracle PeopleSoft は、エンタープライズ全体のプロセス向けのエンタープライズリソースプランニング (ERP) ソリューションです。 PeopleSoft には、クライアント、アプリケーション、データベースの 3 層アーキテクチャがあります。 は Amazon Relational Database Service (Amazon RDS) で実行 PeopleSoft できます。

Oracle データベースを Amazon RDS に移行すると、Amazon Web Services (AWS) がバックアップタスクと高可用性を処理できるため、 PeopleSoft アプリケーションとその機能のメンテナンスに集中できます。移行プロセス中に考慮すべき主な要因の包括的なリストについては、AWS 規範ガイダンス の「Oracle データベースの移行戦略」を参照してください。

このパターンは、AWS Database Migration Service (AWS DMS) とその変更データキャプチャ (CDC) 特徴量を備えた Oracle Data Pump を使用して、オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行するためのソリューションを提供します。

Oracle などの重要な ERP アプリケーションを移行する場合 PeopleSoft、ダウンタイムを最小限に抑えることが重要です。AWS DMS では、ソースデータベースからターゲットデータベースへのフルロードと連続レプリケーションの両方をサポートすることで、ダウンタイムを最小限に抑えます。AWS DMS では、移行のリアルタイムモニタリングとログ記録も提供されるため、ダウンタイムの原因となる問題を特定して解決することを支援します。

AWS DMS で変更を複製する場合、AWS DMS がデータベースログから変更を読み取るための開始点として、時刻またはシステム変更番号 (SCN) を指定する必要があります。AWS DMS がこれらの変更にアクセスすることを保証するには、指定された期間でサーバーでこれらのログにアクセスできるようにしておくことが重要です。

前提条件と制限

前提条件

  • ターゲットデータベースとして AWS クラウド環境内の Amazon RDS for Oracle データベースをプロビジョニングしました。

  • オンプレミスまたは AWS クラウドの Amazon Elastic Compute Cloud (Amazon EC2) で実行されている Oracle PeopleSoft データベース。

    注:このパターンでは、オンプレミスから AWS への移行のために設計されましたが、Amazon EC2 インスタンスの Oracle データベースを使用してテストされます。オンプレミスから移行するには、適切なネットワーク接続を設定する必要があります。

  • スキーマの詳細です。Oracle PeopleSoft アプリケーションを Amazon RDS for Oracle に移行する場合は、移行する Oracle データベーススキーマ ( などSYSADM) を特定する必要があります。移行プロセスを開始する前に、スキーマに関する以下の詳細情報を収集します。

    • サイズ

    • オブジェクトタイプごとのオブジェクトの数

    • 無効なオブジェクトの数。

    この情報は移行プロセスに役立ちます。

制約事項

  • このシナリオは PeopleSoft DEMO データベースでのみテストされています。大規模なデータセットではテストされていません。

アーキテクチャ

次の図表では、ソースデータベースとして Oracle データベースを実行するインスタンス、及び ターゲットデータベースとして Amazon RDS for Oracle を実行するインスタンスを示しています。データは、Oracle Data Pump を使用してソース Oracle データベースからターゲット Amazon RDS for Oracle データベースにエクスポートおよびインポートされ、AWS DMS を使用して CDC が変更された場合にレプリケートされます。

オンプレミス DB インスタンスから Amazon RDS への 5 ステップのプロセス。
  1. 最初のステップでは、Oracle Data Pump を使用してソースデータベースからデータを抽出し、そのデータを Amazon RDS for Oracle データベースターゲットに送信します。

  2. データは、ソースデータベースから AWS DMS のソースエンドポイントに送信されます。

  3. ソースエンドポイントから AWS DMS レプリケーションインスタンスにデータが送信され、そこでレプリケーションタスクが実行されます。

  4. レプリケーションタスクが完了する後、データが AWS DMS のターゲットエンドポイントに送信されます。

  5. ターゲットエンドポイントから、データは Amazon RDS for Oracle データベースインスタンスに送信されます。

ツール

AWS サービス

その他のサービス

  • Oracle Data Pump」 を使用すると、データやメタデータを一つのデータベースから別のデータベースに高速に移動することを支援します。

ベストプラクティス

LOB への移行

ソースデータベースに、ターゲットデータベースに移行する必要のあるラージバイナリオブジェクト (LOB) が含まれている場合、AWS DMS には次のオプションがあります。

  • Full LOB mode - サイズにかかわらず、 AWS DMS はすべての LOB をソースからターゲットに移行します。移行が遅くなりますが、データが切り捨てられないという利点があります。パフォーマンスを向上させるには、新しいレプリケーションインスタンスに別のタスクを作成して、LOB が数メガバイトを超えるテーブルを移行できます。

  • 制限付き LOB モード — LOB 列データの最大サイズを指定します。これにより、AWS DMS はリソースを事前に割り当て、LOB を一括適用できます。LOB 列のサイズがタスクで指定されたサイズを超える場合、AWS DMS はデータを切り捨てて AWS DMS ログファイルに警告を送信します。LOB データサイズが制限された LOB サイズ内にある場合、制限付き LOB モードを使用することでパフォーマンスを向上させることができます。

  • インライン LOB モード — 小さい LOB と大きな LOB の両方を複製することで、データを切り捨てたり、タスクのパフォーマンスを低下させたりすることなく LOB を移行できます。まず、 InlineLobMaxSize パラメータの値を指定します。これは、フル LOB モードが true に設定されている場合にのみ使用できます。AWS DMS タスクでは、小さな LOB をインラインで転送するため、効率が向上します。AWS DMS では、ソーステーブルからルックアップを実行して、大きな LOB を移行します。ただし、インライン LOB モードは全ロードフェーズでのみ機能します。

シーケンス値の生成

AWS DMS による変更データキャプチャプロセスでは、増分シーケンス番号はソースデータベースから複製されないことに注意します。シーケンス値の不一致を避けるには、すべてのシーケンスのソースから最新のシーケンス値を生成し、それをターゲット Amazon RDS for Oracle データベースに適用する必要があります。

認証情報管理

AWS リソースを保護するために、AWS Identity and Access Management (IAM) の「ベストプラクティス」に従うことをお勧めします。

エピック

タスク説明必要なスキル

テンプレートをダウンロードする。

DMS_instance.yaml AWS CloudFormation テンプレートをダウンロードして、AWS DMS レプリケーションインスタンスとそのソースエンドポイントとターゲットエンドポイントをプロビジョニングします。

クラウド管理者、DBA

スタックの作成を開始します。

  1. AWS マネジメントコンソールで、 を選択しますCloudFormation

  2. [スタックの作成] を選択します。

  3. [テンプレートの指定] で、[テンプレートファイルのアップロード] を選択します。

  4. [ファイルを選択]を選択します。

  5. DMS_instance.yaml ファイルを選択します。

  6. [次へ] をクリックします。

クラウド管理者、DBA

パラメータを指定します。

  1. スタック名に対して、スタック名を入力します。

  2. AWS DMS インスタンスパラメータで、次のパラメータを入力します。

    • DMSInstanceType – ビジネスニーズに基づいて、AWS DMS レプリケーションインスタンスに必要なインスタンスを選択します。

    • DMSStorageSize – 移行のサイズに基づいて、AWS DMS インスタンスのストレージサイズを入力します。

  3. ソース Oracle データベース設定には、次のパラメータを入力します。

    • SourceOracleEndpointID – ソース Oracle データベースサーバー名

    • SourceOracleDatabaseName – 該当する場合、ソースデータベースサービス名またはセッション ID (SID)

    • SourceOracleUserName – ソースデータベースのユーザー名 (デフォルトはシステム)

    • SourceOracleDBPassword – ソースデータベースのユーザー名のパスワード

    • SourceOracleDBPort — ソースデータベースポート

  4. Oracle データベース構成のターゲット RDS で、次のパラメータを入力します。

    • TargetRDSOracleEndpoint ID – ターゲット RDS データベースエンドポイント

    • TargetRDSOracleDatabaseName – ターゲット RDS データベース名

    • TargetRSOracleUserName – ターゲット RDS ユーザー名

    • ターゲット RDS OracleDB パスワード — ターゲット RDS パスワード

    • TargetOracleDBPort – ターゲット RDS データベースポート

  5. VPC、サブネット、セキュリティグループの設定で、次のパラメータを入力します。

    • VPCID — レプリケーションインスタンスの VPC

    • VPCSecurityGroupId – レプリケーションインスタンスの VPC セキュリティグループ

    • DMSSubnet1 — アベイラビリティーゾーン 1 のサブネット

    • DMSSubnet2 — アベイラビリティーゾーン 2 のサブネット

  6. [次へ] をクリックします。

クラウド管理者、DBA

スタックを作成します。

  1. スタックオプションの設定のページで、タグに対して、いずれのオプションの値を入力します。

  2. [次へ] をクリックします。

  3. レビューページで詳細を確認し、送信を選択します。

プロビジョニングは約 5 ~ 10 分で完了します。AWS CloudFormation スタックページに CREATE_COMPLETE と表示されると完了です。

クラウド管理者、DBA

エンドポイントをセットアップします。

  1. AWS マネジメントコンソールから、データベース移行サービスを選択します。

  2. リソース管理でレプリケーションインスタンスを選択します。

  3. リソース管理でエンドポイントを選択します。

クラウド管理者、DBA

接続をテストします。

ソースエンドポイントとターゲットエンドポイントのステータスにアクティブになったら、接続をテストします。各エンドポイント (ソースとターゲット) でテストを実行を選択し、ステータスが成功と表示されることを確認します。

クラウド管理者、DBA
タスク説明必要なスキル

SCN を生成します。

ソースデータベースがアクティブでアプリケーションで使用中になったら、Oracle Data Pump でデータエクスポートを開始します。まず、Oracle Data Pump によるエクスポート時のデータ整合性を保つため、また AWS DMS の変更データの開始点として、ソースデータベースからシステム変更番号 (SCN) を生成する必要があります。

ソースデータベースから現在の SCN を生成するには、次の SQL ステートメントを入力します。

SQL> select name from v$database; SQL> select name from v$database; NAME --------- PSFTDMO SQL> SELECT current_scn FROM v$database; CURRENT_SCN ----------- 23792008

生成された SCN を保存して、データをエクスポートしたり、AWS DMS レプリケーションタスクを作成したりするときに使用します。

DBA

パラメータファイルを作成します。

スキーマをエクスポートするためのパラメータファイルを作成するには、次のコードを使用できます。

$ cat exp_datapmp.par userid=system/******* directory=DATA_PUMP_DIR logfile=export_dms_sample_user.log dumpfile=export_dms_sample_data_%U.dmp schemas=SYSADM flashback_scn=23792008

注:要件に応じて、以下のコマンドを使用して,独自の DATA_PUMP_DIR を定義することもできます。

SQL> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/product/19c/dbhome_1/dmsdump/'; Directory created. SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system; Grant succeeded. SQL> SQL> SELECT owner, directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'; OWNER DIRECTORY_NAME DIRECTORY_PATH ------------------------------------------------------------------------------------------------------------------ SYS DATA_PUMP_DIR /opt/oracle/product/19c/dbhome_1/dmsdump/
DBA

スキーマをエクスポートします。

エクスポートを実行するには、expdp ユーティリティを使用します。

$ expdp parfile=exp_datapmp.par ....................... Transferring the dump file with DBMS_FILE_TRANSFER to Target: . . exported "SYSADM"."PS_XML_TEMPLT_LNG" 6.320 KB 0 rows . . exported "SYSADM"."PS_XML_TEMPLT_LNK" 6.328 KB 0 rows . . exported "SYSADM"."PS_XML_XLATDEF_LNG" 6.320 KB 0 rows . . exported "SYSADM"."PS_XML_XLATITM_LNG" 7.171 KB 0 rows . . exported "SYSADM"."PS_XPQRYRUNCNTL" 7.601 KB 0 rows . . exported "SYSADM"."PS_XPQRYRUNPARM" 7.210 KB 0 rows . . exported "SYSADM"."PS_YE_AMOUNTS" 9.351 KB 0 rows . . exported "SYSADM"."PS_YE_DATA" 16.58 KB 0 rows . . exported "SYSADM"."PS_YE_EE" 6.75 KB 0 rows . . exported "SYSADM"."PS_YE_W2CP_AMOUNTS" 9.414 KB 0 rows . . exported "SYSADM"."PS_YE_W2CP_DATA" 20.94 KB 0 rows . . exported "SYSADM"."PS_YE_W2C_AMOUNTS" 10.27 KB 0 rows . . exported "SYSADM"."PS_YE_W2C_DATA" 20.95 KB 0 rows . . exported "SYSADM"."PS_ZBD_JOBCODE_TBL" 14.60 KB 0 rows . . exported "SYSADM"."PTGRANTTBL" 5.468 KB 0 rows Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ** Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is: /opt/oracle/product/19c/dbhome_1/dmsdump/export_dms_sample_data_01.dmp Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Dec 19 20:13:57 2022 elapsed 0 00:38:22
DBA
タスク説明必要なスキル

ダンプファイルを、ターゲットインスタンスに転送します。

DBMS_FILE_TRANSFER を使用してファイルを転送するには、ソースデータベースから Amazon RDS for Oracle インスタンスへのデータベースリンクを作成する必要があります。リンクが確立されたら、ユーティリティを使用して Data Pump ファイルを RDS インスタンスに直接転送できます。

または、Data Pump ファイルを「Amazon Simple Storage Service (Amazon S3)」に転送し、Amazon RDS for Oracle インスタンスにインポートできます。このオプションの詳細については、「追加情報」 セクションを参照してください。

ターゲットの DB インスタンスの Amazon RDS マスターユーザーに接続する ORARDSDB というデータベースリンクを作成するには、ソースデータベースで次のコマンドを実行します。

$sqlplus / as sysdba $ SQL> create database link orardsdb connect to admin identified by "*****" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testpsft.*******.us-west-2.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))'; Database link created.
DBA

データベースリンクをテストします。

データベースリンクをテストして、sqlplus を使用して Amazon RDS for Oracle のターゲットデータベースに接続できることを確認します。

SQL> SQL> select name from v$database@orardsdb; NAME --------- ORCL SQL>
DBA

ダンプファイルをターゲットデータベースに転送します。

ダンプファイルを Amazon RDS for Oracle データベースにコピーするには、DATA_PUMP_DIR デフォルトのディレクトリを使用するか、次のコードを使用して独自のディレクトリを作成できます。

exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);

次のスクリプトでは、ソースのインスタンスから export_dms_sample_data_01.dmp という名前のダンプファイルを、 orardsdb という名前のデータベースリンクを使用して、ターゲット Amazon RDS for Oracle Database にコピーします。

$ sqlplus / as sysdba SQL> BEGIN DBMS_FILE_TRANSFER.PUT_FILE( source_directory_object => 'DATA_PUMP_DIR', source_file_name => 'export_dms_sample_data_01.dmp', destination_directory_object => 'TARGET_PUMP_DIR’', destination_file_name => 'export_dms_sample_data_01.dmp', destination_database => 'orardsdb' ); END; / PL/SQL procedure successfully completed.
DBA

ターゲットデータベース内のダンプファイルを一覧表示します。

PL/SQL プロシージャが完了したら、次のコードを使用して Amazon RDS for Oracle データベースにデータダンプファイルを一覧表示できます。

SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));
DBA

ターゲットデータベースでインポートを開始します。

インポートプロセスを開始する前に、データダンプファイルを使用して、ターゲット Amazon RDS for Oracle データベースにロール、スキーマ、テーブルスペースを設定します。

インポートを実行するには、Amazon RDS マスターユーザーアカウントでターゲットデータベースにアクセスし、Amazon RDS for Oracle Database tns-entry を含む tnsnames.ora ファイル内の接続文字列名を使用します。必要に応じて、データダンプファイルを別のテーブルスペースまたは別のスキーマ名でインポートする再マップオプションを含めることができます。

インポートを開始するには、次のコードを使用します。

impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp

インポートを正常に完了させるには、インポートログファイルにエラーがないかどうかを確認し、オブジェクト数、行数、無効なオブジェクトなどの詳細を確認します。無効なオブジェクトがある場合は、それらを再コンパイルします。さらに、ソースとターゲットのデータベースオブジェクトを比較して、一致することを確認します。

DBA
タスク説明必要なスキル

レプリケーションタスクを作成します。

次のステップを使用して AWS DMS レプリケーションタスクを作成します。

  1. AWS DMS コンソールの変換と移行で、データベース移行タスクを選択します。

  2. タスク設定では、タスク識別子にタスク拡張子を入力します。

  3. レプリケーションインスタンスに対して、作成した DMS レプリケーションインスタンスを選択します。

  4. ソースデータベースエンドポイントで、ソースエンドポイントを選択します。

  5. ターゲットデータベースエンドポイントでは、ターゲット Amazon RDS for Oracle データベースを選択します。

  6. 移行タイプでは、データ変更のみを複製を選択します。補足ロギングを有効にする必要があるというメッセージを受け取った場合は、追加情報セクションの指示に従ってください。

  7. タスク設定で、ログシーケンス番号を指定を選択します。

  8. システム変更番号には、ソース Oracle データベースから生成した Oracle データベース SCN を入力します。

  9. 検証を有効にするを選択します。

  10. CloudWatch ログを有効にする を選択します

    この機能を有効にすると、データと Amazon CloudWatch ログを検証して AWS DMS レプリケーションインスタンスログを確認できます。

  11. 選択ルールで、以下を入力します。

    • スキーマに対して、スキーマの入力を選択します。

    • スキーマ名SYSADM を入力します。

    • テーブル名に対して、 % を入力します。

    • アクションには含めるを選択します。

  12. 変換ルールで、以下を入力します。

    • ターゲットに対して、テーブルを選択します。

    • スキーマ名に対して、スキーマの入力を選択します。

    • スキーマ名に SYSADM を入力します。

    • アクションには、名前を変更を選択します。

  13. [Create task] (タスクの作成) を選択します。

タスクを作成する後、CDC スタートモードで提供した SCN から Amazon RDS for Oracle データベースインスタンスに CDC を移行します。 CloudWatch ログを確認することで確認することもできます。

クラウド管理者、DBA
タスク説明必要なスキル

データ転送を検証します。

AWS DMS タスクが開始されたら、タスクページのテーブル統計タブをチェックして、データに加えられた変更を確認できます。

進行中のレプリケーションのステータスは、コンソールのデータベース移行タスクページでモニタリングできます。

詳細については、「 AWS DMS データの検証」 を参照してください。

クラウド管理者、DBA
タスク説明必要なスキル

レプリケーションを開始します。

レプリケーション手順を中止し、ソースアプリケーションサービスを停止します。

クラウド管理者、DBA

PeopleSoft 中間層を起動します。

AWS でターゲット PeopleSoft の中層アプリケーションを起動し、最近移行された Amazon RDS for Oracle データベースに転送します。

アプリケーションにアクセスすると、すべてのアプリケーション接続が Amazon RDS for Oracle データベースと確立されていることに気付くはずです。

DBA、 PeopleSoft 管理者

ソースデータベースをオフにします。

ソースデータベースへの接続がなくなったことを確認したら、オフにできます。

DBA

関連リソース

追加情報

Amazon S3 を使用してファイルを転送する

Amazon S3 にファイルを転送するには、AWS CLI 、mたは (CLI)、 Amazon S3 コンソールを使用できます。ファイルを Amazon S3 に転送したら、Amazon RDS for Oracle インスタンスを使用して Amazon S3 からデータポンプファイルをインポートできます。

代替方法として Amazon S3 統合を使用してダンプファイルを転送することを選択した場合は、次の手順を実行します。

  1. S3 バケットを作成する。

  2. Oracle データパンプを使用して、ソースデータベースからデータをエクスポートします。

  3. S3 バケットにデータパンプファイルをアップロードします。

  4. S3 バケットから、ターゲットの Amazon RDS for Oracle Database にデータポンプファイルをダウンロードします。

  5. Data Pump ファイルを使用してインポートを実行します。

注:S3 インスタンスと RDS インスタンス間で大きなデータファイルを転送するには、Amazon S3 Transfer Acceleration 特徴量を使用することをお勧めします。

補足ロギングを有効にする

継続的なレプリケーションのソースデータベースで「追加ロギング」 を有効にする警告メッセージが表示された場合、下記のステップを使用します。

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;