Zero Data Loss Autonomous Recovery Service (ZRCV) を Exadata Cloud Service へ設定してみてみた

Oracle Database Zero Data Loss Autonomous Recovery Service は、Oracle Cloud Infrastructure（OCI）で実行するOracle Database向けのフル・マネージド型データ保護サービスです。独自の自動化機能が、Oracle Databaseの変更をリアルタイムで保護し、本番データベースのオーバーヘッドなしでバックアップを検証するほか、任意の時点への高速で予測可能なリカバリを実現します。
[主な長所](https://blogs.oracle.com/oracle4engineer/post/ja-introducing-recovery-service)は次のようなものがあります。

- **サイバー攻撃の影響を制限**:
リアルタイムのデータ保護によりOracle Databaseを継続的に保護し、任意の時点への迅速なデータベース・リカバリによりサイバー攻撃の影響を軽減します。
- **データ損失リスクを低減**: 
データベース・トランザクションを発生時に自動的に保護し、リカバリ・ポイント目標を15分～数時間から1秒未満に短縮します。
- **データ保護を一元管理**: 
Exadata、Autonomous Database および Base Database Servicesで実行されているすべてのデータベースのデータ保護を統合します。
- **データベース・サービスのCPU消費を最小化**: 
Recovery Serviceにオフロードすることで、バックアップおよびリカバリ・プロセスの本番データベース・サービスで使用するCPUリソースを低減します。

ということで、前回作成した [Exadata Cloud Service](https://qiita.com/shirok/items/1f7a10d254849a9fdddb)へ Zero Data Loss Autonomous Recovery Service (ZRCV)を設定してみてみます。

# ■ 構成概要
![構成図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c7d89711-5e44-b5ea-1ec6-930194316aad.png)
前回作成した [Exadata Cloud Service](https://qiita.com/shirok/items/1f7a10d254849a9fdddb) へ Zero Data Loss Autonomous Recovery Service (ZRCV)を設定します。


# ■ Autonomous Recovery(ZRCV)の設定
## ⚫︎ Service Limit設定
### 1) OCI コンソール
ナビゲーション・メニューで、[ガバンスと管理]をクリックし、[制限、割当ておよび使用状況]をクリック
![00_ServiceLimit01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/28cff998-5f89-5e3d-b62c-ad5fc5a0f521.jpeg)


### 2) Service Limit申請
次の Service Limit申請を行い必要な数の制限を上げます。

```
・Space Used for Recovery Window (GB): データベースの回復ウィンドウに必要なGB容量
・Protected Database Count: バックアップするDatabase数
```


![00_ServiceLimit02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/abb8d266-5be1-331b-cc2b-4319c86a32e1.png)


## ⚫︎ IAM ポリシー
[リカバリ・サービスおよび関連リソースへのアクセスを有効にするポリシー](https://docs.oracle.com/ja-jp/iaas/recovery-service/doc/recovery-service-permissions.html)を参考にサポートされているOCIデータベース・サービスでデータ保護にリカバリ・サービスを使用できるようにポリシー・ステートメントを作成します。 

**・ リカバリ・サービスの使用に必要なポリシー・ステートメント**
今回、VCN, Exadata, ZRCVを作成できるように コンパートメント管理者ポリシーを付与しています。


|ポリシー・ステートメント |作成場所 |説明 |
|---|---|---|
|Allow group <グループ名> to manage all-resources in compartment <コンパートメント>| | コンパートメント管理者ポリシー
|Allow service database to manage recovery-service-family in tenancy|Root Compartment | リカバリ・サービス(ZRCV)作成に必要なポリシー。OCI Databaseサービスは、 コンパートメント内の保護されたデータベース、保護ポリシーおよびリカバリ・サービス・サブネットにアクセスできます。 |
|Allow service database to manage tagnamespace in tenancy|Root Compartment | リカバリ・サービス(ZRCV)作成に必要なポリシー。OCI Databaseサービスでテナンシのタグ・ネームスペースにアクセスできます。|
|Allow service rcs to manage recovery-service-family in tenancy|Root Compartment | リカバリ・サービス(ZRCV)作成に必要なポリシー。リカバリ・サービスが、コンパートメント内の保護されたデータベース、リカバリ・サービス・サブネットおよび保護ポリシーにアクセスして管理できるようにします。 |
|Allow service rcs to manage virtual-network-family in tenancy|Root Compartment |	リカバリ・サービス(ZRCV)作成に必要なポリシー。リカバリ・サービスがコンパートメント内の各データベースVCN内のプライベート・サブネットにアクセスして管理できるようにします。|
|Allow group <グループ名> to manage recovery-service-family in tenancy|Root Compartment |	指定したグループのユーザーがすべてのリカバリ・サービス・リソースにアクセスできるようにします。|

**・ ポリシー画面**
リカバリ・サービスの使用に必要なポリシー・ステートメントは Root Compartment へ作成する必要があることに注意してください。

![00_IAMポリシー作成03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/84536df7-2d69-bd41-c61a-cb98c2968fb4.png)


## ⚫︎ サブネット・サイズ要件およびセキュリティ・ルール
データベースVCNに、データベースとリカバリ・サービス間のバックアップ・トラフィックを許可するように定義されたイングレス・ルールを含むセキュリティ・リストを含めます。セキュリティ・リストをリカバリ・サービスで使用されるプライベート・サブネットに関連付ける必要があります。 

**・リカバリ・サービスで使用されるプライベート・サブネットのサブネット・サイズ要件およびイングレス・ルール**
|イングレス・ルール |ソースCIDR | IPプロトコル | ソース・ポート範囲| 宛先ポート範囲 |
|---|---|---|---|---|
|ZRVからのHTTPSトラフィック許可|データベースが存在するVCNのCIDR |TCP |All |8005 |
|ZRVからのSQLNetトラフィック許可|データベースが存在するVCNのCIDR |TCP |All |2484 |

**・セキュリティ・リスト画面**
![00_セキュリティリスト設定01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/a955bdc1-32a3-e2d7-b049-10377ba75cc3.jpeg)

## ⚫︎ リカバリ・サービス・サブネットの登録
データベースVCNでリカバリ・サービスのプライベート・サブネットを作成した後、この手順を使用して、リカバリ・サービスにサブネットを登録します。
今回 Exadata Cloud Service の Backup-Subnet をリカバリ・サービス・サブネットへ設定します。
複数の Databasaeシステムがある場合は、専用のサブネットを作成しそこを共有のリカバリ・サービス・サブネットにすることを検討します。

### 1) OCIコンソール
ナビゲーション・メニューで、[Oracle Database]をクリックし、[データベース・バックアップ]を選択して[データベース・バックアップ]ページを表示し[リカバリ・サービス・サブネット]をクリック
![01_リカバリ・サービス・サブネット01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4825c484-453d-fea3-b0dc-c5e164a38414.jpeg)




### 2) リカバリ・サービス・サブネット画面
[リカバリ・サービス・サブネットの登録]をクリック
![01_リカバリ・サービス・サブネット02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/6bf4210a-98ae-4a25-fb4e-cacf5de1cd24.jpeg)



### 3) リカバリ・サービス・サブネットの登録画面
次の内容を入力し、[登録]をクリック

	・名前: フィールドに、リカバリ・サービス・サブネットの名前を入力
	・コンパートメント: フィールドで、リカバリ・サービス・サブネットを作成するコンパートメントを選択
	・仮想クラウド・ネットワーク: データベースVCNを選択
	・サブネット: データベースVCNのリカバリ・サービス操作に対して構成したプライベート・サブネットを選択。ここでは、ExadataのBackup-Subnetを選択

![01_リカバリ・サービス・サブネット03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4278da44-bac5-5476-eedd-e31cf21a7a58.jpeg)



# ⚫︎ 保護ポリシーの作成
保護ポリシーは、リカバリ・サービスによって作成されたバックアップを保持できる最大期間(日数)を決定します。ビジネス要件に基づいて、保護されているデータベースごとに個別のポリシーを割り当てるか、VCN内のすべての保護されているデータベースにまたがって単一のポリシーを使用できます。 


### 1) データベース・バックアップ画面
[データベース・バックアップ]画面の [保護ポリシー]をクリック
![00_ポリシー作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/8ce2b014-0147-e2aa-15ec-e33f7a7070f7.jpeg)


### 2) 保護ポリシーの作成画面
[保護ポリシーの作成]をクリックし、次の項目を入力し、[作成]をクリック

	・名前: ポリシーの名前を指定します。
	・コンパートメントに作成: 保護ポリシーを作成するコンパートメントを選択
	・バックアップ保持期間(日数): このポリシーを使用してバックアップを保持する最大日数を指定。最小14日と最大95日を指定できます。

![00_ポリシー作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/d722300a-1d05-0a39-537c-9b6eb253c39a.jpeg)

### 3) 保護ポリシーの作成完了
![00_ポリシー作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/44edecb6-2e82-4265-aea7-3c4989681552.jpeg)

### 4) 保護ポリシーの一覧
![00_ポリシー作成04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/60c46e8a-fc0b-f75c-39f4-8c5cf7d3e299.jpeg)

# ■ Exadata Cloud Service の作成
次を参考に Exadata Cloud Service を作成
[Oracle Exadata Cloud Infrastructure X9M を作成](https://qiita.com/shirok/items/1f7a10d254849a9fdddb)

https://qiita.com/shirok/items/1f7a10d254849a9fdddb


# ■ Exadata Cloud Service への Autonomous Recovery(ZRCV)設定
コンソールを使用して、データベースに対して自動増分バックアップの有効化、オンデマンドでのフル・バックアップの作成、管理されたバックアップのリストの表示を行うことができます。

## ⚫︎ Autonomous Recovery(ZRCV)設定

### 1) OCIコンソール
ナビゲーション・メニューを開きます。「Oracle Database」をクリックし、「Oracle Public Cloud上のExadata」をクリックします。 
![04_自動バックアップ00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/96f029de-3807-af0d-2e1b-9a2a80545b89.jpeg)



### 2) データベース詳細画面
構成するデータベースを含むクラウドVMクラスタまたはDBシステムに移動し、[自動バックアップの構成]をクリック
![04_自動バックアップ01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/60050fc3-6d01-05b0-daa6-a825e8744dca.jpeg)



### 3) 自動バックアップの構成画面
以下項目を入力し、[変更の保存]をクリック

	・ 自動バックアップの有効化: 有効化するためにチェック
	・ バックアップの保存先: Autonomous Recovery(ZRCV)の [自動リカバリ・サービス]を選択
	・ 保護ポリシー: 事前設定された保持期間のポリシー、または、事前定義したカスタム・ポリシーを選択
	・ リアルタイム・データ保護: 有効化してREDO変更の継続的な転送によるデータ損失が削減され、0に近いリカバリ・ポイント目標(RPO)が提供されます。これは追加料金オプションです。 
	・ データベース終了後の削除オプション: データベースの終了後に保護されたデータベース・バックアップを保持するために使用できるオプション。データベースに偶発的または悪意のある障害が発生した場合にバックアップからデータベースをリストアする場合にも役立ちます。 
	・ 日次バックアップのスケジュール時間(UTC): 増分バックアップが開始される時間ウィンドウを指定します。 
	・ 最初のバックアップをすぐに作成します: 最初の完全バックアップを延期することを選択した場合、データベース障害が発生してもデータベースがリカバリできない可能性があります。

![04_自動バックアップ02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/c9285346-07cb-6aa9-0bf8-af442e6a5c32.jpeg)



### 4) バックアップ中
![01_リカバリ・サービス・サブネット09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/4cc2d344-f800-24ac-ed7b-b7a4300f4951.jpeg)


### 5) 構成と初期バックアップ完了
リアルタイム・データ保護: 有効　になっていると データ損失の危険性の項目は 0秒になります。
![01_リカバリ・サービス・サブネット10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ea9b669c-4576-f573-3715-8b7711cec3c6.jpeg)




### 6) データベース・バックアップ画面
[データベース・バックアップ]画面にある[保護されたデータベース]をクリックし、Autonomous Recoveryで保護されているデータベース一覧を確認
![04_自動バックアップ04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/24da2850-8350-bc0c-2358-06580c59ef9e.jpeg)

### 7) 保護されたデータベースの詳細画面
データベース・バックアップ画面にある対象のデータベースをクリックすると詳細情報を確認できます。
ZRCVの領域使用量に必要な要素な次のようなものがあります。
```
	1) データベースのサイズ: 保護されたデータベースのサイズ
	2) 週次仮想フルバックアップ: ZRCVのデータ保持期間の週数分のフルバックアップのサイズ
	3) Redoログサイズ: 随時出力される Redoサイズ
	4) 日次増分バックアップ: 日次増分バックアップの日数分のサイズ
```

詳細情報画面では、領域使用量やデータ損失の危険性メトリックなど確認できます。
![04_自動バックアップ05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bc75845e-75b2-1b8c-880f-1f6c5256859a.jpeg)




# ■ 設定の確認
## ⚫︎ Database log_archive_dest_2,3 パラメータ確認
Zero Data Loss Autonomous Recovery Service (ZRCV) 用のパラメータ log_archive_dest_2,3 が 設定されます。

### 1) log_archive_dest_2 パラメータ確認
```
[oracle@exadb-node1 ~]$ sqlplus / as sysdba

	SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 10 22:37:54 2023
	Version 19.19.0.0.0

	Copyright (c) 1982, 2022, Oracle.  All rights reserved.


	Connected to:
	Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
	Version 19.19.0.0.0


SQL> show parameter log_archive_dest_2

	NAME				     TYPE	 VALUE
	------------------------------------ ----------- ------------------------------
	log_archive_dest_2		     string	 SERVICE=dbrs_primary VALID_FOR
							=(ONLINE_LOGFILE,ALL_ROLES) EN
							CRYPTION=ENABLE ASYNC NOAFFIRM
							DB_UNIQUE_NAME=dbrs_primary g
							roup=1 priority=1 net_timeout=
							8 max_failure=1
```

### 2) log_archive_dest_3 パラメータ確認
```
SQL> show parameter log_archive_dest_3

	NAME				     TYPE	 VALUE
	------------------------------------ ----------- ------------------------------
	log_archive_dest_3		     string	 SERVICE=dbrs_alternate VALID_F
							OR=(ONLINE_LOGFILE,ALL_ROLES)
							ENCRYPTION=ENABLE ASYNC NOAFFI
							RM DB_UNIQUE_NAME=dbrs_alterna
							te group=1 priority=2 net_time
							out=8 max_failure=0
```


## ⚫︎ 初期化パラメータ確認
リアルタイム・データ保護有効(ZRCV)の場合、無効(RCV)と比べると次のパラメータが追加設定されていることを確認できます。
```
SQL> create pfile='/tmp/cdb_zrcv.txt' from spfile;

SQL> host cat /tmp/cdb_zrcv.txt
	・・・
	*.log_archive_config='DG_CONFIG=(dbrs_alternate,dbrs_primary)'
	*.log_archive_dest_2='SERVICE=dbrs_primary VALID_FOR=(ONLINE_LOGFILE,ALL_ROLES) ENCRYPTION=ENABLE ASYNC NOAFFIRM DB_UNIQUE_NAME=dbrs_primary group=1 priority=1 net_timeout=8 max_failure=1'
	*.log_archive_dest_3='SERVICE=dbrs_alternate VALID_FOR=(ONLINE_LOGFILE,ALL_ROLES) ENCRYPTION=ENABLE ASYNC NOAFFIRM DB_UNIQUE_NAME=dbrs_alternate group=1 priority=2 net_timeout=8 max_failure=0'
	・・・
	*.log_archive_dest_state_2='ENABLE'
	*.log_archive_dest_state_3='ENABLE'
	・・・
	*.redo_transport_user='AWZCZAZUGIB9KWAZMSVNOWM7'
	・・・
```


## ⚫︎ RMAN CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT 確認
Autonomous Recovery Service用の DEVICE TYPE 'SBT_TAPE' FORMAT が設定されます。

```
[oracle@exadb-node1 ~]$ rman target /

	Recovery Manager: Release 19.0.0.0.0 - Production on Mon Jul 10 22:43:01 2023
	Version 19.19.0.0.0

	Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

	connected to target database: CDB (DBID=2257856443)

RMAN> show all;

	using target database control file instead of recovery catalog
	RMAN configuration parameters for database with db_unique_name CDB_X4F_NRT are:
	CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
	CONFIGURE BACKUP OPTIMIZATION OFF;
	CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
	CONFIGURE CONTROLFILE AUTOBACKUP ON;
	CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
	CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
	CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
	CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
	CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
	CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
	CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
	CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
	CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT   '%d_%I_%U_%T_%t' PARMS  "SBT_LIBRARY=/var/opt/oracle/dbaas_acfs/CDB/dbrs/libra.so, ENV=(RA_WALLET='location=file:/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps credential_alias=dbrs', RA_FORMAT=TRUE)";
	CONFIGURE MAXSETSIZE TO UNLIMITED; # default
	CONFIGURE ENCRYPTION FOR DATABASE ON;
	CONFIGURE ENCRYPTION ALGORITHM 'AES256';
	CONFIGURE COMPRESSION ALGORITHM 'low' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
	CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
	CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
	CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECOC1/CDB_x4f_nrt/controlfile/snapcf_CDB.f';
```

## ⚫︎ 自動 Archived Redo Log バックアップ確認
bkup_api bkup_archlogs APIで 続的なアーカイブ REDO ログのバックアップと削除 (最低頻度は 30分ごと)するようにcrontab へ自動登録されます。
```
[root@node1 ~]# cat /etc/crontab
	SHELL=/bin/bash
	PATH=/sbin:/bin:/usr/sbin:/usr/bin
	MAILTO=root
	# For details see man 4 crontabs
	# Example of job definition:
	# .---------------- minute (0 - 59)
	# |  .------------- hour (0 - 23)
	# |  |  .---------- day of month (1 - 31)
	# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
	# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
	# |  |  |  |  |
	# *  *  *  *  * user-name  command to be executed
	15 * * * * oracle /var/opt/oracle/dbaascli/dbaascli tde backup --alldb
	15 * * * * oracle /var/opt/oracle/misc/backup_db_wallets.pl
	0 */12 * * * oracle /var/opt/oracle/cleandb/cleandblogs.pl
	0 04 * * * grid /var/opt/oracle/cleandb/cleandblogs.pl
	22,52 * * * * oracle /var/opt/oracle/bkup_api/bkup_api bkup_archlogs --cron --dbname=CDB
```

# ⚫︎ tnsnames.ora確認
デフォルト TNS_ADMIN の tnsnames.ora  ($ORACLE_HOME/network/admin/tnsnames.ora) には、IFILEのtnsnames.oraへ ZRCVのパラメータが設定されています。

### 1) $ORACLE_HOME/network/admin/tnsnames.ora 確認
```
[oracle@exadb-node1 admin]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
	・・・
	IFILE=/var/opt/oracle/dbaas_acfs/CDB/dbrs/tnsnames.ora
```

### 2) IFILE 確認
ここに Autonomous Recovery Service用の DBRS 接続記述子TNS名が設定されています。
```
[oracle@exadb-node1 admin]$ cat /var/opt/oracle/dbaas_acfs/CDB/dbrs/tnsnames.ora
DBRS=
  (DESCRIPTION_LIST =
    (LOAD_BALANCE = off)
    (FAILOVER = on)
    (DESCRIPTION =
      (FAILOVER = on)
      (CONNECT_TIMEOUT = 3)
      (RETRY_COUNT = 3)
      (TRANSPORT_CONNECT_TIMEOUT = 3)
      (ADDRESS_LIST =
        (LOAD_BALANCE = on)
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
      )
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = ZRCV_ENJQJYQUOETDX3GYLRF4MI9NWRQEJDOY)
      )
      (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))
    )
    (DESCRIPTION =
      (FAILOVER = on)
      (CONNECT_TIMEOUT = 3)
      (RETRY_COUNT = 3)
      (TRANSPORT_CONNECT_TIMEOUT = 3)
      (ADDRESS_LIST =
        (LOAD_BALANCE = on)
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
      )
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = ZRCV_MEAI8IBIFME9VYLVE02UAUUOYSGEOOO)
      )
      (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))
    )
  )
DBRS_PRIMARY=
  (DESCRIPTION =
    (FAILOVER = on)
    (CONNECT_TIMEOUT = 3)
    (RETRY_COUNT = 3)
    (TRANSPORT_CONNECT_TIMEOUT = 3)
    (ADDRESS_LIST =
      (LOAD_BALANCE = on)
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ZRCV_ENJQJYQUOETDX3GYLRF4MI9NWRQEJDOY)
    )
    (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))
  )
DBRS_ALTERNATE=
  (DESCRIPTION =
    (FAILOVER = on)
    (CONNECT_TIMEOUT = 3)
    (RETRY_COUNT = 3)
    (TRANSPORT_CONNECT_TIMEOUT = 3)
    (ADDRESS_LIST =
      (LOAD_BALANCE = on)
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
        (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ZRCV_MEAI8IBIFME9VYLVE02UAUUOYSGEOOO)
    )
    (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))
  )
```

### 3) tnsping確認
Zero Data Loss Autonomous Recovery Service (ZRCV) の TNS名 DBRS へ tnsping できることを確認

```
[oracle@exadb-node1 ~]$ tnsping DBRS

	TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 10-JUL-2023 22:52:45

	Copyright (c) 1997, 2023, Oracle.  All rights reserved.

	Used parameter files:
	/u02/app/oracle/product/19.0.0.0/dbhome_1/network/admin/CDB/sqlnet.ora


	Used TNSNAMES adapter to resolve the alias
	Attempting to contact (DESCRIPTION_LIST = (LOAD_BALANCE = off) (FAILOVER = on) (DESCRIPTION = (FAILOVER = on) (CONNECT_TIMEOUT = 3) (RETRY_COUNT = 3) (TRANSPORT_CONNECT_TIMEOUT = 3) (ADDRESS_LIST = (LOAD_BALANCE = on) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484)) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484)) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp002-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ZRCV_ENJQJYQUOETDX3GYLRF4MI9NWRQEJDOY)) (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))) (DESCRIPTION = (FAILOVER = on) (CONNECT_TIMEOUT = 3) (RETRY_COUNT = 3) (TRANSPORT_CONNECT_TIMEOUT = 3) (ADDRESS_LIST = (LOAD_BALANCE = on) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-1.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484)) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-2.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484)) (ADDRESS = (PROTOCOL = TCPS)(HOST = ranrtp004-3.rs.br.ap-tokyo-1.oci.oraclecloud.com)(PORT = 2484))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ZRCV_MEAI8IBIFME9VYLVE02UAUUOYSGEOOO)) (SECURITY=(MY_WALLET_DIRECTORY=/var/opt/oracle/dbaas_acfs/CDB/wallet_root/server_seps))))
	OK (50 msec)
```


# ⚫︎ Autonomous Recovery Service エンドポイント確認

### 1) VCN プライベート・ゾーン確認
[ネットワーキング] > [DNS管理] > [ゾーン] > [プライベート・ゾーン]画面へ遷移します。
プライベート・ゾーンには、プライベートIPアドレスなど、VCN内からのみアクセス可能なDNSデータが含まれています。
Autonomous Recovery Service の ゾーン(ranrtp00?-?.rs.br.ap-tokyo-1.oci.oraclecloud.com)が ここに次の6つ登録されていることを確認できます。
![05_プライベート・ゾーン確認02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/bc1f1654-0529-81c3-7afc-3ec3bee9aa74.png)


### 2) Autonomous Recovery Service用レコード確認
RRSetは、ドメインとタイプが同一のDNSレコードのコレクションです。
ranrtp002-1.rs.br.ap-tokyo-1.oci.oraclecloud.com　レコード を確認してみると 10.0.2.64 であることがわかります。
![05_プライベート・ゾーン確認04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/28d7fe5a-8fb8-5a45-49ae-8f03c92d4793.jpeg)


# ■ Backup確認
## ⚫︎ RMAN確認
RMANリポジトリに格納されているバックアップを[LISTコマンド](https://docs.oracle.com/cd/F19136_01/rcmrf/LIST.html#GUID-2BAB704C-A3C9-4F76-8D96-4BD961FBEF2E)で表示

```
[oracle@exadb-htvcd1 ~]$ rman target /

	Recovery Manager: Release 19.0.0.0.0 - Production on Thu Jul 13 11:23:29 2023
	Version 19.19.0.0.0

	Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

	connected to target database: CDB (DBID=2257856443)

RMAN> LIST BACKUP SUMMARY;


	List of Backups
	===============
	Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
	------- -- -- - ----------- --------------- ------- ------- ---------- ---
	2       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	3       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	4       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	5       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	6       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	7       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	8       B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	9       B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	10      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	11      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	12      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	13      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	14      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	15      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	16      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	17      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	18      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	19      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	20      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	21      B  0  A SBT_TAPE    10-JUL-23       1       1       NO         DBTREGULAR-L01688947576867LFS
	22      B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS
	23      B  A  A SBT_TAPE    10-JUL-23       1       1       YES        DBTREGULAR-L01688947576867LFS

RMAN> LIST BACKUP;

    ・・・

```


## ⚫︎ RMANレポート・メッセージ確認
[V$RMAN_OUTPUT](https://docs.oracle.com/cd/F19136_01/refrn/V-RMAN_OUTPUT.html#GUID-CF7FAA72-F42F-4BF5-B436-F053DCB1EBCE)で、RMANがレポートしたメッセージを示します。
```
SQL> select RECID, STAMP, OUTPUT from V$RMAN_OUTPUT;

    ・・・

```





# ■ Exadata Databaseのリストア・リカバリ

コンソールを使用して、コンソールを使用して作成されたバックアップ保存先のバックアップからデータベースをリストアできます。


### 1) Database画面
リストアするDatabasae画面へ遷移し、[リストア]をクリック
![11_リストア02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ba6d5a68-74b1-ea9e-923d-1a609c309036.jpeg)


### 2) リストア画面
次のいずれかのオプションを選択し、「データベースのリストア」をクリックします:

	・ 最新にリストア: データベースを、データ損失の可能性が最も低い、最後に確認された良好な状態にリストアします。
	・ タイムスタンプにリストア: 指定したタイムスタンプにデータベースをリストアします。
	・ システム変更番号(SCN)にリストア: 指定したSCNを使用してデータベースをリストアします。このSCNは有効である必要があります。 

**・タイムスタンプにリストア**
分単位でUTC時刻指定してリストアできます。
![11_リストア03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/6cbed7e2-fe1a-326e-6905-d7d6074f45c9.png)


**・SCNにリストア**
システム変更番号(SCN)にリカバリします。
時刻からSCNへ計算するには、TIMESTAMP_TO_SCN関数でタイムスタンプに関連付けられたおおよそのシステム変更番号 (SCN) を返します。

```
SQL> SELECT TIMESTAMP_TO_SCN(TO_TIMESTAMP('2023-07-12 09:00:00','YYYY-MM-DD HH24:MI:SS')) as SCN FROM DUAL;

		SCN
	----------
	29791695
```

![11_リカバリ02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/5a4a1abf-3105-2ac2-a982-485608689094.png)


# ■ 参考
　・ [Zero Data Loss Autonomous Recovery Service概要](https://www.oracle.com/jp/database/zero-data-loss-autonomous-recovery-service/)
　・ [Oracle Database Zero Data Loss Autonomous Recovery Serviceの紹介](https://blogs.oracle.com/oracle4engineer/post/ja-introducing-recovery-service)
　・ [データベースの自律リカバリ](https://docs.oracle.com/ja-jp/iaas/recovery-service/index.html)
　・ [リカバリ・サービスへのバックアップの失敗のトラブルシューティング](https://docs.oracle.com/ja-jp/iaas/recovery-service/doc/troubleshooting1.html)
　・ [Oracle Exadata Database Service on Dedicated Infrastructureでのデータベースのバックアップおよびリカバリの管理](https://docs.oracle.com/ja-jp/iaas/exadatacloud/exacs/ecs-managing-db-backup-and-recovery.html#GUID-B5B822F1-0BA3-403B-B101-D6BDBA49FA4E)
　・ [リカバリ・サービスおよび関連リソースへのアクセスを有効にするポリシー](https://docs.oracle.com/ja-jp/iaas/recovery-service/doc/recovery-service-permissions.html)
　・ [データベースのバックアップおよびリカバリの管理](https://docs.oracle.com/ja-jp/iaas/exadatacloud/exacs/ecs-managing-db-backup-and-recovery.html)
　・ [SQL言語リファレンス: TIMESTAMP_TO_SCN](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/TIMESTAMP_TO_SCN.html#GUID-58796E1A-9943-4966-96E6-78B636BD2859)
　・ [Zero Data Loss Autonomous Recovery Serviceの価格](https://www.oracle.com/jp/database/zero-data-loss-autonomous-recovery-service/pricing/)