OCI Full Stack Disaster RecoveryでOracle DatabaseのDR計画を作成して切り替えてみた

# はじめに
Oracle Cloud World 2022で発表があったOCIリージョン間の切り替えが実行できるOCI Full Stack Disaster Recoveryが一般提供を開始したのでこのサービスからDR計画を作成してOracle Databaseのスイッチオーバーを実行してみたいと思います。

# 目次
1.[OCI Full Stack Disaster Recoveryとはなにか](https://qiita.com/ogacloud/items/c6156d56ce23883a6177#1oci-full-stack-disaster-recovery%E3%81%A8%E3%81%AF%E3%81%AA%E3%81%AB%E3%81%8B)
2.[今回実行するDR構成](https://qiita.com/ogacloud/items/c6156d56ce23883a6177#2%E4%BB%8A%E5%9B%9E%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8Bdr%E6%A7%8B%E6%88%90)
3.[DR計画の作成](https://qiita.com/ogacloud/items/c6156d56ce23883a6177#3dr%E8%A8%88%E7%94%BB%E3%81%AE%E4%BD%9C%E6%88%90)
4.[実行結果の確認](https://qiita.com/ogacloud/items/c6156d56ce23883a6177#4%E5%AE%9F%E8%A1%8C%E7%B5%90%E6%9E%9C%E3%81%AE%E7%A2%BA%E8%AA%8D)
5.[参考ドキュメントと手順](https://qiita.com/ogacloud/items/c6156d56ce23883a6177#5%E5%8F%82%E8%80%83%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A8%E6%89%8B%E9%A0%86)

# 1.OCI Full Stack Disaster Recoveryとはなにか
OCI Full Stack Disaster Recovery ServiceはOCIリージョン間のインフラストラクチャ、プラットフォーム、アプリケーションの移行をワンクリックで管理できるソリューションになります。専用の管理サーバーや変換サーバーを必要とせずに、既存のインフラストラクチャ、データベースまたはアプリケーションを再設計または再デプロイすることなく、ディザスタ・リカバリ（DR）環境をデプロイできます。
基本的な手順としては下記図のようにOCIコンポーネントをグループ化→OCIコンポーネントのDR Planを作成→DR Planを実行→結果の確認で行います。このソリューションによりこれまで手動で１つ１つやっていたData Guardやアプリケーションの切り替えがボタン１つで事前のDR Plan通りに実行されるため、切り替えを迅速に行うことができます。
![Full DR概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/12871d8e-a5e7-3473-c6bf-847e0364a007.png)
参考:[20221124_Tech_Night_61_OCW_Feedback.pdf](https://speakerdeck.com/oracle4engineer/20221124-tech-night-61-ocw-feedback?slide=30)




また2023年3月に東京/大阪リージョンが利用可能となり、現在は多くのリージョンでペア構成が可能となっています。
[フル・スタック・ディザスタ・リカバリを使用できるのはどこか]
(https://docs.oracle.com/ja-jp/iaas/disaster-recovery/doc/disaster-recovery-usage.html)


# 2.今回実行するDR構成
今回の構成は下記となります。コンポーネントはアプリケーション、DB、その他Infrastructureで別れます。その中でOracle Database(Autonomous Database)部分のDR Plan計画を作成し切り替えを実行します。
![DR構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/7947d175-1e32-c988-8b84-fd94c9d5fbb6.png)
参考:[20221124_Tech_Night_61_OCW_Feedback.pdf](https://speakerdeck.com/oracle4engineer/20221124-tech-night-61-ocw-feedback?slide=34)


今回事前に用意したリソースは下記です。
■Autonomous Database Transaction Processing(Autonomous Data Guard設定済み)
参考作成手順1:[ADBインスタンスを作成してみよう](https://oracle-japan.github.io/ocitutorials/database/adb101-provisioning/)
参考作成手順２:[Autonomous Data Guardを構成してみよう](https://oracle-japan.github.io/ocitutorials/database/adb212-audg/)
■Object Storage Bucket(DR実行ログ保存用にUS East,US Westで1つずつ)
参考作成手順:[オブジェクト・ストレージを使う](https://oracle-japan.github.io/ocitutorials/beginners/object-storage/)

また、実行後の結果が分かるように事前作成したAutonmous Databaseの状態を確認しておきます。
[データベース・アクション]からSQL実行画面に移動します。
![DR手順１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/db2c5bf3-0845-31da-7c07-1a49cb681ebf.png)


下記SQL文を入力します。
```
SELECT 
DBID, NAME, DB_UNIQUE_NAME
FROM 
V$DATABASE;
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/64510526-14fe-8d49-a1b3-fc5625440eb2.png)
DBID、NAME、DB_UNIQUE_NAMEが確認できました。DR計画実行でスタンバイに切り替わって変化するのでSQLの出力結果をメモ帳などにメモしておきましょう。

# 3.DR計画の作成
DBの確認が終わったらDR計画を作成するのに必要なDR保護グループを作成します。
リージョンをUS Eastに変えホームメニューから[移行とディザスタ・リカバリ]→[DR保護グループ]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/8b98ff7d-03c5-a629-1a0d-ee54896248f1.png)

[DR保護グループの作成]→情報を入力→[作成]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/9127f5c4-f47b-8b47-5f83-b9127cacb632.png)

US WestでもDRグループを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/e622fd32-4a41-9e80-b013-e8759ca32758.png)



DR保護グループが作成されたのを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/54149386-7cb3-cafb-9390-0e55a5bebf7a.png)

US Westで作成されたのを確認します。US Eastに切り替え作成した[DR保護グループ]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/1ea89fbc-0184-6350-6d94-286b2407b95e.png)

[関連付け]→必要事項の入力→[関連付け]でプライマリ(US East)とスタンバイ(US West)のDR保護グループを関連付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/8d5c3943-01b3-f032-9d11-e166f09911be.png)

US EastとUS Westの関連付けでDR保護グループにロール、ピアDR保護グループ、ピアリージョンが表示されたのを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/d1d69c67-825f-2ef8-f1d4-80654113251b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/802ababc-68fe-68da-edb4-9aef90070f98.png)

US Eastに切り替え[メンバー]→[メンバーの追加]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/60eef611-6440-0827-efa5-1a1ee378c662.png)

下記図を参考にDR対象である事前作成したAutonomous Databaseを追加し[追加]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/117a238a-8947-ff92-c89e-a95ba853a403.png)

US Westでも同様にスタンバイのAutonmous Databaseを追加し[追加]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/5f2dc11d-c950-92c1-b14a-0cbd281db783.png)

US EastとUS WestでAutonomous DBがメンバー(対象リソース)に表示されたのを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/0b351d72-0d16-87c7-560c-57a27a110c34.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/cf1fdaaf-8180-e4fd-cdbc-527dfaabda63.png)

DRスタンバイ側(US West)で[計画]→[計画の作成]→必要事項を選択→[作成]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/a9416985-5080-de51-5482-40c8b7f44aee.png)


計画が作成されたのを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/27f4dd3f-4759-728a-d386-ed9216a1dffd.png)

作成された計画を選択しDR計画内容を確認します(この時にステップの追加やDR時の切り替え順序の変更ができます)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/114ddeda-13be-8d0a-bef6-f6ba99a7b45d.png)

実際のDR計画の実行で切り替えが失敗しないためにスタンバイ側のDR計画で[事前チェックの実行]→[計画実行名]を入力→[事前チェックの実行]を実施して問題がないことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/59a5819f-11ee-1ccf-3c74-eed4fee148f1.png)
今回はDatabaseのみなので50秒ほどで事前チェックが終了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/a400a079-63a9-066d-3b5e-10bf94cdb68c.png)



最後にDR保護グループの詳細に戻り[計画の実行]→[DR計画の実行]→[詳細事項を入力]→[DR計画の実行]でDR PlanとStepに基づいたリージョン間の切り替えを開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/56224ce6-ac8c-1322-020e-f1e97dc6f61b.png)
進捗状況は各Stepごとにログを表示でき確認することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/c1deb5b9-39c2-b743-da66-026be1e60f6d.png)

Autonmous DatabaseのData Guard切り替えにかかった時間は10分ほどでした。(OCI上のData Guard表記が更新中から切り替わりに反映されるまでさらに10分かかったので終了までは合計20分です)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/8a4ef23d-6889-85df-b01c-0f7a976d0bea.png)

# 4.実行結果の確認

最後にOCI上からAutonomus Databaseの状態を確認します。
プライマリのUS East側がスタンバイになり、スタンバイだったUS West側がプライマリになりました。
切り替わったAutonmous Databaseを確認するため[データベース・アクション]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/7ba93578-6060-9272-1e94-353746515bc5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/9f8c96ea-b4e6-f9c6-91ee-ba85add007d9.png)

事前準備と同様のSQL文を記載します。
```
SELECT 
DBID, NAME, DB_UNIQUE_NAME
FROM 
V$DATABASE;
```
DBID, NAME, DB_UNIQUE_NAMEが変わったところを確認できました。
これでOracle DatabaseのDRの完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172788/f7922946-a755-a43b-6ae6-1a6906ccc9ca.png)

# 5.参考ドキュメントと手順
[OCI Full Stack Disaster Recovery 製品ページ](https://www.oracle.com/jp/cloud/full-stack-disaster-recovery/)
[Oracle Cloud World 2022 フィードバック(OCI Full Stack Disaster Recovery)](https://speakerdeck.com/oracle4engineer/20221124-tech-night-61-ocw-feedback?slide=27)
[OCI Full Stack Disaster Recovery 概要と作成手順](https://docs.oracle.com/en-us/iaas/disaster-recovery/index.html)
[OCI Full Stack Disaster Recovery APIリファレンスとエンドポイント](https://docs.oracle.com/en-us/iaas/api/index.html#/en/disaster-recovery/20220125/DrPlanExecution/ListDrPlanExecutions)