#はじめに
Oracle Autonomous Databaseで先日Cross-region Autonomous Data Guardができるようになったので、東京・大阪リージョン間で手動フェイルオーバーをやってみました。本記事ではOCI CLIを使用して行います。
Autonomous Data Guardの概要については、こちらの記事を参考にしてください。
#前提条件
-
ADBインスタンスが構成済みであること
-
OCI CLIが使用でき、コンパートメント内のリソース操作が可能であること
詳しいやり方はこちらの記事を参考にしてください。
#Autonomous Data Guardの有効化
OCIコンソールから有効化します。有効化する際にスタンバイADBを置くリージョンを選択できます。
プライマリADBが東京リージョンにある場合、スタンバイADBは東京・大阪・ソウルから選択可能です。
このうち、大阪・ソウルに置いた場合、Cross-Regionとなります。
今回はプライマリ:東京、スタンバイ:大阪で構成します。
プライマリADBである、ATPpriのAutonomous Data Guardを有効化すると、自動で大阪リージョンにATPpri_RemoteというADBインスタンスが作成されます。
#CLIを使った手動フェイルオーバー
まずはCLIから現在のコンパートメント内のリソースにアクセスできるか確認してみます。
oci db autonomous-database list
正しく設定されていれば、現在のコンパートメント内のADBの情報がJSON形式で出力されるはずです。
もし以下のようなエラーが出力されたら、APIに問題があると思われるので設定を見直すか、回避策としてインスタンスプリンシパルを使用してインスタンスからAPI/CLIを利用することを推奨します。
ServiceError:
{
"code": "NotAuthorizedOrNotFound",
"message": "Authorization failed or requested resource not found.",
"opc-request-id": "E3DB6EE9CCC84BD782C646D7CA52A516/52257E727158FDED7A9D592C796F0006/0501B025885EF0BFBAF0D90E5753DAAB",
"status": 404
}
CLIが正しく使用できることを確認したら、さっそく手動フェイルオーバーをしてみます。
フェイルオーバー自体は一つのコマンドで可能です。
oci db autonomous-database fail-over --autonomous-database-id <スタンバイADBのOCID> --peer-db-id <プライマリADBのOCID> --region <スタンバイADBのリージョン>
今回はプライマリ:東京、スタンバイ:大阪なので、regionパラメータはap-osaka-1になります。
実行すると、以下のようにスタンバイADBのステータスがロール変更進行中となります。
また作業リクエストに"Failover Autonomous Database"が追加されます。
データ量に依存しますが、数分程度でフェイルオーバーは完了します。
まずスタンバイADBであった大阪リージョンのADBインスタンスのロールがプライマリに変わります。
続いてプライマリADBであった東京リージョンのADBインスタンスのステータスがプロビジョニング中に変わります。
しばらく経つと東京リージョンのADBインスタンスが使用可能になり、ロールがスタンバイに変わります。
これでフェイルオーバー完了です。
なお、再度プライマリを東京に戻したい場合はスイッチオーバーをします。OCIコンソールからでも操作可能ですが、CLIでは以下のコマンドになります。
oci db autonomous-database switchover --autonomous-database-id <スタンバイADBのOCID> --peer-db-id <プライマリのOCID>
この際はregionパラメータは必要ありません。