[Oracle Cloud] 東京と大阪のリージョンを使って、DR構成を検証してみた (RMANバックアップ構成)

# はじめに

Oracle Cloud Infrastructure (以下OCI) では最近のアップデートで、大阪リージョンが追加されました。東京リージョンと大阪リージョンで遠隔地バックアップが出来ようになったり、アクセス元に近いリージョンを選べるようになりました。

Oracle Cloud といえば、Oracle DB です。Oracle DB を 東京リージョンと大阪リージョンで高可用性の構成を取るには主に2つの選択肢があります。

- Data Guard 機能を使った、リアルタイム同期の構成
- RMAN バックアップ機能を使った、定期バックアップの構成



2つの選択肢は、災害対策の要件、具体的にはRPO(目標復旧時点) と RTO(目標復旧時間) がどれくらい許容されるかに応じてどちらを選ぶかを決めます。Data Guard を使うとリアルタイムに同期が出来るため、データ損失の危険性を限りなく低くすることが出来ます。その代わり、Oracle DB の Edition が Enterprise Edition 以上が必要だったり、スタンバイサイト側でも 常時 Oracle DB のインスタンスが必要なためコストが高くなります。
RMAN バックアップを使うと、定期的にバックアップを行う構成となるため、バックアップをしていない期間のデータ損失が発生するデメリットがあります。コスト面では、Standard Edition でも使えますし、スタンバイサイト側の Oracle DB を常時起動する必要が無いため、コスト削減のメリットがあります。

今回の記事では、選択肢2個目の RMAN バックアップを使った定期バックアップの構成を検証してみます。Oracle が提供している、Oracle Database Cloud Backup Module for OCI を使うことで、簡単にリージョン間の RMAN バックアップが出来るので、これを活用します。

# 概要図

![20200216150335.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/7fc95ea4-3f2d-2571-fcdf-c9f609bec83d.gif)



# OCI構成

- メインサイトは、東京リージョンの OCI DBCS (Database Cloud Service)
- OCI DBCS に、Oracle Database Cloud Backup Module for OCI をインストール して、大阪リージョンの Object Storage へ RMAN バックアップ
- 東京リージョンに大規模障害が発生した時を想定して、大阪リージョンの OCI DBCS へリストアを行う



# 事前作業

## 東京リージョン : OCI DBCS 作成

メインサイト想定の OCI DBCS を適当に作成します。以下はパラメータの例です。

- Name : tokyodb
- Edition : Standard Edition
- Version : 11.2.0.4
- Password : mIfoO8_fai12#-gai897fao
- IP address : 10.0.100.11



## 大阪リージョン : Object Storage のバケット作成

スタンバイサイト想定の大阪リージョンで、Object Storage のバケットを作成します。今回の記事では、`oracledb_backup`

![1581155424861.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/d6ea377f-918e-07ea-3184-964313d1b3af.png)





## IAM Policy

OCI の IAM に紐づく Policy が必要な場合があります。自分が使用している IAM ユーザーが、Administrators グループに所属している場合は IAM Policy の設定は不要です。Administrators 以外の場合は、以下の書式を参考にして設定をします。

```
Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
Allow group <group_name> to read buckets in compartment <compartment_name>
```



## IAM API Key

Oracle Database Cloud Backup Module for OCI を使うために、API Key の登録が必要です。適当にググって登録をします。今回の記事では、`oci_api_key.pem` が登録した API Key に紐づく秘密鍵です。東京リージョンの OCI DBCS へ、秘密鍵を格納します。

```
[oracle@tokyodb .oci]$ ls -la
total 16
drwxr-xr-x 2 oracle oinstall 4096 Feb  8 11:42 .
drwx------ 6 oracle oinstall 4096 Feb  8 11:42 ..
-rw------- 1 oracle oinstall 1679 Feb  8 11:30 oci_api_key.pem
-rw------- 1 oracle oinstall 1679 Feb  8 11:30 oci_api_key_public.pem
```



## テストデータを Insert

リージョン間コピーを確認するために、東京リージョンの OCI DBCS にテストデータを格納します。OCI DBCS のインスタンスに SSH ログインをして、oracle ユーザーにスイッチします

```
> ssh opc@10.0.100.11
Last login: Tue Feb 11 06:58:19 2020 from 10.0.0.3
[opc@tokyodb ~]$ sudo su - oracle
Last login: Tue Feb 11 11:27:46 UTC 2020
[oracle@tokyodb ~]$ 
```



SQL*Plus で Oracle DB に接続します

```
sqlplus / as sysdba
```



`sugi` ユーザーとスキーマを作成し、テストデータを Insert 出来るように設定します。

```
CREATE USER sugi IDENTIFIED BY mIfoO8_fai12#gai897faosugi;
GRANT CONNECT, RESOURCE TO sugi;
ALTER USER sugi quota unlimited on USERS;
```



SQL*Plus から一時的に抜けます

```
exit
```



`sugi` ユーザーで Oracle DB に接続します

```
sqlplus sugi/mIfoO8_fai12#gai897faosugi
```



テストデータ用の Table を作成します

```
CREATE TABLE EXAMPLES (
  ID INTEGER
 ,LABEL     VARCHAR2(100)  NOT NULL
 ,SCORE     NUMBER         NOT NULL
 ,RATE      NUMBER         NOT NULL
 ,BIRTHDAY  DATE           NOT NULL
 ,PRIMARY KEY (ID)
);
```



データを Insert します。5万行のデータが生成されます。

```
INSERT INTO EXAMPLES
    SELECT 
      ROWNUM
     ,DBMS_RANDOM.STRING('A', 100)
     ,FLOOR(DBMS_RANDOM.VALUE(1, 100000))
     ,DBMS_RANDOM.VALUE()
     ,TO_DATE('19000101','YYYYMMDD') + FLOOR(DBMS_RANDOM.VALUE(1, 365 * 120))
    FROM
      (select 0 from all_catalog where rownum <= 100)
     ,(select 0 from all_catalog where rownum <= 500)
;
```



SELECT で確認します。

```
SELECT * FROM EXAMPLES WHERE ROWNUM <= 10;
```



実行例

```
SQL> SELECT * FROM EXAMPLES WHERE ROWNUM <= 10;

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
       201
wtvQNLuNNwTKhUjEdtFDPzxuumnSocAzpWZczHQTwpywghqBqSZxlYurfiiCnuNDStnhbzXZjEzvhnwl
EMPaAuqVFIfnCeXOimeI
     63975  .26953323 15-SEP-62

       202
ZXYsSLqckvxdopEZYBTVedvoRrdDOBXLclHtMlTGBGJcsiwmkGzmKJPrOCvhNOoMhFXAbYfZIcxXMrbC

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
xdqZKmDqoDbZAITiLgcU
     12924 .543865413 06-OCT-27

       203
sixKXAquLflHYBrDVIyacgzHUJarTTnvgaAwLdxCTpixBzWEUeCwmbTMsXCqUeprGmDjfoFpxgXdfVLo
odoFvGHYyCngHmuabmhg
     78239 .553495011 10-MAR-05

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------

       204
SLaaSxfBgBqwQkwQForQmbAQZSFKUyFHzDPYsmJEztjwsjKfQdxTPdJsdflnvkJfEFVIWGUFhaMfKKvp
vCekbOzdiAMoWSjEyEFP
     79874 .594714669 03-JUL-84

       205

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
yDKzanFhZhPYXzIInGhxtYEJgfSvApgnzNdLPUgCQQkMVbsrFmCIOjuejduadlUZvtjmTpLEWSJOAwBl
RVEOYaSjqYlsFBcMJTzo
     32309 .064789972 20-FEB-11

       206
bEMXOfvQAyyoBMnIlRUfZrnQgmIDQzxNWhbcEVijpWauRpkxboeOIqMIrVbffteXgaRGhWsaovZrgYOI
bnSZqKVNCDIkONHVwsBz

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
     21979 .563180994 29-DEC-56

       207
PjEFpOaQSItEWDAljdarwjzwknbqsBnXKsXOFlmgLxMGSNsEaSswudUAXfvhQNodAQTcomRubmxOxsAL
FTnneHYiXTvWyaJMOgjG
      1027 .196482091 21-DEC-18


        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
       208
BFqLsWVLczjUvVMLYkPynNaHpThVxDAMKJyfAdkKXCQRUnUkyvhtOlGrYXgqZWYnIiAwzwWvmfPHBvro
OOOMoHEjgfVZAIyfkQNU
     70449 .830987466 30-APR-74

       209
laxBPgyfmlvCNdcWpNVVzFVbXwdcmmXZoLQbUFjVSbXmdlVVymjUqMHIXadBTWEbxLdhiMsIptIdrqwW

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
jMwczfhMmtdobowQmBUM
     96728 .264182347 24-SEP-68

       210
nfsxhCEeGnaeSBlnkFHVKApYbudqpEaJOFuKBjLSZUHGdZkArIqXzCCPaWoXGeoVsVoUlxGKZOcnaZZT
DUNoHdYpbjhIOzoSpvaO
     45219 .831185633 30-DEC-25

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------


10 rows selected.

SQL>
```





# 東京リージョン : RMAN バックアップ

## Module のインストール

次のサイトで公開している、Oracle Database Cloud Backup Module をダウンロードします
https://www.oracle.com/database/technologies/oracle-cloud-backup-downloads.html



oracle ユーザーで `opc_installer.zip` を格納するディレクトリを作成します。ここに適当にダウンロードして格納します。ディレクトリは好きな名前で大丈夫です。

```
mkdir /home/oracle/backupmodule
```



以下のディレクトリ構成となります。

```
[oracle@tokyodb backupmodule]$ pwd
/home/oracle/backupmodule
[oracle@tokyodb backupmodule]$ ls -la
total 1784
drwxr-xr-x 2 oracle oinstall    4096 Feb  8 11:02 .
drwx------ 5 oracle oinstall    4096 Feb  8 11:02 ..
-rwxrwxr-x 1 oracle oinstall 1816114 Feb  8 11:00 opc_installer.zip
[oracle@tokyodb backupmodule]$
```



zip を解凍します

```
[oracle@tokyodb backupmodule]$ unzip opc_installer.zip 
Archive:  opc_installer.zip
   creating: opc_installer/
  inflating: opc_installer/.DS_Store
   creating: __MACOSX/
   creating: __MACOSX/opc_installer/
  inflating: __MACOSX/opc_installer/._.DS_Store
   creating: opc_installer/oci_installer/
  inflating: opc_installer/oci_installer/oci_readme.txt
   creating: __MACOSX/opc_installer/oci_installer/
  inflating: __MACOSX/opc_installer/oci_installer/._oci_readme.txt
  inflating: opc_installer/oci_installer/oci_install.jar
  inflating: __MACOSX/opc_installer/oci_installer/._oci_install.jar
  inflating: __MACOSX/opc_installer/._oci_installer
  inflating: opc_installer/readme.txt
  inflating: __MACOSX/opc_installer/._readme.txt
   creating: opc_installer/opc_installer/
  inflating: opc_installer/opc_installer/opc_readme.txt
   creating: __MACOSX/opc_installer/opc_installer/
  inflating: __MACOSX/opc_installer/opc_installer/._opc_readme.txt
  inflating: opc_installer/opc_installer/opc_install.jar
  inflating: __MACOSX/opc_installer/opc_installer/._opc_install.jar
  inflating: __MACOSX/opc_installer/._opc_installer
  inflating: __MACOSX/._opc_installer
[oracle@tokyodb backupmodule]$
```



解凍したディレクトリへ移動します

```
cd /home/oracle/backupmodule/opc_installer/oci_installer
```



ディレクトリの内容を確認

```
[oracle@tokyodb oci_installer]$ pwd
/home/oracle/backupmodule/opc_installer/oci_installer
[oracle@tokyodb oci_installer]$ ls -al
total 976
drwx------ 2 oracle oinstall   4096 Oct 18 21:02 .
drwx------ 4 oracle oinstall   4096 Oct 18 20:59 ..
-rw-r--r-- 1 oracle oinstall 971147 Oct 17 02:30 oci_install.jar
-rw-r--r-- 1 oracle oinstall  15204 Oct 18 21:02 oci_readme.txt
[oracle@tokyodb oci_installer]$
```



Backup Module を Install します。パラメータの詳細は、次のURLに記載されています。

```
java -jar /home/oracle/backupmodule/opc_installer/oci_installer/oci_install.jar \
-host https://objectstorage.ap-osaka-1.oraclecloud.com \
-pvtKeyFile /home/oracle/.oci/oci_api_key.pem \
-pubFingerPrint f9:fc:91:6a:66:ea:55:51:78:1a:9b:74:a8:8b:26:e2 \
-uOCID ocid1.user.oc1..yourid \
-tOCID ocid1.tenancy.oc1..yourid  \
-cOCID ocid1.compartment.oc1..yourid  \
-walletDir $ORACLE_HOME/dbs/opc_wallet \
-libDir $ORACLE_HOME/lib \
-bucket oracledb_backup
```



実行例

```
[oracle@tokyodb oci_installer]$ java -jar oci_install.jar \
> -host https://objectstorage.ap-osaka-1.oraclecloud.com \
> -pvtKeyFile /home/oracle/.oci/oci_api_key.pem \
> -pubFingerPrint f9:fc:91:6a:66:ea:55:51:78:1a:9b:74:a8:8b:26:e2 \
> -uOCID ocid1.user.oc1..yourid \
> -tOCID ocid1.tenancy.oc1..yourid \
> -cOCID ocid1.compartment.oc1..yourid \
> -walletDir $ORACLE_HOME/dbs/opc_wallet \
> -libDir $ORACLE_HOME/lib \
> -bucket oracledb_backup
Oracle Database Cloud Backup Module Install Tool, build 19.3.0.0.0DBBKPCSBP_2019-10-16
Oracle Database Cloud Backup Module credentials are valid.
Backups would be sent to bucket oracledb_backup.
Oracle Database Cloud Backup Module wallet created in directory /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet.
Oracle Database Cloud Backup Module initialization file /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora created.
Downloading Oracle Database Cloud Backup Module Software Library from Oracle Cloud Infrastructure.
Download complete.
[oracle@tokyodb oci_installer]$ 
```



Insall をすると、次の3種類のファイルが自動生成されます。
自動生成1 : wallet ファイル

```
[oracle@tokyodb opc_wallet]$ pwd
/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet
[oracle@tokyodb opc_wallet]$
[oracle@tokyodb opc_wallet]$ ls -la
total 12
drwxr-xr-x 2 oracle oinstall 4096 Feb  8 11:49 .
drwxr-xr-x 3 oracle oinstall 4096 Feb  8 11:49 ..
-rw------- 1 oracle oinstall 3445 Feb  8 11:49 cwallet.sso
-rw------- 1 oracle oinstall    0 Feb  8 11:49 cwallet.sso.lck
[oracle@tokyodb opc_wallet]$
```



自動生成2 : Oracle Database Backup Cloud ServiceコンテナのURLと資格証明ウォレットの場所が含まれる構成ファイル

```
[oracle@tokyodb dbs]$ cat /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora 
OPC_HOST=https://objectstorage.ap-osaka-1.oraclecloud.com/n/orasejapan
OPC_WALLET='LOCATION=file:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet CREDENTIAL_ALIAS=alias_oci'
OPC_CONTAINER=oracledb_backup
OPC_COMPARTMENT_ID=ocid1.compartment.oc1..yourid
OPC_AUTH_SCHEME=BMC
[oracle@tokyodb dbs]$
```



自動生成3 : ライブラリファイル

```
[oracle@tokyodb lib]$ ls -la /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so 
-rw-r--r-- 1 oracle oinstall 93446792 Feb  8 11:49 /u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so
[oracle@tokyodb lib]$
```





## RMAN Config の変更

Oracle Database Cloud Backup Module を使ったバックアップは、Oracle DB のバックアップ機能 RMAN を介して利用します。RMAN で定義するバックアップ先の Device を、Oracle Database Cloud Backup Module を使うことで Object Storage へ設定が出来ます。

RMAN接続

```
rman target /
```



実行例

```
[oracle@tokyodb ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Tue Feb 11 11:54:47 2020

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

connected to target database: OSAKADB (DBID=2892303731)

RMAN>
```



OCI DBCS を作成した直後の、RMAN の設定値を確認します

```
show all; 
```



実行例

```
RMAN> show all; 

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name TOKYODB_NRT195 are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET PARALLELISM 1;
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT   '%d_%I_%U_%T_%t' PARMS  'SBT_LIBRARY=/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs/libopc.so ENV=(OPC_PFILE=/opt/oracle/dcs/commonstore/objectstore/opc_pfile/2385503094/opc_tokyodb_nrt195.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF;
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/TOKYODB_NRT195/controlfile/snapcf_tokyodb_nrt195.f';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/tokyodb_nrt195/controlfile/snapcf_tokyodb_nrt195.f';

RMAN> 
```



Oracle Database Cloud Backup Module を使って、RMAN バックアップ先のデバイスを指定します。Module を Insall したときに自動生成されたライブラリと、構成ファイルのパスを指定します。環境に合わせて適宜変更して指定します。

```
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';
```



実行例

```
RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';

using target database control file instead of recovery catalog
old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT   '%d_%I_%U_%T_%t' PARMS  'SBT_LIBRARY=/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs/libopc.so ENV=(OPC_PFILE=/opt/oracle/dcs/commonstore/objectstore/opc_pfile/2385503094/opc_tokyodb_nrt195.ora)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';
new RMAN configuration parameters are successfully stored

RMAN> 
```



memo : 間違って設定したときに削除するコマンド

```
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' CLEAR;
```



Default の Backup デバイスを設定します

```
CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
```



実行例

```
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;

new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored

RMAN> 
```



バックアップ最適化機能を有効にします。すでにファイルがバックアップされている場合、BACKUPコマンドで同一ファイルのバックアップがスキップされます。

```
CONFIGURE BACKUP OPTIMIZATION ON;
```



実行例

```
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

old RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION OFF;
new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored

RMAN> 
```



CONTROLFILE (制御ファイル) を RMAN のバックアップに含める設定をします。

```
CONFIGURE CONTROLFILE AUTOBACKUP ON;
```



実行例

```
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

old RMAN configuration parameters:  
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:  
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN> 
```



制御ファイルのバックアップ名のフォーマットを指定します。指定可能なセマンティクスは、次のURLに書かれています。
https://docs.oracle.com/cd/E16338_01/backup.112/b56270/rcmsubcl010.htm#i82206

```
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
```



実行例

```
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
new RMAN configuration parameters are successfully stored

RMAN> 
```



RMAN バックアップが暗号化されるように設定

```
CONFIGURE ENCRYPTION FOR DATABASE ON;
```



実行例

```
RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;

old RMAN configuration parameters:    
CONFIGURE ENCRYPTION FOR DATABASE OFF;
new RMAN configuration parameters:
CONFIGURE ENCRYPTION FOR DATABASE ON;
new RMAN configuration parameters are successfully stored

RMAN> 
```



設定後の RMAN の CONFIGURE を全て確認します

```
RMAN> show all;

RMAN configuration parameters for database with db_unique_name TOKYODB_NRT195 are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET PARALLELISM 1;
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/TOKYODB_NRT195/controlfile/snapcf_tokyodb_nrt195.f';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/tokyodb_nrt195/controlfile/snapcf_tokyodb_nrt195.f';

RMAN> 
```





## Backupの実行

RMAN CONFIGURE で 暗号化の設定をしましたが、念のため set コマンドでも暗号化の設定するように指定します。set コマンドは、RMAN を接続したときのセッションの間だけで一時的に設定されます。永続的な設定をしたい場合は、前述の CONFIGURE を使用します。

```
set encryption on;
```



大阪の Object Storage を出力先にして、データファイルとアーカイブログのバックアップを行います。増分バックアップを行いたいため、 LEVEL 0 を指定しています。

```
BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;
```



実行例

```
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;


Starting backup at 08-FEB-20
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=27 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1
skipping archived logs of thread 1 from sequence 1 to 7; already backed up
channel ORA_SBT_TAPE_1: starting compressed archived log backup set
channel ORA_SBT_TAPE_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=8 STAMP=1031833045
channel ORA_SBT_TAPE_1: starting piece 1 at 08-FEB-20
channel ORA_SBT_TAPE_1: finished piece 1 at 08-FEB-20
piece handle=0muo11em_1_1 tag=TAG20200208T121726 comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:03
Finished backup at 08-FEB-20

Starting backup at 08-FEB-20
using channel ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: starting compressed incremental level 0 datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/tokyodb_nrt195/datafile/system.261.1031823525
input datafile file number=00002 name=+DATA/tokyodb_nrt195/datafile/sysaux.262.1031823525
input datafile file number=00003 name=+DATA/tokyodb_nrt195/datafile/undotbs1.263.1031823525
input datafile file number=00004 name=+DATA/tokyodb_nrt195/datafile/users.266.1031823967
channel ORA_SBT_TAPE_1: starting piece 1 at 08-FEB-20
channel ORA_SBT_TAPE_1: finished piece 1 at 08-FEB-20
piece handle=0nuo11ep_1_1 tag=TAG20200208T121729 comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:25
Finished backup at 08-FEB-20

Starting backup at 08-FEB-20
current log archived
using channel ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: starting compressed archived log backup set
channel ORA_SBT_TAPE_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=9 RECID=9 STAMP=1031833074
channel ORA_SBT_TAPE_1: starting piece 1 at 08-FEB-20
channel ORA_SBT_TAPE_1: finished piece 1 at 08-FEB-20
piece handle=0ouo11fj_1_1 tag=TAG20200208T121754 comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:03
Finished backup at 08-FEB-20

Starting Control File and SPFILE Autobackup at 08-FEB-20
piece handle=c-2385503094-20200208-03 comment=API Version 2.0,MMS Version 19.0.0.1
Finished Control File and SPFILE Autobackup at 08-FEB-20

RMAN> 
```



バックアップの一覧を確認します

```
list backup;
```



実行例

`BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;` を実行すると、BE KEY が 22, 23, 24, 25 が増えた。

```
RMAN> list backup;


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1       Full    512.00K    SBT_TAPE    00:00:02     08-FEB-20
        BP Key: 1   Status: AVAILABLE  Compressed: YES  Tag: AUTO
        Handle: auto_cf_TOKYODB_2385503094_01uo0pm8_1_1_20200208_1031825096_set1   Media: swiftobjectstorage.a..ud.com/v1/dbbackupnrt/b4fcPDInwgUHIebBiaoa
  Control File Included: Ckp SCN: 690109       Ckp time: 08-FEB-20

~~~~~~~~~ 省略 ~~~~~~~~~~~

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
22      256.00K    SBT_TAPE    00:00:01     08-FEB-20
        BP Key: 24   Status: AVAILABLE  Compressed: YES  Tag: TAG20200208T235451
        Handle: 0uuo2aac_1_1   Media: objectstorage.ap-osaka-..ecloud.com/n/orasejapan/oracledb_backup

  List of Archived Logs in backup set 22
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    13      717557     08-FEB-20 717624     08-FEB-20

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
23      Incr 0  153.25M    SBT_TAPE    00:00:24     08-FEB-20
        BP Key: 25   Status: AVAILABLE  Compressed: YES  Tag: TAG20200208T235455
        Handle: 0vuo2aaf_1_1   Media: objectstorage.ap-osaka-..ecloud.com/n/orasejapan/oracledb_backup
  List of Datafiles in backup set 23
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1    0  Incr 717633     08-FEB-20 +DATA/tokyodb_nrt195/datafile/system.261.1031823525
  2    0  Incr 717633     08-FEB-20 +DATA/tokyodb_nrt195/datafile/sysaux.262.1031823525
  3    0  Incr 717633     08-FEB-20 +DATA/tokyodb_nrt195/datafile/undotbs1.263.1031823525
  4    0  Incr 717633     08-FEB-20 +DATA/tokyodb_nrt195/datafile/users.266.1031823967

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
24      256.00K    SBT_TAPE    00:00:01     08-FEB-20
        BP Key: 26   Status: AVAILABLE  Compressed: YES  Tag: TAG20200208T235521
        Handle: 10uo2ab9_1_1   Media: objectstorage.ap-osaka-..ecloud.com/n/orasejapan/oracledb_backup

  List of Archived Logs in backup set 24
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    14      717624     08-FEB-20 717646     08-FEB-20

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
25      Full    9.50M      SBT_TAPE    00:00:02     08-FEB-20
        BP Key: 27   Status: AVAILABLE  Compressed: NO  Tag: TAG20200208T235524
        Handle: c-2385503094-20200208-04   Media: objectstorage.ap-osaka-..ecloud.com/n/orasejapan/oracledb_backup
  SPFILE Included: Modification time: 08-FEB-20
  SPFILE db_unique_name: TOKYODB_NRT195
  Control File Included: Ckp SCN: 717655       Ckp time: 08-FEB-20

RMAN> 
```



大阪リージョンの Object Storage を確認すると、バックアップで生成されたファイルを確認できます

![1581206875195.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/a69d5bf6-4fdb-7675-2ca6-f84011fc9223.png)



## 必要なデータの収集

ここまでの手順で、大阪リージョンの Object Storage へバックアップが出来ました。大阪リージョンの OCI DBCS へリストアするために、必要なデータが5個あります。

- Oracle DB の SID
- Oracle DB の DBID
- Oracle Database Cloud Backup Module の Wallet ファイル
- 透過的データベース暗号化(Transparent Data Encryption(TDE)) の Wallet ファイル
- srvctl で自動再起動の設定値



上記5つのデータを、リストアをするために保管が必要です。任意の場所に保管して大丈夫ですが、一番良いのは 大阪側のObject Storageだと思います。
東京側の大規模災害時にも使えるデータストアは、東京以外のリージョンで用意するのが妥当と考えています。



- Oracle DB の SID

東京の OCI DBCS へ SQL*Plus  で接続して、SID を確認します。最下部の INSTANCE_NAME `tokyodb` が SIDです。この文字列を txt ファイル化して、大阪側の Object Storage に保存する方法が考えられます。

```
[oracle@tokyodb ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Feb 9 02:51:30 2020

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


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
tokyodb

SQL>
```



- Oracle DB の ORACLE_UNQNAME

最下部の db_unique_name`tokyodb_nrt195` が ORACLE_UNQNAME です。この文字列を txt ファイル化して、大阪側の Object Storage に保存する方法が考えられます。

```
SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      tokyodb_nrt195
SQL>
```





- Oracle DB の DBID

東京の OCI DBCS へ SQL*Plus  で接続して、DBID を確認します。最下部の INSTANCE_NAME `2385503094` が DBID です。この文字列を txt ファイル化して、大阪側の Object Storage に保存する方法が考えられます。

```
SQL> SELECT DBID,NAME,DB_UNIQUE_NAME,CURRENT_SCN,LOG_MODE FROM V$DATABASE;

      DBID NAME      DB_UNIQUE_NAME                 CURRENT_SCN LOG_MODE
---------- --------- ------------------------------ ----------- ------------
2385503094 TOKYODB   tokyodb_nrt195                      722601 ARCHIVELOG

SQL>
```



- Oracle Database Cloud Backup Module の Wallet ファイル

Oracle Database Cloud Backup Module を Install したときに自動生成された Wallet ファイルが、以下のディレクトリに生成されています。`cwallet.sso` ファイルのバックアップが必要です。

```
[oracle@tokyodb opc_wallet]$ pwd
/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet
[oracle@tokyodb opc_wallet]$
[oracle@tokyodb opc_wallet]$ ls -la
total 12
drwxr-xr-x 2 oracle oinstall 4096 Feb  8 11:49 .
drwxr-xr-x 3 oracle oinstall 4096 Feb  8 11:49 ..
-rw------- 1 oracle oinstall 3445 Feb  8 11:49 cwallet.sso
-rw------- 1 oracle oinstall    0 Feb  8 11:49 cwallet.sso.lck
[oracle@tokyodb opc_wallet]$
```





- 透過的データベース暗号化(Transparent Data Encryption(TDE)) の Wallet ファイル

透過的データベース暗号化のための Wallet ファイルが必要です。RMAN バックアップは、この Wallet ファイルを使用して暗号化されているので、大阪側で複合化する時にも必要なファイルです。
sqlnet.ora の設定値を確認して、Wallet ファイルの格納先を確認します。

```
less /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/sqlnet.ora
```



`/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME` が格納先です

```
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
```



格納先を確認すると、`cwallet.sso` と `ewallet.p12` の2個のファイルが格納されています。この2個のファイルのバックアップを行います。

```
[oracle@tokyodb tokyodb_nrt195]$ ls -la /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195/
total 112
drwx------ 2 oracle oinstall 20480 Feb  8 09:45 .
drwx------ 3 oracle oinstall 20480 Feb  8 09:45 ..
-rw------- 1 oracle oinstall  2917 Feb  8 09:45 cwallet.sso
-rw------- 1 oracle asmadmin  2840 Feb  8 09:45 ewallet.p12
[oracle@tokyodb tokyodb_nrt195]$
```



memo : Object Storage の Pre-Auth URL を使って、Upload するコマンド

```
curl -X PUT \
'https://objectstorage.ap-osaka-1.oraclecloud.com/p/<your URL>/n/<tenancyname>/b/oracledb_backup/o/' \
--upload-file /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195/ewallet.p12
```



- srvctl で自動再起動の設定値

OCI DBCS は、srvctl で自動起動の設定がされています。大阪側の OCI DBCS で再起動を設定するために、東京側の設定値を控えておきます。



東京側 Default の config list を確認します。`tokyodb_nrt195` が config の名前です。

```
[oracle@tokyodb ~]$ srvctl config database
tokyodb_nrt195
[oracle@tokyodb ~]$ 
```



config `tokyodb_nrt195` の detail を確認します。

```
[oracle@tokyodb ~]$ srvctl config database -d tokyodb_nrt195
Database unique name: tokyodb_nrt195
Database name: tokyodb
Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Spfile: +DATA/tokyodb_nrt195/spfiletokyodb.ora
Domain: privsubnet01.vcn.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: tokyodb_nrt195
Database instance: tokyodb
Disk Groups: DATA,RECO
Mount point paths: 
Services: 
Type: SINGLE
Database is administrator managed
[oracle@tokyodb ~]$ 
```



東京側の Server Pool の設定値を確認します。Server Pool とは、Clusterware 配下のサーバーを管理する論理的なグループです。Single Instance ですが、Clusterware 配下で管理されているため確認をします。

```
srvctl status srvpool -a
```



実行例

```
[oracle@tokyodb ~]$ srvctl status srvpool -a
Server pool name: Free
Active servers count: 0
Active server names:
Server pool name: Generic
Active servers count: 1
Active server names: tokyodb
NAME=tokyodb STATE=ONLINE
[oracle@tokyodb ~]$ 
```



東京側の環境変数を確認します

```
[oracle@tokyodb ~]$ srvctl getenv database -d tokyodb_nrt195
tokyodb_nrt195:
ORACLE_UNQNAME=tokyodb_nrt195
TZ=UTC
[oracle@tokyodb ~]$ 
```







# RMAN の自動バックアップ設定

これまでの手順で、RMAN のバックアップが出来ました。バックアップを自動的に行うために、Linux の cron などの自動実行機能を使う必要があります。Oracle の Document を参考にして、適切に設定を行います。

https://docs.oracle.com/cd/E57425_01/121/ADMQS/GUID-D77B0526-13F6-4570-9C74-6436B76DEA43.htm



# 大阪リージョン : リストア実施

東京リージョンで大規模災害を想定して、大阪側の OCI DBCS へリストアを行います。以下の Document の内容に沿っていますが、一部不足している手順は追加をしています。

https://docs.cloud.oracle.com/en-us/iaas/Content/Database/Tasks/recoveringOS.htm#rman



## OCI DBCS 作成

OCI DBCS を適当に作成します

- Name : osakadb
- Edition : Standard Edition
- Version : 11.2.0.4 or 
- Password : mIfoO8_fai12#-gai897faoosaka
- IP address : 10.100.1.2



## Module のインストール

Oracle Database Cloud Backup Module をインストールします。Tokyo Region 側で実施した内容と同じで大丈夫です。



## Module用 Wallet の復元

東京側の OCI DBCS で自動生成された Module 用の Wallet ファイルを、大阪側の OCI DBCS へ格納します。大阪側でも Module を Install した時に Wallet が自動生成されましたが、ここに東京側の Wallet ファイルを上書きします。

東京側の Wallet ファイルを復元して、上書きします。

```
mv /home/opc/cwallet.sso /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet/cwallet.sso
```



大阪側の Object Storage にバックアップをしている場合は、Pre-auth URL を生成することでダウンロードすることが出来ます。以下コマンド例。

```
curl -X GET \
'https://objectstorage.ap-osaka-1.oraclecloud.com/p/<your url>/n/<your tnency>/b/oracledb_backup/o/wallet_opc/cwallet.sso' \
-O
```



権限設定

```
chown oracle:oinstall /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet/cwallet.sso
```



確認

```
[root@osakadb opc_wallet]# ls -la /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opc_wallet/
total 12
drwxr-xr-x 2 oracle oinstall 4096 Feb  9 05:06 .
drwxr-xr-x 3 oracle oinstall 4096 Feb  9 04:37 ..
-rw------- 1 oracle oinstall 3445 Feb  9 05:05 cwallet.sso
-rw------- 1 oracle oinstall    0 Feb  9 02:37 cwallet.sso.lck
[root@osakadb opc_wallet]#
```



## TDE Wallet の復元

透過的データベース暗号化(Transparent Data Encryption(TDE)) の Wallet ファイルを東京側から復元します。
東京用のディレクトリを、`oracle` ユーザーで作成します

```
mkdir /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
chmod 700 /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
cd /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
```



`cwallet.sso` と `ewallet.p12` を以下のように復元します

```
[oracle@osakadbb tokyodb_nrt195]$ pwd
/opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
[oracle@osakadbb tokyodb_nrt195]$  
[oracle@osakadbb tokyodb_nrt195]$ ls -la
total 112
drwx------ 2 oracle oinstall 20480 Feb 11 07:03 .
drwx------ 4 oracle oinstall 20480 Feb 11 06:57 ..
-rw-r--r-- 1 oracle oinstall  2917 Feb 11 07:01 cwallet.sso
-rw-r--r-- 1 oracle oinstall  2840 Feb 11 07:03 ewallet.p12
[oracle@osakadbb tokyodb_nrt195]$
```



権限を設定 (root ユーザーで実行)

```
cd /opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
chown oracle:oinstall cwallet.sso
chown oracle:asmadmin ewallet.p12
chmod 600 cwallet.sso
chmod 600 ewallet.p12
```



確認します

```
[root@osakadb tokyodb_nrt195]# pwd
/opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
[root@osakadb tokyodb_nrt195]#
[root@osakadb tokyodb_nrt195]# ls -la
total 112
drwx------ 2 oracle oinstall 20480 Feb  9 06:02 .
drwx------ 4 oracle oinstall 20480 Feb  9 05:58 ..
-rw------- 1 oracle oinstall  2917 Feb  9 06:01 cwallet.sso
-rw------- 1 oracle asmadmin  2840 Feb  9 06:01 ewallet.p12
[root@osakadb tokyodb_nrt195]#
```



sqlnet を書き換えて、Tokyo 側の TDE Wallet を使用します。

```
vim /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/sqlnet.ora
```

```
#ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195)))
# ↑書き換え

SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
```



TDE Wallet の Open 状況の確認します
SQL*Plus の接続をします

```
[oracle@osakadb ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Feb 10 10:34:55 2020

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


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> 
```



Open 状況の確認
TokyoがOpenされていることを確認します

```
SQL> select * from v$encryption_wallet;

WRL_TYPE
--------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS
------------------
file
/opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
OPEN


SQL>
```



以下のように CLOSED となっている場合

```
SQL> select * from v$encryption_wallet;

WRL_TYPE
--------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS
------------------
file
/opt/oracle/dcs/commonstore/wallets/tde/tokyodb_nrt195
CLOSED
```



CLOSED となっている場合は、SQL * Plus で接続して `STARTUP NOMOUNT` した後に、Tokyo 側の Wallet を Open します。

NOMOUNT

```
STARTUP NOMOUNT
```



ALTER (in SQL*Plus)

```
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "mIfoO8_fai12#-gai897fao";
```



SQL PLUS exit

```
exit
```





## リストアの実行

大阪側の OCI DBCS で、`oracle` ユーザーにスイッチします

```
sudo su - oracle
```



リストアを実施するため、既存の稼働しているインスタンス (sid : `osakadb`) を停止します。
SQL*Plus に接続

```
sqlplus / as sysdba
```



インスタンスを停止します

```
SHUTDOWN IMMEDIATE
```



SQL*Plus から抜けます

```
exit
```



`/etc/oratab`(自動起動のための Oracle の Config ファイル) の設定値を確認します

```
[oracle@osakadb ~]$ cat /etc/oratab
#



# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
osakadb:/u01/app/oracle/product/11.2.0.4/dbhome_1:N
```



Tokyo側の DB と同じSIDを設定するために、vim を開きます

```
vim /etc/oratab
```



TokyoのSIDは `tokyodb` だったので、次のように設定を変更します

```
#osakadb:/u01/app/oracle/product/11.2.0.4/dbhome_1:N
tokyodb:/u01/app/oracle/product/11.2.0.4/dbhome_1:N
```



ORACLE_SID を、`tokyodb` へ変更します

```
. oraenv
```



実行例 tokyodb と入力

```
[oracle@osakadb ~]$ . oraenv
ORACLE_SID = [osakadb] ? tokyodb
```



実行例

```
[oracle@osakadb ~]$ . oraenv
ORACLE_SID = [osakadb] ? tokyodb
The Oracle base has been set to /u01/app/oracle
[oracle@osakadb ~]$
```



.bashrc でも SID を設定していることを確認します

```
[oracle@osakadb ~]$ cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1; export ORACLE_HOME
PATH=$PATH:/u01/app/oracle/product/11.2.0.4/dbhome_1/bin; export PATH
LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib; export LD_LIBRARY_PATH
ORACLE_UNQNAME=osakadb_kix1ch;export ORACLE_UNQNAME
ORACLE_SID=osakadb; export ORACLE_SID
[oracle@osakadb ~]$
```



bashrc を変更します

```
vim ~/.bashrc
```



ORACLE_UNQNAME と SID を変更します

```
~~~~~ 省略 ~~~~~
#ORACLE_UNQNAME=osakadb_kix1pb;export ORACLE_UNQNAME
ORACLE_UNQNAME=tokyodb_nrt195;export ORACLE_UNQNAME
#ORACLE_SID=osakadb; export ORACLE_SID
ORACLE_SID=tokyodb; export ORACLE_SID
```



Shell に再ログインして読み込み

```
exit
sudo su - oracle
```



環境変数を確認し、SID が tokyodb であることを確認します

```
[oracle@osakadb ~]$ env | grep -i sid   
ORACLE_SID=tokyodb
```



RMAN接続をします

```
rman target /
```



実行例

SID を変更したので、(not started) でOK

```
[oracle@osakadb ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sun Feb 9 04:34:33 2020

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

connected to target database (not started)

RMAN>
```



tokyo db 側で確認したDBID を設定

```
set dbid 2385503094;
```



実行例

```
RMAN> set dbid 2385503094;

executing command: SET DBID

RMAN>
```



 `STARTUP NOMOUNT` コマンドを実行して、初期化パラメータのみ読み込む状態にします

```
STARTUP NOMOUNT
```



実行例

`ORA-01078: failure in processing system parameters` が出ても無視しておK

```
RMAN> STARTUP NOMOUNT

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/inittokyodb.ora'

starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started

Total System Global Area    1068937216 bytes

Fixed Size                     2260088 bytes
Variable Size                281019272 bytes
Database Buffers             780140544 bytes
Redo Buffers                   5517312 bytes

RMAN>
```



TDE を使った暗号化の設定をします

```
SET ENCRYPTION ON;
```



実行例

```
RMAN> SET ENCRYPTION ON;

executing command: SET encryption
using target database control file instead of recovery catalog

RMAN>
```



制御ファイルのフォーマットを指定します

```
set controlfile autobackup format for device type sbt to '%F';
```



実行例

```
RMAN> set controlfile autobackup format for device type sbt to '%F';

executing command: SET CONTROLFILE AUTOBACKUP FORMAT

RMAN>
```



初期化パラメータファイルを、RMAN バックアップからリストアします。
SBT_LIBRARYとSBT_PARMSを Osaka 側で Backup Module を Install した時に生成されたものを指定

```
run {
  allocate channel c1 device type sbt PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
  restore spfile from autobackup;
}
```



実行例

```
RMAN> run {
  allocate channel c1 device type sbt PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
  restore spfile from autobackup;
}2> 3> 4>

allocated channel: c1
channel c1: SID=114 device type=SBT_TAPE
channel c1: Oracle Database Backup Service Library VER=19.0.0.1

Starting restore at 10-FEB-20

channel c1: looking for AUTOBACKUP on day: 20200210
channel c1: looking for AUTOBACKUP on day: 20200209
channel c1: AUTOBACKUP found: c-2385503094-20200209-03
channel c1: restoring spfile from AUTOBACKUP c-2385503094-20200209-03
channel c1: SPFILE restore from AUTOBACKUP complete
Finished restore at 10-FEB-20
released channel: c1

RMAN>
```



RMAN から抜けます

```
exit
```



以下のディレクトリに、東京側の初期化パラメータファイルがリストアされています

```
[oracle@osakadb dbs]$ ls -la /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs | grep "spfile"
-rw-r-----  1 oracle asmadmin 4608 Feb 15 12:46 spfiletokyodb.ora
```



中身を確認します。一部文字化けしているように見えますが、正しいです

```
[oracle@osakadb dbs]$ cat /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/spfiletokyodb.ora 
C"           fy                                                                                   G  &=                                              
C  C"           
                3  tokyodb.__db_cache_size=6677331968
tokyodb.__java_pool_size=16777216
tokyodb.__large_pool_size=33554432
tokyodb.__pga_aggregate_target=4026531840
tokyodb.__sga_target=8053063680
tokyodb.__shared_io_pool_size=0
tokyodb.__shared_pool_size=1258291200
tokyodb.__streams_pool_size=0
*._datafile_write_errors_crash_instance=false
*._db_writer_coalesce_area_size=16777216
*._disable_interface_checking=TRUE
*._ENABLE_NUMA_SUPPORT=FALSE
*._FILE_SIZE_INCREASE_INCREMENT=2143289344
*._fix_control='C  C"           B,  18960760:on'
*._gc_policy_time=0
*._gc_undo_affinity=FALSE
*.audit_file_dest='/u01/app/oracle/admin/tokyodb_nrt195/adump'
*.audit_sys_operations=TRUE
*.audit_trail='db'
*.compatible='11.2.0.4'
*.control_file_record_keep_time=38
*.control_files='+RECO/tokyodb_nrt195/controlfile/current.256.1031823607'
*.cpu_count=0
*.cursor_sharing='EXACT'
*.db_block_checking='FULL'
*.db_block_checksum='FULL'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_create_online_log_dest_1='+RECO'
*.dbC  C"           6T  _domain='privsubnet01.vcn.oraclevcn.com'
*.db_files=1024
*.db_lost_write_protect='TYPICAL'
*.db_name='tokyodb'
*.db_recovery_file_dest='+RECO'
*.db_recovery_file_dest_size=13844348928
*.db_unique_name='tokyodb_nrt195'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tokyodbXDB)'
*.fast_start_mttr_target=300
*.filesystemio_options='setall'
*.global_names=TRUE
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=16777216
*.nls_language='AMERICAN'
*.nls_territory='C  C"           vp  AMERICA'
*.open_cursors=1000
*.os_authent_prefix=''
*.parallel_adaptive_multi_user=FALSE
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=2
*.pga_aggregate_target=4026531840
*.processes=200
*.remote_login_passwordfile='EXCLUSIVE'
*.session_cached_cursors=100
*.sga_target=8053063680
*.sql92_security=TRUE
*.undo_retention=900
*.undo_tablespace='UNDOTBS1'
*.use_large_pages='only'
                                                                                          C  C"           Ee                                          
C  C"           De                                                                                                                                      
C  C"          Ke                                                                                                                                       
C  C"            Je                                                                                                                                     
C  [
```



Audit_file_dest の 作成すべきDirectory の Path 確認します

```
strings ${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora | grep audit_file_dest
```



実行例

```
[oracle@osakadb ~]$ strings ${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora | grep audit_file_dest
*.audit_file_dest='/u01/app/oracle/admin/tokyodb_nrt195/adump'
```



ディレクトリ作成

```
mkdir -p /u01/app/oracle/admin/tokyodb_nrt195/adump
```



RMANを起動します

```
rman target /
```



実行例

```
[oracle@osakadb dbs]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sat Feb 15 12:51:09 2020

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

connected to target database: DUMMY (not mounted)

RMAN>
```



暗号化設定と、dbid の設定をします

```
set ENCRYPTION ON;
set dbid 2385503094;
```



Oracle DB インスタンスを、初期化パラメータのみ読み込んだ状態にします

```
STARTUP FORCE NOMOUNT;
```



実行例

```
RMAN> STARTUP FORCE NOMOUNT;

Oracle instance started

Total System Global Area    8017100800 bytes

Fixed Size                     2269072 bytes
Variable Size               1375731824 bytes
Database Buffers            6610223104 bytes
Redo Buffers                  28876800 bytes

RMAN>
```



制御ファイルのフォーマットを指定します

```
set controlfile autobackup format for device type sbt to '%F';
```



制御ファイルをリストアします

```
run {
  allocate channel c1 device type sbt PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
  restore controlfile from autobackup;
  alter database mount;
}
```



実行例

```
RMAN> run {
  allocate channel c1 device type sbt PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
  restore controlfile from autobackup;
  alter database mount;
}2> 3> 4> 5> 

allocated channel: c1
channel c1: SID=177 device type=SBT_TAPE
channel c1: Oracle Database Backup Service Library VER=19.0.0.1

Starting restore at 10-FEB-20

channel c1: looking for AUTOBACKUP on day: 20200210
channel c1: AUTOBACKUP found: c-2385503094-20200210-01
channel c1: restoring control file from AUTOBACKUP c-2385503094-20200210-01
channel c1: control file restore from AUTOBACKUP complete
output file name=+RECO/tokyodb_nrt195/controlfile/current.265.1032047215
Finished restore at 10-FEB-20

database mounted
released channel: c1

RMAN> 
```



このタイミングで、Tokyo 側の RMAN で CONFIGURE していた内容が Osaka 側に復元されます

```
RMAN> show all;

RMAN configuration parameters for database with db_unique_name TOKYODB_NRT195 are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET PARALLELISM 1;
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/TOKYODB_NRT195/controlfile/snapcf_tokyodb_nrt195.f';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+RECO/tokyodb_nrt195/controlfile/snapcf_tokyodb_nrt195.f';

RMAN>
```



Osaka 側の Module に合わせるように、CONFIGURE を変更します。

```
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
```



実行例

```
RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';

old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opctokyodb.ora)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0.4/dbhome_1/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/opcosakadb.ora)';
new RMAN configuration parameters are successfully stored

RMAN> 
```



Database のリストアを実行します。RMAN バックアップを使用して、物理ファイルから復元します

```
RESTORE DATABASE;
```



実行例

```
RMAN> RESTORE DATABASE;

Starting restore at 10-FEB-20
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=16 device type=DISK
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=162 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1

channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00001 to +DATA/tokyodb_nrt195/datafile/system.261.1031823525
channel ORA_SBT_TAPE_1: restoring datafile 00002 to +DATA/tokyodb_nrt195/datafile/sysaux.262.1031823525
channel ORA_SBT_TAPE_1: restoring datafile 00003 to +DATA/tokyodb_nrt195/datafile/undotbs1.263.1031823525
channel ORA_SBT_TAPE_1: restoring datafile 00004 to +DATA/tokyodb_nrt195/datafile/users.266.1031823967
channel ORA_SBT_TAPE_1: reading from backup piece DBTRegular-L01581276197451iQW_df_TOKYODB_2385503094_1duo4ero_1_1_20200209_1031945080_set45
channel ORA_SBT_TAPE_1: piece handle=DBTRegular-L01581276197451iQW_df_TOKYODB_2385503094_1duo4ero_1_1_20200209_1031945080_set45 tag=DBTREGULAR-L01581276197451IQW
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:26
Finished restore at 10-FEB-20

RMAN> 
```



リカバリを実行します。REDO ログ やアーカイブログを適用します。

```
RECOVER DATABASE;
```



実行例

`RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 24 and starting SCN of 787146` は無視してOKです。これ以上リカバリするべきアーカイブログが見つからないメッセージなので、問題ありません。

```
RMAN> RECOVER DATABASE;

Starting recover at 10-FEB-20
using channel ORA_DISK_1
using channel ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: starting incremental datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: +DATA/tokyodb_nrt195/datafile/system.271.1032047871
destination for restore of datafile 00002: +DATA/tokyodb_nrt195/datafile/sysaux.274.1032047871
destination for restore of datafile 00003: +DATA/tokyodb_nrt195/datafile/undotbs1.275.1032047871
destination for restore of datafile 00004: +DATA/tokyodb_nrt195/datafile/users.276.1032047871
channel ORA_SBT_TAPE_1: reading from backup piece DBTRegular-L11581362614468RkV_df_TOKYODB_2385503094_1kuo73bo_1_1_20200210_1032031608_set52
channel ORA_SBT_TAPE_1: piece handle=DBTRegular-L11581362614468RkV_df_TOKYODB_2385503094_1kuo73bo_1_1_20200210_1032031608_set52 tag=DBTREGULAR-L11581362614468RKV
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:03

starting media recovery

channel ORA_SBT_TAPE_1: starting archived log restore to default destination
channel ORA_SBT_TAPE_1: restoring archived log
archived log thread=1 sequence=23
channel ORA_SBT_TAPE_1: reading from backup piece DBTRegular-L11581362614468RkV_arc_TOKYODB_2385503094_1luo73c8_1_1_20200210_1032031624_set53
channel ORA_SBT_TAPE_1: piece handle=DBTRegular-L11581362614468RkV_arc_TOKYODB_2385503094_1luo73c8_1_1_20200210_1032031624_set53 tag=DBTREGULAR-L11581362614468RKV
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:01
archived log file name=+RECO/tokyodb_nrt195/archivelog/2020_02_10/thread_1_seq_23.266.1032047937 thread=1 sequence=23
channel default: deleting archived log(s)
archived log file name=+RECO/tokyodb_nrt195/archivelog/2020_02_10/thread_1_seq_23.266.1032047937 RECID=24 STAMP=1032047937
unable to find archived log
archived log thread=1 sequence=24
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/10/2020 23:58:58
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 24 and starting SCN of 787146

RMAN> 
```



Oracle DB を Open します

```
ALTER DATABASE OPEN RESETLOGS;
```



実行例

```
RMAN> ALTER DATABASE OPEN RESETLOGS;

database opened

RMAN> 
```



RMAN から抜けます

```
exit
```



## tnsnames.ora の編集

Oracle DB インスタンスのサービス名を確認します

```
lsnrctl status
```



実行例

`tokyodb_nrt195.privsubnet01.vcn.oraclevcn.com` がサービス名の一つです。

```
[oracle@osakadb ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-FEB-2020 13:15:01

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2020 12:09:47
Uptime                    0 days 1 hr. 5 min. 14 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19.0.0.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/osakadb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.100.1.5)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX1", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_RECO" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "tokyodbXDB.privsubnet01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "tokyodb", status READY, has 1 handler(s) for this service...
Service "tokyodb_nrt195.privsubnet01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "tokyodb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@osakadb ~]$
```



確認したサービス名を使うように、tnsnames.ora を編集します。まずは編集前のファイルを確認します

```
[oracle@osakadb ~]$ cat /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

OSAKADB_KIX1PB =
  (DESCRIPTION =
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = osakadb_kix1pb.sub02090039131.vcnosaka.oraclevcn.com)
    )
  )

[oracle@osakadb ~]$
```



編集します

```
vim /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora
```



確認した名前を `SERVICE_NAME` に指定します

```
#OSAKADB_KIX1PB =
#  (DESCRIPTION =
#    (CONNECT_DATA =
#      (SERVER = DEDICATED)
#      (SERVICE_NAME = osakadb_kix1pb.sub02090039131.vcnosaka.oraclevcn.com)
#    )
#  )

OSAKADB =
  (DESCRIPTION =
    (ADDRESS=
      (PROTOCOL=tcp)  
      (HOST=osakadb.sub02090039131.vcnosaka.oraclevcn.com)
      (PORT=1521)
    ) 
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = tokyodb_nrt195.privsubnet01.vcn.oraclevcn.com)
    )
  )
```



## 自動再起動の構成

サーバー制御ユーティリティ(srvctl) を使って、Oracle DB インスタンスの自動再起動を構成をコントロールしています。リストアを実施した大阪側の OCI DBCS 側では、デフォルトで自動再起動が設定されていますが、リストアをしたタイミングで自動再起動がされなくなります。手動で `STARTUP` すれば良いですが、面倒な部分もあるので、自動再起動をするように構成をします。



まずは、現状の config 状況を確認します。db_unique_nameが `osakadb_kix1pb` のものが登録されています

```
[oracle@osakadb ~]$ srvctl config database
osakadb_kix1pb
```



osaka側の設定を remove します

```
srvctl remove database -d osakadb_kix1pb
```



実行例

```
[oracle@osakadb ~]$ srvctl remove database -d osakadb_kix1pb
Remove the database osakadb_kix1pb? (y/[n]) y
[oracle@osakadb ~]$ 
```



`srvctl add` コマンドで、自動再起動の設定を入力します。各種パラメータは、東京側の自動再起動の設定値を参考に適宜変更します。
各種パラメータの詳細は `srvctl add database -h` コマンドで確認が可能です

```
srvctl add database \
-d "tokyodb_nrt195" \
-o "/u01/app/oracle/product/11.2.0.4/dbhome_1" \
-c "SINGLE" \
-i "tokyodb" \
-m "sub02090039131.vcnosaka.oraclevcn.com" \
-p "+DATA/tokyodb_nrt195/spfiletokyodb.ora" \
-r "primary" \
-s "OPEN" \
-t "IMMEDIATE" \
-n "tokyodb" \
-y "AUTOMATIC" \
-a "DATA,RECO" \
-x "osakadb"
```



設定されたことを確認します

```
srvctl config database -d tokyodb_nrt195
```



実行例

```
[oracle@osakadb ~]$ srvctl config database -d tokyodb_nrt195
Database unique name: tokyodb_nrt195
Database name: tokyodb
Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Spfile: +DATA/tokyodb_nrt195/spfiletokyodb.ora
Domain: privsubnet01.vcn.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY      
Management policy: AUTOMATIC
Server pools: tokyodb_nrt195
Database instance: tokyodb  
Disk Groups: DATA,RECO
Mount point paths: 
Services: 
Type: SINGLE
Database is administrator managed
[oracle@osakadb ~]$ 
```



環境変数の設定を行います。

```
srvctl setenv database \
-d tokyodb_nrt195 \
-t "ORACLE_UNQNAME=tokyodb_nrt195,TZ=UTC"
```



確認

```
[oracle@osakadb ~]$ srvctl getenv database -d tokyodb_nrt195
tokyodb_nrt195:
ORACLE_UNQNAME=tokyodb_nrt195
TZ=UTC
[oracle@osakadb ~]$ 
```



# 大阪リージョン : リストア確認

SQL*Plus に、`sugi`ユーザーで接続

```
sqlplus sugi/mIfoO8_fai12#gai897faosugi@OSAKADB
```



SELECT でテストデータが復元されているか確認

```
SELECT * FROM EXAMPLES WHERE ROWNUM <= 10;
```



実行例

```
SQL> SELECT * FROM EXAMPLES WHERE ROWNUM <= 10;

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
       201
wtvQNLuNNwTKhUjEdtFDPzxuumnSocAzpWZczHQTwpywghqBqSZxlYurfiiCnuNDStnhbzXZjEzvhnwl
EMPaAuqVFIfnCeXOimeI
     63975  .26953323 15-SEP-62

       202
ZXYsSLqckvxdopEZYBTVedvoRrdDOBXLclHtMlTGBGJcsiwmkGzmKJPrOCvhNOoMhFXAbYfZIcxXMrbC

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
xdqZKmDqoDbZAITiLgcU
     12924 .543865413 06-OCT-27

       203
sixKXAquLflHYBrDVIyacgzHUJarTTnvgaAwLdxCTpixBzWEUeCwmbTMsXCqUeprGmDjfoFpxgXdfVLo
odoFvGHYyCngHmuabmhg
     78239 .553495011 10-MAR-05

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------

       204
SLaaSxfBgBqwQkwQForQmbAQZSFKUyFHzDPYsmJEztjwsjKfQdxTPdJsdflnvkJfEFVIWGUFhaMfKKvp
vCekbOzdiAMoWSjEyEFP
     79874 .594714669 03-JUL-84

       205

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
yDKzanFhZhPYXzIInGhxtYEJgfSvApgnzNdLPUgCQQkMVbsrFmCIOjuejduadlUZvtjmTpLEWSJOAwBl
RVEOYaSjqYlsFBcMJTzo
     32309 .064789972 20-FEB-11

       206
bEMXOfvQAyyoBMnIlRUfZrnQgmIDQzxNWhbcEVijpWauRpkxboeOIqMIrVbffteXgaRGhWsaovZrgYOI
bnSZqKVNCDIkONHVwsBz

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
     21979 .563180994 29-DEC-56

       207
PjEFpOaQSItEWDAljdarwjzwknbqsBnXKsXOFlmgLxMGSNsEaSswudUAXfvhQNodAQTcomRubmxOxsAL
FTnneHYiXTvWyaJMOgjG
      1027 .196482091 21-DEC-18


        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
       208
BFqLsWVLczjUvVMLYkPynNaHpThVxDAMKJyfAdkKXCQRUnUkyvhtOlGrYXgqZWYnIiAwzwWvmfPHBvro
OOOMoHEjgfVZAIyfkQNU
     70449 .830987466 30-APR-74

       209
laxBPgyfmlvCNdcWpNVVzFVbXwdcmmXZoLQbUFjVSbXmdlVVymjUqMHIXadBTWEbxLdhiMsIptIdrqwW

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------
jMwczfhMmtdobowQmBUM
     96728 .264182347 24-SEP-68

       210
nfsxhCEeGnaeSBlnkFHVKApYbudqpEaJOFuKBjLSZUHGdZkArIqXzCCPaWoXGeoVsVoUlxGKZOcnaZZT
DUNoHdYpbjhIOzoSpvaO
     45219 .831185633 30-DEC-25

        ID
----------
LABEL
--------------------------------------------------------------------------------
     SCORE       RATE BIRTHDAY
---------- ---------- ---------


10 rows selected.

SQL>
```



# memo : OCI 側機能の動作確認

大阪側へリストアした　OCI DBCS の基本的なライフサイクルが問題なく動作可能か確認します

- Node の停止、起動 : OK
  仮想マシンを再起動したときの挙動を確認。再起動してもリスナーが自動的に起動することを確認
- パッチ適用
  DB System : OK
  Oracle DB Node : OK



# 参考URL

OCIドキュメント
https://docs.cloud.oracle.com/iaas/Content/Database/Tasks/backingupOSrman.htm
https://docs.cloud.oracle.com/iaas/Content/Database/Tasks/recoveringOS.htm#rman
https://docs.cloud.oracle.com/iaas/Content/Database/Tasks/recoveringOPCOS.htm

Oracle Database Backup Cloud Service の使用
https://docs.oracle.com/cd/E83857_01/paas/db-backup-cloud/csdbb/oracle-database-backup-cloud-service.html#GUID-8A5C40B4-859F-46C3-9431-55C56D588B58

やってみた系ブログ
http://cosol.jp/techdb/2018/12/oci-virtual-machine-db-system-backup-config.html
https://qiita.com/shirok/items/78b73a07f97c003c02af