AWS RDS for OracleからAutonomous Databaseへのゼロダウンタイム移行を実現 (2021/09/01)
AWS RDS for OracleからAutonomous Databaseへのゼロダウンタイム移行を実現 (2021/09/01)
https://database-heartbeat.com/2021/09/01/rds-adb-zdm/
はじめに
Zero Downtime Migration(ZDM)は、Oracle DatabaseをOracle Cloudに移行するための優れた自動化機能を提供します。Linuxベースのプラットフォームをサポートしていましたが、新しいバージョン21.2では、クロスプラットフォーム、さらにはクロスクラウドへの移行もサポートしています。
今回の機能強化により、Oracle Data Pumpをベースにしたオフライン論理移行方式で、AWS RDS for OracleからOracle Autonomous Databaseへの移行が可能になりました。
このブログ記事では、Oracle Cloud上でAWS RDS for OracleをOracle Autonomous Databaseに移行するためのステップバイステップの手順を紹介します。
環境について
- ZDMバージョン21.2をOracle Cloud上のコンピュートVMにインストール
- Oracle CloudのShared Infrastructure上のOracle Autonomous Database
- AWS RDSでOracle Databaseを利用
ZDMバージョン21.2のダウンロードとインストール
製品ページからZDMソフトウェアバージョン21.2をダウンロードし、このブログ記事で説明されているように、Linuxホストにインストールします。
AWS RDS Oracle Databaseの準備
ステップ1:RDS OracleインスタンスでSSL/TLSを有効にする
AWSのドキュメントに従って、SSL/TLSを使用してRDS Oracleデータベースへのセキュアな接続を有効にします。新しいオプショングループを作成し、そこにOracle SSLオプションを追加して、そのオプショングループをRDS Oracleインスタンスに関連付けました。
ステップ2:RDS OracleインスタンスのStreams Poolサイズを2GBに設定
RDS Oracleインスタンスに関連付けられたパラメータグループで、streams_pool_sizeを2GB(2147483648バイト)以上に設定します。
ステップ3: 安全なクライアント接続のためのSSL/TLSウォレットの作成
AWSのドキュメントに従って、SSL/TLS証明書を使用するようにアプリケーションを更新します。私の場合は、US East(Ohio)用の.pem形式の証明書バンドルをダウンロードしました。
次に、orapkiユーティリティーを使用してウォレットを作成し、この証明書を追加する必要があります。このウォレットは、ZDMがRDSのOracleインスタンスに接続する際に使用されます。
orapkiユーティリティーは、ZDMソフトウェアの一部で、ZDMホストの$ZDMHOME/bin/にあります。
# create wallet[zdmuser@zdmhost2 ~]$ $ZDMHOME/bin/orapki wallet create -wallet /home/zdmuser/ssl_wallet -auto_login_onlyOracle PKI Tool Release 21.0.0.0.0 - ProductionVersion 21.0.0.0.0Copyright (c) 2004, 2020, Oracle and/or its affiliates. All rights reserved.Operation is successfully completed.# add certificate[zdmuser@zdmhost2 ~]$ $ZDMHOME/bin/orapki wallet add -wallet /home/zdmuser/ssl_wallet -trusted_cert -cert /home/zdmuser/us-east-2-bundle.pem -auto_login_onlyOracle PKI Tool Release 21.0.0.0.0 - ProductionVersion 21.0.0.0.0Copyright (c) 2004, 2020, Oracle and/or its affiliates. All rights reserved.Operation is successfully completed.# display information[zdmuser@zdmhost2 ~]$ $ZDMHOME/bin/orapki wallet display -wallet /home/zdmuser/ssl_walletOracle PKI Tool Release 21.0.0.0.0 - ProductionVersion 21.0.0.0.0Copyright (c) 2004, 2020, Oracle and/or its affiliates. All rights reserved.Requested Certificates:User Certificates:Trusted Certificates:Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,ST=Washington,L=Seattle,C=US# list files[zdmuser@zdmhost2 ~]$ ls -l /home/zdmuser/ssl_wallettotal 4-rw-------. 1 zdmuser zdm 1333 Sep 1 12:56 cwallet.sso-rw-------. 1 zdmuser zdm 0 Sep 1 12:55 cwallet.sso.lckステップ4:RDSのOracle Databaseの接続情報を確認
接続性とセキュリティ」タブでインスタンスのエンドポイント(DNS名)を確認します。
ポート1521の代わりに、ステップ1で説明したポート2484を使用してSSL/TLS接続を行います。
[設定]タブでデータベースのサービス名と管理者のユーザー名を見つけます。
ZDMホストの準備
ステップ5:ポート2484の開放
ZDMホストでポート2484を開く必要がある場合は、ユーザーrootで行います。
[root@zdmhost2 ~]# firewall-cmd --zone=public --add-port=2484/tcp --permanent[root@zdmhost2 ~]# firewall-cmd --reload [root@zdmhost2 ~]# firewall-cmd --zone=dmz --add-port=2484/tcp --permanent ステップ6: ZDMのレスポンスファイルを作成
ZDMホスト上で新しいレスポンスファイルを作成します。ここでは、必要最小限のパラメータを使用した例を示します。zdmuserとして。
[zdmuser@zdmhost2 ~]$ vi /home/zdmuser/rds_logical_offline.rsp# migration methodMIGRATION_METHOD=OFFLINE_LOGICALDATATRANSFERMEDIUM=DBLINK# AWS RDS OracleSOURCEDATABASE_ENVIRONMENT_NAME=AMAZONSOURCEDATABASE_ENVIRONMENT_DBTYPE=RDS_ORACLESOURCEDATABASE_ADMINUSERNAME=adminSOURCEDATABASE_CONNECTIONDETAILS_HOST=rdsoracle.crgvhgax7zj8.us-east-2.rds.amazonaws.comSOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME=ORCLSOURCEDATABASE_CONNECTIONDETAILS_PORT=2484SOURCEDATABASE_CONNECTIONDETAILS_TLSDETAILS_DISTINGUISHEDNAME=C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=rdsoracle.crgvhgax7zj8.us-east-2.rds.amazonaws.comSOURCEDATABASE_CONNECTIONDETAILS_TLSDETAILS_CREDENTIALSLOCATION=/home/zdmuser/ssl_wallet# data pumpDATAPUMPSETTINGS_JOBMODE=SCHEMADATAPUMPSETTINGS_METADATAREMAPS-1=type:REMAP_TABLESPACE,oldValue:USERS,newValue:DATA# target dbTARGETDATABASE_OCID=ocid1.autonomousdatabase.oc1.eu-frankfurt-1...TARGETDATABASE_ADMINUSERNAME=ADMIN# oci cliOCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID=ocid1.user.oc1...OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID=ocid1.tenancy.oc1...OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT=9f:3b:55:...OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_PRIVATEKEYFILE=/home/zdmuser/.oci/oci_api_key.pemOCIAUTHENTICATIONDETAILS_REGIONID=eu-frankfurt-1簡単にするために、データ転送にはデータベースリンクを使用しました。また、代わりにAWSのS3バケットを使用することも可能です。その場合は、以下のパラメータが必要になります。
# instead of DATATRANSFERMEDIUM=DBLINKDATATRANSFERMEDIUM=AMAZONS3# additionallyDUMPTRANSFERDETAILS_S3BUCKET_NAME=DUMPTRANSFERDETAILS_S3BUCKET_REGION=DUMPTRANSFERDETAILS_S3BUCKET_ACCESSKEY=DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME=移行の評価と開始
ステップ7:移行の評価
ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$ $ZDMHOME/bin/zdmcli migrate database \-rsp /home/zdmuser/rds_logical_offline.rsp \-evalEnter source database administrative user "admin" password: <-- RDS Oracle passwordEnter target database administrative user "ADMIN" password: <-- Autonomous Database passwordOperation "zdmcli migrate database" scheduled with the job ID "20".ジョブのステータスを確認します。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$ while :; do $ZDMHOME/bin/zdmcli query job -jobid 20; sleep 10; doneCurrent status: EXECUTINGResult file path: "/home/zdmuser/zdmbase/chkbase/scheduled/job-21-2021-09-01-10:49:44.log"...ZDM_VALIDATE_SRC ...................... COMPLETEDZDM_VALIDATE_TGT ...................... STARTEDZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... PENDINGZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... PENDINGZDM_PREPARE_DATAPUMP_SRC .............. PENDINGステップ8: マイグレーションの開始
評価用の同じコマンドを実行しますが、今回は-evalパラメータを付けません。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$ $ZDMHOME/bin/zdmcli migrate database \-rsp /home/zdmuser/rds_logical_offline.rspEnter source database administrative user "admin" password: <-- RDS Oracle passwordEnter target database administrative user "ADMIN" password: <-- Autonomous Database passwordOperation "zdmcli migrate database" scheduled with the job ID "22".ジョブのステータスを確認します。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$ while :; do $ZDMHOME/bin/zdmcli query job -jobid 22; sleep 10; doneCurrent status: EXECUTINGResult file path: "/home/zdmuser/zdmbase/chkbase/scheduled/job-22-2021-09-01-10:53:14.log"...ZDM_VALIDATE_SRC ...................... COMPLETEDZDM_VALIDATE_TGT ...................... STARTEDZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... PENDINGZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... PENDINGZDM_PREPARE_DATAPUMP_SRC .............. PENDINGZDM_PREPARE_DATAPUMP_TGT .............. PENDINGZDM_DATAPUMP_IMPORT_TGT ............... PENDINGZDM_POST_DATAPUMP_SRC ................. PENDINGZDM_POST_DATAPUMP_TGT ................. PENDINGZDM_POST_ACTIONS ...................... PENDINGまとめ
設定に多少の手間をかけても、ワンクリックですべての手順が完了します。ZDMには、より柔軟にコントロールするために必要となる幅広いオプションが用意されています。利用可能なパラメータの完全なリストについては、ドキュメントを参照してください。
関連記事






コメント
コメントを投稿