マニュアルを読んでいて気がついた
先日、12cの概要マニュアルを何気なく読んでいたら以下の文章が目に入ってきた。
Oracle® Database概要 12cリリース1 (12.1) B71299-07 |
索引記憶域
「索引セグメントの表領域は、所有者のデフォルト表領域またはCREATE INDEX文で明示的に指定された表領域です。管理を容易にするために、索引をその表とは別の表領域に格納できます。たとえば、索引のみを含む表領域は再構築できるため、これらの表領域をバックアップしないよう指定することによって、バックアップに必要な時間と記憶域を削減できます。」
バックアップ領域の問題
以前関わっていた某超巨大システムでは、バックアップ領域は常に問題を抱えていた。
時間の経過と共にデータ量が増加し、バックアップ時間が長くなるだけでなく、バックアップ先のディスク容量が逼迫して新たにストレージを追加するという問題が深刻になっていた。
データ量が多いシステムほどバックアップに関する悩みは大きいが、上に紹介したマニュアルの記述はまさに目からウロコであった。仮にインデックスが占めるサイズが全体の3割であれば、バックアップ容量と時間を一気に3割削減できることになる。これは大きい。
万一ストレージが全損してバックアップからリカバリすることになった場合、インデックスを再作成する手間と時間がかかるが、日常のバックアップ容量と時間を削減することのメリットの方が大きい。
テーブルとインデックスの表領域を分ける意味
昔は、テーブルとインデックスのI/O競合を避けるために、両者を格納する表領域を分けるということはごく当たり前に行われていた。
しかし、ASMが一般的になりSAMEアーキテクチャによって理論的にはI/Oホットスポットが発生しなくなってからは、管理が容易という理由でデータとインデックスを1つの大きな表領域で管理することが普通になった。
テーブル用とインデック用の表領域をサイジングを間違って空き容量にアンバランスを発生させたりということに頭を使うよりも、全部を1つにしてしまえば単純である。
ところが、バックアップ対象を分けるという意味では、テーブルとインデックス用の表領域を別個に設けるという考え方が新しく成り立つ。
インデックス用表領域を含まない全体バックアップ
インデックスをインデックス用表領域に移動する
それでは実際にインデックス表領域を全体バックアップに含まない方法を確認してみよう。
まず、インデックスをインデックス用表領域に移動させる。これは個々のインデックスに対して必要であるが、一度行ってしまえばよい。
SQL> alter index SCOTT.PK_EMP rebuild tablespace USER_INDEX; Index altered.
RMANの起動とデフォルト設定の確認
[oracle@localhost ~]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on 金 6月 3 06:11:07 2016 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1439336626) RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default 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 ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/app/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default
除外表領域の指定
特定の表領域をバックアップ対象から外すためには「CONFIGURE EXCLUDE FOR TABLESPACE」コマンドによって設定する。
これによりハイライト行に示すように除外表領域が指定される。
RMAN> configure exclude for tablespace USER_INDEX; Tablespace USER_INDEX will be excluded from future whole database backups new RMAN configuration parameters are successfully stored RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default .......................................................... CONFIGURE EXCLUDE FOR TABLESPACE 'USER_INDEX'; CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/app/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default
バックアップの実行
除外設定を行った後は、通常と同様に「BACKUP DATABASE」コマンドで全体バックアップを取得する。
RMAN> backup database; Starting backup at 16-06-03 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=134 device type=DISK file 6 is excluded from whole database backup channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/opt/oracle/app/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/opt/oracle/app/oradata/orcl/system01.dbf input datafile file number=00003 name=/opt/oracle/app/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/opt/oracle/app/oradata/orcl/example01.dbf input datafile file number=00004 name=/opt/oracle/app/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 16-06-03 channel ORA_DISK_1: finished piece 1 at 16-06-03 piece handle=/opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_nnndf_TAG20160603T061125_co187xbq_.bkp tag=TAG20160603T061125 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:56 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 16-06-03 channel ORA_DISK_1: finished piece 1 at 16-06-03 piece handle=/opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T061125_co189s2r_.bkp tag=TAG20160603T061125 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 16-06-03
「LIST BACKUP」コマンドでバックアップの内容を確認すると、USER_INDEX表領域が含まれていないことがわかる。
RMAN> list backup; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 1 Full 9.36M DISK 00:00:01 16-06-03 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20160603T060715 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T060715_co18053x_.bkp SPFILE Included: Modification time: 16-06-02 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 2328889 Ckp time: 16-06-03 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 2 Full 1.24G DISK 00:00:49 16-06-03 BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20160603T061125 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_nnndf_TAG20160603T061125_co187xbq_.bkp List of Datafiles in backup set 2 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- -------- ---- 1 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/system01.dbf 2 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/sysaux01.dbf 3 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/undotbs01.dbf 4 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/users01.dbf 5 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/example01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 3 Full 9.36M DISK 00:00:04 16-06-03 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20160603T061125 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T061125_co189s2r_.bkp SPFILE Included: Modification time: 16-06-03 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 2329721 Ckp time: 16-06-03
除外設定を無効にする
NOEXCLUDE句を指定すると除外設定を無効にしてバックアップを取得することができる。
バックアップのログにUSER_INDEX表領域が含まれている。(12行目)
RMAN> backup database noexclude; Starting backup at 16-06-03 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=132 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=00002 name=/opt/oracle/app/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/opt/oracle/app/oradata/orcl/system01.dbf input datafile file number=00003 name=/opt/oracle/app/oradata/orcl/undotbs01.dbf input datafile file number=00005 name=/opt/oracle/app/oradata/orcl/example01.dbf input datafile file number=00006 name=/opt/oracle/app/oradata/orcl/user_index01.dbf --バックアップ対象となっている input datafile file number=00004 name=/opt/oracle/app/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 16-06-03 channel ORA_DISK_1: finished piece 1 at 16-06-03 piece handle=/opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_nnndf_TAG20160603T065225_co1bnslm_.bkp tag=TAG20160603T065225 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 16-06-03 channel ORA_DISK_1: finished piece 1 at 16-06-03 piece handle=/opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T065225_co1boxno_.bkp tag=TAG20160603T065225 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 16-06-03
LIST BACKUPでバックアップの内容を確認すると、やはりUSER_INDEX表領域がバックアップに含まれていることがわかる。
RMAN> list backup; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 1 Full 9.36M DISK 00:00:01 16-06-03 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20160603T060715 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T060715_co18053x_.bkp SPFILE Included: Modification time: 16-06-02 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 2328889 Ckp time: 16-06-03 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 2 Full 1.24G DISK 00:00:49 16-06-03 BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20160603T061125 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_nnndf_TAG20160603T061125_co187xbq_.bkp List of Datafiles in backup set 2 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- -------- ---- 1 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/system01.dbf 2 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/sysaux01.dbf 3 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/undotbs01.dbf 4 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/users01.dbf 5 Full 2329697 16-06-03 /opt/oracle/app/oradata/orcl/example01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 3 Full 9.36M DISK 00:00:04 16-06-03 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20160603T061125 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T061125_co189s2r_.bkp SPFILE Included: Modification time: 16-06-03 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 2329721 Ckp time: 16-06-03 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 4 Full 1.24G DISK 00:00:27 16-06-03 BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20160603T065225 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_nnndf_TAG20160603T065225_co1bnslm_.bkp List of Datafiles in backup set 4 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- -------- ---- 1 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/system01.dbf 2 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/sysaux01.dbf 3 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/undotbs01.dbf 4 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/users01.dbf 5 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/example01.dbf 6 Full 2331933 16-06-03 /opt/oracle/app/oradata/orcl/user_index01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 5 Full 9.36M DISK 00:00:01 16-06-03 BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20160603T065225 Piece Name: /opt/oracle/app/flash_recovery_area/ORCL/backupset/2016_06_03/o1_mf_ncsnf_TAG20160603T065225_co1boxno_.bkp SPFILE Included: Modification time: 16-06-03 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 2332008 Ckp time: 16-06-03
今日はここまで。