高速リカバリ領域を設定してRMANでバックアップをとってみた

Oracle Database（マルチテナント構成）のRMANでバックアップとリカバリをしてみた


# 検証環境

検証環境
　- VM
　　 Oracle VM Virtual Box 6.1
　- Gust OS
　　 Oracle Linux 7.9
　- Host OS
　　Windows10
　- Database 
　　- Oracle Database 19c (19.3) for Linux x86’-64 
DBの構成
　マルチテナント構成
　'CDB$ROOT', PDB\$SEED, ORCLPDB1

```sql:DB構成の確認

    SQL> show con_name

    CON_NAME
    ------------------------------
    CDB$ROOT
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 ORCLPDB1                       READ WRITE NO
```

# RMANについて

そもそもRMANとは、、

>Recovery Manager(RMAN)とは、データベースでバックアップおよびリカバリ・タスクを実行し、バックアップ計画の管理を自動化するOracle Databaseクライアントのことです。Recovery Managerによって、データベースのバックアップ、リストアおよびリカバリが大幅に簡単になります。([RMANの概要](https://docs.oracle.com/cd/F19136_01/bradv/getting-started-rman.html))

というわけでRMANを使ってバックアップ、リストアリカバリをしたい。今回はバックアップのみ紹介します。

リカバリ関連ファイルは別々に保存すると不便なので高速リカバリ領域(FRA)で一括管理します。

>リカバリ関連ファイル
・データファイル
・制御ファイル
・SPFILE
・アーカイブREDOログ

高速リカバリ領域の設定手順
１．記憶域のサイズ指定

    SQL> alter system set db_recovery_file_dest_size=5G;

２．記憶域のパスを指定

    SQL> alter system set db_recovery_file_dest = '/u01/app/oracle/fast_recovery_area';

これで設定完了です。アーカイブログの蓄積やバックアップの繰り返しで容量不足にならないように気を付けてください。（保存ポリシーの設定や定期的な不要ファイルの削除で対処可能）

３．作成した高速リカバリ領域を確認

    SQL> show parameter db_recovery_file
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                     area
    db_recovery_file_dest_size           big integer 5G

# バックアップの取得

バックアップを取る前に、、
※作業中はログを確認しよう！

```SQL:アラートログの確認
    SQL> SHOW PARAMETER DIAG
    
    NAME                             TYPE         VALUE
    ----------------------- ----------- --------------
    diagnostic_dest            string   　  /opt/oracle
    
    [oracle@node01 ~]$ tail -f alert_ORCLCDB.log
```

そしていよいよバックアップを取る。
今回は増分バックアップのLevel0とアーカイブログも同時に取得した。

    RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG DELETE ALL INPUT; 

バックアップデータの確認
listコマンドの各項目はマニュアル参照（[LISTコマンド](https://docs.oracle.com/cd/F19136_01/rcmrf/LIST.html)）

     RMAN> list backup summary;
        
        List of Backups
        ===============
        Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
        ------- -- -- - ----------- --------------- ------- ------- ---------- ---
        1       B  0  A DISK        09-SEP-23       1       1       NO         TAG20230909T130353
        2       B  0  A DISK        09-SEP-23       1       1       NO         TAG20230909T130353
        3       B  0  A DISK        09-SEP-23       1       1       NO         TAG20230909T130353
        4       B  F  A DISK        09-SEP-23       1       1       NO         TAG20230909T130402

    List of Backup Sets
    ===================
    
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    1       Incr 0  1.13G      DISK        00:00:05     09-SEP-23
            BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20230909T130353
            Piece Name: /u01/app/oracle/fast_recovery_area/ORCLCDB/backupset/2023_09_09/o1_mf_nnnd0_TAG20230909T130353_lhqvo97f_.bkp
      List of Datafiles in backup set 1
      File LV Type Ckp SCN    Ckp Time  Abs Fuz SCN Sparse Name
      ---- -- ---- ---------- --------- ----------- ------ ----
      1    0  Incr 2244695    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/system01.dbf
      3    0  Incr 2244695    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
      4    0  Incr 2244695    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
      7    0  Incr 2244695    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/users01.dbf
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    2       Incr 0  469.52M    DISK        00:00:01     09-SEP-23
            BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20230909T130353
            Piece Name: /u01/app/oracle/fast_recovery_area/ORCLCDB/001BA7269C77241BE065F9E75143007E/backupset/2023_09_09/o1_mf_nnnd0_TAG20230909T130353_lhqvojbr_.bkp
      List of Datafiles in backup set 2
      Container ID: 3, PDB Name: ORCLPDB1
      File LV Type Ckp SCN    Ckp Time  Abs Fuz SCN Sparse Name
      ---- -- ---- ---------- --------- ----------- ------ ----
      9    0  Incr 2244705    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf
      10   0  Incr 2244705    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf
      11   0  Incr 2244705    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf
      12   0  Incr 2244705    09-SEP-23              NO    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    3       Incr 0  552.48M    DISK        00:00:01     09-SEP-23
            BP Key: 3   Status: AVAILABLE  Compressed: NO  Tag: TAG20230909T130353
            Piece Name: /u01/app/oracle/fast_recovery_area/ORCLCDB/001B898E75E61BB0E065F9E75143007E/backupset/2023_09_09/o1_mf_nnnd0_TAG20230909T130353_lhqvokf3_.bkp
      List of Datafiles in backup set 3
      Container ID: 2, PDB Name: PDB$SEED
      File LV Type Ckp SCN    Ckp Time  Abs Fuz SCN Sparse Name
      ---- -- ---- ---------- --------- ----------- ------ ----
      5    0  Incr 2131504    10-JUL-23              NO    /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
      6    0  Incr 2131504    10-JUL-23              NO    /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
      8    0  Incr 2131504    10-JUL-23              NO    /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    4       Full    17.95M     DISK        00:00:00     09-SEP-23
            BP Key: 4   Status: AVAILABLE  Compressed: NO  Tag: TAG20230909T130402
            Piece Name: /u01/app/oracle/fast_recovery_area/ORCLCDB/autobackup/2023_09_09/o1_mf_s_1147093442_lhqvolm4_.bkp
      SPFILE Included: Modification time: 09-SEP-23
      SPFILE db_unique_name: ORCLCDB
      Control File Included: Ckp SCN: 2244721      Ckp time: 09-SEP-23

何もしなくても高速リカバリ領域を設定すると自動的にそこに保存されるようになっている！
ちなみにより詳細な情報を確認するには、TAG指定。
    
    RMAN> list backup TAG='TAG20230909T130402';
    
    List of Backup Sets
    ===================
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    4       Full    17.95M     DISK        00:00:00     09-SEP-23
            BP Key: 4   Status: AVAILABLE  Compressed: NO  Tag: TAG20230909T130402
            Piece Name: /u01/app/oracle/fast_recovery_area/ORCLCDB/autobackup/2023_09_09/o1_mf_s_1147093442_lhqvolm4_.bkp
      SPFILE Included: Modification time: 09-SEP-23
      SPFILE db_unique_name: ORCLCDB
      Control File Included: Ckp SCN: 2244721      Ckp time: 09-SEP-23

OSのほうでもファイルの確認
    
    [oracle@node01 ORCLCDB]$ ls -ltr
    合計 0
    drwxr-x--- 3 oracle oinstall 24  9月  9 13:03 backupset
    drwxr-x--- 3 oracle oinstall 23  9月  9 13:04 001BA7269C77241BE065F9E75143007E
    drwxr-x--- 3 oracle oinstall 23  9月  9 13:04 001B898E75E61BB0E065F9E75143007E
    drwxr-x--- 3 oracle oinstall 24  9月  9 13:04 autobackup
    drwxr-x--- 3 oracle oinstall 24  9月  9 13:04 archivelog

# 最後に
RMANでバックアップを取得してみました。
利点
・バックアップの取得が楽
RMANを使用しない場合(ユーザ管理の場合)は、ファイルの指定やパスの指定をしないといけないので面倒。
・バックアップの管理が楽
RMAN使用＋FRA設定で自動的にFRAにデータが格納、さらにディスク一や取得時間など管理情報の提供もされる。

リストア・リカバリのときにもRMANは大活躍なので他の記事もご覧ください！