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_only
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (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_only
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (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_wallet
Oracle PKI Tool Release 21.0.0.0.0 - Production
Version 21.0.0.0.0
Copyright (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_wallet
total 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 method
MIGRATION_METHOD=OFFLINE_LOGICAL
DATATRANSFERMEDIUM=DBLINK
# AWS RDS Oracle
SOURCEDATABASE_ENVIRONMENT_NAME=AMAZON
SOURCEDATABASE_ENVIRONMENT_DBTYPE=RDS_ORACLE
SOURCEDATABASE_ADMINUSERNAME=admin
SOURCEDATABASE_CONNECTIONDETAILS_HOST=rdsoracle.crgvhgax7zj8.us-east-2.rds.amazonaws.com
SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME=ORCL
SOURCEDATABASE_CONNECTIONDETAILS_PORT=2484
SOURCEDATABASE_CONNECTIONDETAILS_TLSDETAILS_DISTINGUISHEDNAME=C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=rdsoracle.crgvhgax7zj8.us-east-2.rds.amazonaws.com
SOURCEDATABASE_CONNECTIONDETAILS_TLSDETAILS_CREDENTIALSLOCATION=
/home/zdmuser/ssl_wallet
# data pump
DATAPUMPSETTINGS_JOBMODE=SCHEMA
DATAPUMPSETTINGS_METADATAREMAPS-1=
type
:REMAP_TABLESPACE,oldValue:USERS,newValue:DATA
# target db
TARGETDATABASE_OCID=ocid1.autonomousdatabase.oc1.eu-frankfurt-1...
TARGETDATABASE_ADMINUSERNAME=ADMIN
# oci cli
OCIAUTHENTICATIONDETAILS_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
.pem
OCIAUTHENTICATIONDETAILS_REGIONID=eu-frankfurt-1
簡単にするために、データ転送にはデータベースリンクを使用しました。また、代わりにAWSのS3バケットを使用することも可能です。その場合は、以下のパラメータが必要になります。
# instead of DATATRANSFERMEDIUM=DBLINK
DATATRANSFERMEDIUM=AMAZONS3
# additionally
DUMPTRANSFERDETAILS_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 \
-
eval
Enter
source
database administrative user
"admin"
password: <-- RDS Oracle password
Enter target database administrative user
"ADMIN"
password: <-- Autonomous Database password
Operation
"zdmcli migrate database"
scheduled with the job ID
"20"
.
ジョブのステータスを確認します。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$
while
:;
do
$ZDMHOME
/bin/zdmcli
query job -jobid 20;
sleep
10;
done
Current status: EXECUTING
Result
file
path:
"/home/zdmuser/zdmbase/chkbase/scheduled/job-21-2021-09-01-10:49:44.log"
...
ZDM_VALIDATE_SRC ...................... COMPLETED
ZDM_VALIDATE_TGT ...................... STARTED
ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... PENDING
ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... PENDING
ZDM_PREPARE_DATAPUMP_SRC .............. PENDING
ステップ8: マイグレーションの開始
評価用の同じコマンドを実行しますが、今回は-evalパラメータを付けません。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$ $ZDMHOME
/bin/zdmcli
migrate database \
-rsp
/home/zdmuser/rds_logical_offline
.rsp
Enter
source
database administrative user
"admin"
password: <-- RDS Oracle password
Enter target database administrative user
"ADMIN"
password: <-- Autonomous Database password
Operation
"zdmcli migrate database"
scheduled with the job ID
"22"
.
ジョブのステータスを確認します。ZDMホスト上で、zdmuserとして次の操作を行います。
[zdmuser@zdmhost2 ~]$
while
:;
do
$ZDMHOME
/bin/zdmcli
query job -jobid 22;
sleep
10;
done
Current status: EXECUTING
Result
file
path:
"/home/zdmuser/zdmbase/chkbase/scheduled/job-22-2021-09-01-10:53:14.log"
...
ZDM_VALIDATE_SRC ...................... COMPLETED
ZDM_VALIDATE_TGT ...................... STARTED
ZDM_VALIDATE_DATAPUMP_SETTINGS_SRC .... PENDING
ZDM_VALIDATE_DATAPUMP_SETTINGS_TGT .... PENDING
ZDM_PREPARE_DATAPUMP_SRC .............. PENDING
ZDM_PREPARE_DATAPUMP_TGT .............. PENDING
ZDM_DATAPUMP_IMPORT_TGT ............... PENDING
ZDM_POST_DATAPUMP_SRC ................. PENDING
ZDM_POST_DATAPUMP_TGT ................. PENDING
ZDM_POST_ACTIONS ...................... PENDING
まとめ
設定に多少の手間をかけても、ワンクリックですべての手順が完了します。ZDMには、より柔軟にコントロールするために必要となる幅広いオプションが用意されています。利用可能なパラメータの完全なリストについては、ドキュメントを参照してください。
関連記事
コメント
コメントを投稿