11章 RMANの設定
本章ではRMANの設定についてご紹介していきます。
RMANの設定
RMANには様々な設定があります。実際の業務では使うときに覚えれば良いと思いますが、
試験を受験する方も試験範囲となりますので、理解していきましょう。
RMANの設定値は以下で確認が可能です。
  [構文] RMAN設定の一覧表示
 RMAN> show all;
RMANを起動し、上記コマンドを実行すると、RMANで設定できる項目と設定値を表示することが出来ます。
  RMAN> show all;
  RMAN configuration parameters for database with db_unique_name ORCL are:
  CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
  CONFIGURE BACKUP OPTIMIZATION OFF; # default
  CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
  CONFIGURE CONTROLFILE AUTOBACKUP ON;
  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 
  '/u01/app/oracle/backup/ORCL/%F.autobkup';
  
  CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
  CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
  CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
  CONFIGURE MAXSETSIZE TO UNLIMITED; # default
  CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
  CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
  CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 
  'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
  
  CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
  CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
  CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/backup/ORCL/snap.ctl';
たくさんのパラメータがあります。これらのパラメータは基本的にはデフォルトでかまいません。
ただし必要なときには設定する必要があるので簡単にどんなパラメータなのか確認していきましょう。
バックアップの保存方針
  RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
こちらは「10章_高速リカバリ領域」でご紹介していますが、バックアップの保存方針を設定する
パラメータです。冗長性、リカバリ期間から設定することが出来ます。
詳細は以下を参考にしてください。
10章 データベースの障害
バックアップの最適化
  RMAN> CONFIGURE BACKUP OPTIMIZATION OFF; # default
バックアップの最適化を有効にするとRMANでは、
すでにバックアップされているファイルと同一のファイルについては
バックアップをスキップします。
同一ファイルであるかどうかの判断については以下の方針で決定しています。
同一ファイルかどうかを判断する基準
| データファイル | すでにバックアップに含まれているデータ・ファイルと同じDBID、チェックポイントSCN、作成SCN、およびRESETLOGSのSCNと時刻。データ・ファイルはNORMALモードでオフラインにされているか、読取り専用か、または正常にクローズされている必要があります。 | 
| アーカイブログ | 同じスレッド、順序番号、およびRESETLOGSのSCNと時刻 | 
| バックアップ・セット | 同じバックアップ・セットrecidおよびスタンプ | 
上記に記載の様にバックアップ取得時、すでに取得したバックアップと比較してSCNであれば取得せずスキップさせることができ、バックアップ取得時間を短縮することができます。
 
バックアップ最適化を有効化するには以下のコマンドを実行します。
  [構文] バックアップの最適化の有効
 RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
実際に試して見ましょう。
  RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
  new RMAN configuration parameters:
  CONFIGURE BACKUP OPTIMIZATION ON;
  new RMAN configuration parameters are successfully stored
  RMAN> backup database;
  Starting backup at 21-APR-17
  allocated channel: ORA_DISK_1
  channel ORA_DISK_1: SID=34 device type=DISK
  channel ORA_DISK_1: starting full datafile backup set
  channel ORA_DISK_1: specifying datafile(s) in backup set
  input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
  input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
  input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
  input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/users01.dbf
  channel ORA_DISK_1: starting piece 1 at 21-APR-17
  channel ORA_DISK_1: finished piece 1 at 21-APR-17
  piece handle=/home/oracle/flash_recovery_area/ORCL/backupset
  /2017_04_21/o1_mf_nnndf_TAG20170421T154021_dhmbbolw_.bkp tag=TAG20170421T154 comment=NONE
  
  channel ORA_DISK_1: backup set complete, elapsed time: 00:04:05
  channel ORA_DISK_1: starting full datafile backup set
  channel ORA_DISK_1: specifying datafile(s) in backup set
  input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
  input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
  channel ORA_DISK_1: starting piece 1 at 21-APR-17
  channel ORA_DISK_1: finished piece 1 at 21-APR-17
  piece handle=/home/oracle/flash_recovery_area/ORCL/3E01AEAE310B2E5AE0530101A8C030B1
  /backupset/2017_04_21/o1_mf_XX_TAG20170421T154021_dhmblbo8_.bkp tag=TAG20170XX comment=NONE
  
  channel ORA_DISK_1: backup set complete, elapsed time: 00:03:05
  Finished backup at 21-APR-17
  Starting Control File and SPFILE Autobackup at 21-APR-17
  piece handle=/home/oracle/flash_recovery_area/ORCL/autobackup/2017_04_21/
  o1_mf_s_941903252_dhmbr5nx_.bkp comment=NONE
  
  Finished Control File and SPFILE Autobackup at 21-APR-17
  RMAN> backup database;
  Starting backup at 21-APR-17
  using channel ORA_DISK_1
  skipping datafile 5; already backed up 2 time(s)   ★バックアップ最適化によりスキップ
  skipping datafile 7; already backed up 2 time(s)   ★バックアップ最適化によりスキップ
  channel ORA_DISK_1: starting full datafile backup set
  channel ORA_DISK_1: specifying datafile(s) in backup set
  input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
  input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
  input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
  input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/users01.dbf
  channel ORA_DISK_1: starting piece 1 at 21-APR-17
  channel ORA_DISK_1: finished piece 1 at 21-APR-17
  piece handle=/home/oracle/flash_recovery_area/ORCL/backupset/2017_04_21/
  o1_mf_nnndf_TAG20170421T154925_dhmbvolh_.bkp tag=TAG20170421T154925 comment=NONE
  
  channel ORA_DISK_1: backup set complete, elapsed time: 00:03:55
  Finished backup at 21-APR-17
  Starting Control File and SPFILE Autobackup at 21-APR-17
  piece handle=/home/oracle/flash_recovery_area/ORCL/autobackup/
  2017_04_21/o1_mf_s_941903600_dhmc31rr_.bkp comment=NONE
  
  Finished Control File and SPFILE Autobackup at 21-APR-17
データファイル番号5,7のデータファイルのSCNが同一であった為、バックアップがスキップされています。そのため、バックアップ時間も7分から4分に短縮されました。
  RMAN> list backup;
  List of Backup Sets
  ===================
  ★1回目のバックアップ
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  20      Full    1.17G      DISK        00:03:55     21-APR-17
          BP Key: 20   Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T154021
          Piece Name: /home/oracle/flash_recovery_area/ORCL/backupset/2017_04_21
          /o1_mf_nnndf_TAG20170421T154021_dhmbbolw_.bkp
    List of Datafiles in backup set 20
    File LV Type Ckp SCN    Ckp Time  Name
    ---- -- ---- ---------- --------- ----
    1       Full 2648487    21-APR-17 /u01/app/oracle/oradata/orcl/system01.dbf
    3       Full 2648487    21-APR-17 /u01/app/oracle/oradata/orcl/sysaux01.dbf
    4       Full 2648487    21-APR-17 /u01/app/oracle/oradata/orcl/undotbs01.dbf
    6       Full 2648487    21-APR-17 /u01/app/oracle/oradata/orcl/users01.dbf
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  21      Full    660.31M    DISK        00:02:49     21-APR-17
          BP Key: 21   Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T154021
          Piece Name: /home/oracle/flash_recovery_area/ORCL/3E01AEAE310B2E5AE0530
          101A8C030B1/backupset/2017_04_21/o1_mf_nnndf_TAG20170421T154021_dhmblbo8_.bkp
    List of Datafiles in backup set 21
    Container ID: 2, PDB Name: PDB$SEED
    File LV Type Ckp SCN    Ckp Time  Name
    ---- -- ---- ---------- --------- ----
    5       Full 1739077    04-OCT-16 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
    7       Full 1739077    04-OCT-16 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  22      Full    17.20M     DISK        00:00:01     21-APR-17
          BP Key: 22   Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T154732
          Piece Name: /home/oracle/flash_recovery_area/ORCL/autobackup/2017_04_21/
          o1_mf_s_941903252_dhmbr5nx_.bkp
    SPFILE Included: Modification time: 20-APR-17
    SPFILE db_unique_name: ORCL
    Control File Included: Ckp SCN: 2648652      Ckp time: 21-APR-17
  ★2回目のバックアップ(データファイルの5,7のバックアップはなし)
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  23      Full    1.17G      DISK        00:03:43     21-APR-17
          BP Key: 23   Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T154925
          Piece Name: /home/oracle/flash_recovery_area/ORCL/backupset/2017_04_21/
          o1_mf_nnndf_TAG20170421T154925_dhmbvolh_.bkp
    List of Datafiles in backup set 23
    File LV Type Ckp SCN    Ckp Time  Name
    ---- -- ---- ---------- --------- ----
    1       Full 2648714    21-APR-17 /u01/app/oracle/oradata/orcl/system01.dbf
    3       Full 2648714    21-APR-17 /u01/app/oracle/oradata/orcl/sysaux01.dbf
    4       Full 2648714    21-APR-17 /u01/app/oracle/oradata/orcl/undotbs01.dbf
    6       Full 2648714    21-APR-17 /u01/app/oracle/oradata/orcl/users01.dbf
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  24      Full    17.20M     DISK        00:00:01     21-APR-17
          BP Key: 24   Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T155320
          Piece Name: /home/oracle/flash_recovery_area/ORCL/autobackup/2017_04_21/
          o1_mf_s_941903600_dhmc31rr_.bkp
    SPFILE Included: Modification time: 20-APR-17
    SPFILE db_unique_name: ORCL
    Control File Included: Ckp SCN: 2648869      Ckp time: 21-APR-17
2回目のバックアップは5,7のデータファイルはスキップされた為、存在していないことが分かります。
バックアップの保存先
  RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
バックアップをデフォルトでディスクに格納するように指定します。
リカバリ領域が有効になっている場合、バックアップ場所はデフォルトで高速リカバリ領域になります。
リカバリ領域が有効になっていない場合、バックアップ場所はデフォルトで
ディスク上のオペレーティング・システム固有のディレクトリになります。
  RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT;
バックアップをデフォルトでテープに格納するように指定します。
制御ファイル、SPFILEの自動バックアップ
  RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
制御ファイルおよびサーバー・パラメータ・ファイルを自動的にバックアップします。
自動バックアップを有効にすると以下のタイミングで取得します。
・RMANプロンプトでBACKUPまたはCREATE CATALOGコマンドが発行された後
・RUNブロック内のBACKUPコマンドの後に、BACKUP以外のコマンドが続いている場合
・各RUNブロックの後(そのブロックの最後のコマンドがBACKUPだった場合)
・ARCHIVELOGモードでのデータベース構造の変更後
  ※NOARCHIVELOGモードでは無効
・表領域の追加
・表領域やデータファイルの状態の変更(オンライン化など)
・新規オンラインREDOログの追加
こちらも試して見ましょう。
  RMAN> show CONTROLFILE AUTOBACKUP;
  RMAN configuration parameters for database with db_unique_name ORCL are:
  CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
  RMAN> list backup;
  specification does not match any backup in the repository
現在デフォルトで制御ファイルの自動バックアップは有効となっています。
また制御ファイルのバックアップは存在していません。
次に表領域を新規に作成してみます。
  $ sqlplus / as sysdba
  SQL> archive log list
  
  Database log mode              Archive Mode
  Automatic archival             Enabled
  Archive destination            USE_DB_RECOVERY_FILE_DEST
  Oldest online log sequence     1
  Next log sequence to archive   2
  Current log sequence           2
  SQL> create tablespace test datafile 
    2  '/u01/app/oracle/oradata/orcl/test01.dbf' size 5m;
  Tablespace created.
作成できたので、制御ファイルが自動的にバックアップされたかどうか確認してみます。
  RMAN> list backup;
  using target database control file instead of recovery catalog
  specification does not match any backup in the repository
バックアップが取得されません。ARCHIVELOGモードの場合、自動バックアップは有効なはずですが。
少し調べてみると自動バックアップは即座に取得されず、少し時間が経ってから取得されるそうです。少し待ってもう一度確認してみます。
  RMAN> list backup;
  List of Backup Sets
  ===================
  BS Key  Type LV Size       Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  25      Full    17.20M     DISK        00:00:01     21-APR-17
          BP Key: 25 Status: AVAILABLE  Compressed: NO  Tag: TAG20170421T162246
          Piece Name: /home/oracle/flash_recovery_area/ORCL/autobackup/
          2017_04_21/o1_mf_s_941905366_dhmdt7bd_.bkp
    SPFILE Included: Modification time: 20-APR-17
    SPFILE db_unique_name: ORCL
    Control File Included: Ckp SCN: 2650717      Ckp time: 21-APR-17
取得されました。自動バックアップはタイムラグがあるようです。
バックアップ並列度とバックアップタイプ
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
このパラメータはバックアップ取得時の並列度とバックアップタイプを設定します。
PARALLELISMの値を増やすと、その指定された値の分、チャネルが起動します。
チャネルとはRMANバックアップよびリストアを実施するプロセスです。
並列度を上げることでバックアップ取得時の処理速度を向上させることが可能です。
例えばPARALLELISM 2に設定し、バックアップを取得した場合の実行例です。
ただし、このパラメータを設定しても必ず処理速度が向上するわけではありません。
チャネルを複数にすることで使用できるCPUは多くなり向上が見込めますが、あとはディスクの性能に依存します。
こちらも並列度を上げたときの実行速度を計測してみます。
並列度1
約5分
並列度2
約10分
自分の環境ではディスクが1つしかないので逆に遅くなってしまいました。
ディスク性能が良い場合は並列度は効果があります。
マルチセクションバックアップ
RMAN> BACKUP SECTION SIZE 50M TABLESPACE system; 
PARALLELISMは複数データファイル単位でバックアップを並列化することができましたが、1つだけデータファイルが大きく、
その他のデータファイルは小さい場合、大きいデータファイルの取得に時間がかかり、PARALLELISMの効果が発揮できません。
SECTIONパラメータを使用すると1つのデータファイルを複数のバックアップファイルに分けることが出来るため、各チャネルがセクション単位でバックアップ実行できる為、さらに並列度の効果を得られます。
1つのデータファイルサイズが大きく、バックアップに時間が掛かる場合などに有効です。
またこの機能はEnterprise Editionで使用可能です。
バックアップ・セットの多重化
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
Recovery Managerは、バックアップ・セットの最大4つのコピーを同時に作成できます。
これらのコピーは、それぞれが完全な複製です。多重バックアップ・セットのコピーは、
バックアップ・セットに含まれる各バックアップ・ピースのコピーで、各コピーに一意のコピー番号が付けられます
(0tcm8u2s_1_1、0tcm8u2s_1_2など)。バックアップ・セットをフラッシュ・リカバリ領域に多重化することはできません。
Recovery Managerでは、ディスクまたはテープにバックアップを多重化できますが、テープとディスクにバックアップを同時に多重化することはできません。
多重化はバックアップ・セットにのみ適用され、イメージ・コピーには適用されません。イメージ・コピー・バックアップの作成時にBACKUP ... COPIESを指定すると、エラーが発生します。また、イメージ・コピー・バックアップにCONFIGURE ... BACKUP COPIESを設定しても、この設定は無視されます。
バックアップ圧縮
【デフォルトでの圧縮機能】
RMANでバックアップセットを取得すると、デフォルトで以下の圧縮の恩恵を受けることが可能です。
・未使用ブロックの圧縮
・NULLブロックの圧縮
上記は圧縮と記載していますが、ブロックのスキップ機能です。データファイル内の未使用ブロックはスキップして、
使用されているブロックのみバックアップを取得したり、NULLブロックもスキップされます。
未使用ブロックの圧縮は、領域がローカルで管理されている表領域をバックアップする場合にのみ使用できます。
【バイナリ圧縮機能】
CONFIGURE COMPRESSION ALGORITHM 'BASIC'
こちらの圧縮機能はCONFIGUREコマンドで制御される圧縮機能です。
ちなみにデフォルトは「BASIC」ですが、「LOW,MEDIUM,HIGH」はAdvanced Compressionオプションが必要です。
HIGH ネットワーク速度が制限事項となる、速度の遅いネットワークでのバックアップに最適です。 
MEDIUM ほとんどの環境で推奨されます。圧縮率と速度の優れた組合せが得られます。 
LOW バックアップ・スループットへの影響が最小です。 
基本的に圧縮率はLOWからHIGHへと高くなります。ただし、圧縮率の上昇に応じて、消費されるCPUリソースが多くなります。
どのくらい圧縮ができるかはデータ内容によって異なる為、どのくらい効果があるかは実際に検証する必要がありそうです。
以上がRMAN設定についてのご紹介となります。