Oracle Autonomous Database (ADB)では、Autonomous Data Guardと呼ばれる機能を使用して、スタンバイ(ピア)データベースを有効にし、Autonomous Databaseインスタンスにデータ保護およびディザスタ・リカバリを提供します。
ADB は、Oracle Database の Multitenantアーキテクチャと Oracle Data Guard 機能を組み合わせて利用することで、自動化された高い可用性と回復力を可能な限り提供します。
ということで、東京-大阪間で Cross-Region Autonomous Data Guard を 構成してみてみます。
■ 構成
■ 事前準備
On-Premises の ADB Client が 東京と大阪の ADB へ FQDN でアクセスできるように Remote Peering, Private DNS, Service Gateway,Route Table, Security List, Network Security Group, VPN 等を設定しておきます
● Remote Peering と VPN接続 設定
・DRGで東京リージョンを経由して、オンプレミスと 大阪リージョンを接続してみてみた
・Oracle Cloud: リージョン間を Remote VCN Peering してみてみた
● Private DNS 設定
・Oracle Cloud: オンプレミスとOCIをVPN接続してPrivate DNSで名前解決してみてみた
・Private DNSで PeeringしたVCNどうしホスト名(FQDN)で通信できるようにしてみてみた
■ Autonomous Database 作成
前提条件などDocumentを参考に設定
・Autonomous Database: プライベート・エンドポイントを使用するAutonomous Database
・プライベート・エンドポイントで必要なネットワークの前提条件
-
Autonomous Databaseの作成画面
以下内容を設定し、[Autonomous Database の作成]をクリック・表示名: 任意の名前を設定
・データベース名: 任意の名前を設定 *英字と数字のみを含めて、英字で始める必要があります。最大14文字です。
・ワークロード・タイプの選択: 任意の任意の名前を設定を設定
・デプロイメント・タイプの選択: [共有インフラストラクチャ]を選択
・データベース・バージョンの選択: 任意のバージョンを設定
・OCPU 数: 任意のOCPU数を設定
・自動スケーリング: 任意に設定
・ストレージ(TB): 必要なストレージ容量を設定
・ユーザー名: ADMIN
・パスワード: ADMINパスワードを設定
・アクセスタイプ: ここではVCN内に配置するため[仮想クラウド・ネットワーク]を設定
・ライセンス・タイプ: ライセンスBOYLでは無い場合は、[ライセンス込み]を設定
・暗号化キー: 顧客管理キーを別途使用する場合は、[顧客管理キーを使用した暗号化]を選択
■ Autonomous Data Guard有効化
-
Autonomous Data Guard 画面
リソース欄 > Autonomous Data Guardを選択し、[スタンバイ・データベースの追加]をクリック
-
スタンバイ・データベースの追加
以下内容を設定し、[Autonomous Database の作成]をクリック・リージョン: Standby Databaseのリーションを千駄kジュ
・コンパートメントの選択: Standby Databaseのコンパートメントを選択
・仮想クラウド・ネットワーク: Standby DatabaseのVCNを選択
・サブネット: Standby Database の Subnet を選択
・ホスト名接頭辞: 任意の名前を設定
・ネットワーク・セキュリティ・グループ(NSG): Standby Database のNSGを選択
-
スタンバイ・データベース追加完了
Cross-Region Standby を有効にすると、リモートリージョンに作成されたスタンバイデータベースの表示名はプライマリデータベースと同じになり、拡張子は「_Remote」になります。 「リソース」の下の[Autonomous Data Guard]をクリックすると、「Peer Autonomous Database」列の下に、スタンバイ・データベースの表示名とスタンバイ・データベースへのリンクが表示されます。
-
スタンバイ・データベース追加時間確認
リソース > [作業リクエスト]クリックから、Enable Autonomous Data Guardをクリック
■ Autonomous Database への Clientアクセス
● Download the Client Credentials
Autonomous Databaseに接続するための資格証明のzipファイルを作成したDatabase画面からダウンロードします
-
Autonomous Database画面
OCIコンソールから、作成したAutonomous Database画面にある [DB接続]をクリック
-
クライアント資格証明(ウォレット)のダウンロード画面
[ウォレットのダウンロード]ボタンをクリックして、Client Credentialsをダウンロード
● Client PC設定
- 環境変数設定
export ORACLE_HOME=/home/opc/oracle/instantclient_19_3
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME
- ダウンロードしたライアント資格証明(ウォレット)ZIPファイル配置
$TNS_ADMINディレクトリへZIPファイル配置して回答
[user@onp-inst01 ~]$ cd $ORACLE_HOME/netwok/admin
[user@onp-inst01 admin]$ ls -l
total 128
-rw-r--r--@ 1 shiro staff 3074 9 19 14:18 README
-rw-rw-rw-@ 1 shiro staff 21677 9 19 23:18 Wallet_adb01.zip
-rw-r--r--@ 1 shiro staff 6701 9 19 14:18 cwallet.sso
-rw-r--r--@ 1 shiro staff 6656 9 19 14:18 ewallet.p12
-rw-r--r--@ 1 shiro staff 3190 9 19 14:18 keystore.jks
-rw-r--r--@ 1 shiro staff 691 9 19 14:18 ojdbc.properties
-rw-r--r--@ 1 shiro staff 133 9 19 23:49 sqlnet.ora
-rw-r--r--@ 1 shiro staff 2326 9 19 14:18 tnsnames.ora
-rw-r--r--@ 1 shiro staff 3378 9 19 14:18 truststore.jks
- tnsnames.ora確認
description項目が2つあり、東京ADBへ接続できなかった場合大阪ADBへ接続できるよう以下東京と大阪の ADB へ接続する記述がされています。
東京用: adbtokyo.adb.ap-tokyo-1.oraclecloud.com
大阪用: adbosaka.adb.ap-osaka-1.oraclecloud.com
[user@onp-inst01 admin]$ cat tnsnames.ora
adb01_high = (description_list= (failover=on) (load_balance=off)
(description= (retry_count=15)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adbtokyo.adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_adb01_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.ap-tokyo-1.oraclecloud.com, OU=Oracle ADB TOKYO, O=Oracle Corporation, L=Redwood City, ST=California, C=US")))
(description= (retry_count=15)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adbosaka.adb.ap-osaka-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_adb01_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.ap-osaka-1.oraclecloud.com, OU=Oracle ADB OSAKA, O=Oracle Corporation, L=Redwood City, ST=California, C=US"))))
● Client PC の DNS 設定
Clientが東京と大阪のADBへFQDN接続できるようOCI Private DNSを使用するように設定
-
DNS設定確認: ADB 東京と大阪 名前解決確認
On-Premises から 東京と大阪のADBのFQDNでアクセスできることを確認
・On-Premises -> Tokyo 名前解決確認
[user@onp-inst01 ~]$ nslookup adbtokyo.adb.ap-tokyo-1.oraclecloud.com
Server: 10.10.0.251
Address: 10.10.0.251#53
Name: adbtokyo.adb.ap-tokyo-1.oraclecloud.com
Address: 10.10.0.19
・On-Premises -> Osaka 名前解決確認
[user@onp-inst01 ~]$ nslookup adbosaka.adb.ap-osaka-1.oraclecloud.com
Server: 10.10.0.251
Address: 10.10.0.251#53
Name: adbosaka.adb.ap-osaka-1.oraclecloud.com
Address: 10.20.0.19
● Client 接続確認
[user@onp-inst01 ~]$ sqlplus admin/password@adb01_high
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 20 00:21:29 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Mon Sep 20 2021 00:17:42 +09:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.1.0
■ Switchover
● スタンバイ Autonomous Database 画面
● スタンバイへのスイッチオーバーの確認画面
● スイッチオーバー中
● スイッチオーバー完了画面
- Autonomous Data Guardロール項目: ロールがプライマリへ変更されたことを確認
- Autonomous Data Guard欄: ピア・Autonomous Databaseのロールがスタンバイへ変更されたことを確認
■ Failover
・Autonomous Data Guardがローカル・スタンバイ・データベースに自動的にフェイルオーバーできない場合、ローカル・スタンバイ・データベースが使用可能な場合は、手動フェイルオーバーを実行してローカル・スタンバイ・データベースをプライマリ・データベースにすることができます。
・リージョン間のスタンバイが使用可能な場合は、スイッチオーバーを実行して、リージョン間のスタンバイ・データベースをプライマリ・データベースにし、スイッチオーバーが失敗した場合、リージョン間のスタンバイへの手動フェイルオーバーを開始できます。
・プライマリ・データベースが使用できず、ローカル・スタンバイが使用可能なときに次の画面が出現し、「フェイルオーバー」をクリックして手動フェイルオーバーを実行できます。
・フェイルオーバー後、元プライマリのADBは自動回復されスタンバイとして機能します。
・今回の検証では、プライマリ側に障害を発生させることができなかったため、コマンドでフェイルオーバーを実行します。
● Cloud Shell実行
OCIコンソール上部にあるCloud ShellアイコンをクリックするとCloud Shellが出現し、OCI CLIコマンドを実行できるようになります。
● Failover実行
Cloud Shell上へ次のコマンドを実行して、フェイルオーバーを実行
・コマンド
oci db autonomous-database fail-over \
--peer-db-id <Primary ADB の OCID> \
--autonomous-database-id <Standby ADB の OCID> \
--region <Standby ADB の Region>
・実行例
poc@cloudshell:~ (ap-tokyo-1)$ oci db autonomous-database fail-over \
--peer-db-id ocid1.autonomousdatabase.oc1.ap-tokyo-1.anxhiljrssl65iqap75sj \
--autonomous-database-id ocid1.autonomousdatabase.oc1.ap-osaka-1.anvwsljrssl \
--region ap-osaka-1
● プライマリ・ロール変更中
スタンバイ・ロールの大阪リージョンを選択し、ライフサイクル状態がロール変更進行中あることを確認
● プライマリ・ロール変更完了
Autonomous Data Guardロール項目: ロールがプライマリへ変更されたことを確認
作業リクエストをクリックし、状態が”成功”になったことを確認
● 元プライマリADB: 回復中画面
元プライマリ(スタンバイ・ロール)のリージョンを選択し、ライフサイクル状態がプロビジョニング中あることを確認
● 元プライマリADB: 回復完了
■ 参考
● Blog
・Autonomous Data Guard : 数クリックでクラウド上でのデータ保護構成を実現
● マニュアル
・障害時リカバリでのAutonomous Databaseでのスタンバイ・データベースの使用
・スタンバイ・データベースとの手動フェイルオーバー
・OCI CLI コマンドリファレンス