3、演示生成快照控制文件
--下面查看新的快照控制文件位置无任何文件
sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap
total 0
--生成控制文件快照
--在备份控制文件时会生成控制文件快照,如下
RMAN> backup current controlfile;
Starting backup at 2013/10/15 13:46:03
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=143 device type=DISK
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
channel ORA_DISK_1: starting piece 1 at 2013/10/15 13:46:05
channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:46:07
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncnnf_TAG20131015T134604_95sonxsx_.bkp
tag=TAG20131015T134604 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 2013/10/15 13:46:07
--我们看以看到已经生成了一个控制文件快照时间为13:46
sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap
total 9.4M
-rw-r----- 1 Oracle asmadmin 9.4M Oct 15 13:46 snapcf_usbo.f
--下面我们来备份系统表空间,注意,备份系统表空间时,或者数据库发生结构性变化且开启了控制文件自动备份
--则在备份时即使不指定备份控制文件,控制文件仍然会被自动备份,如下
RMAN> backup tablespace system tag=system_tbs_bak;
Starting backup at 2013/10/15 13:51:30
using channel ORA_DISK_1
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=/u03/database/usbo/oradata/system01.dbf
channel ORA_DISK_1: starting piece 1 at 2013/10/15 13:51:30
channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:52:25
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_nnndf_SYSTEM_TBS_BAK_95soz2l6_.bkp
tag=SYSTEM_TBS_BAK comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
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 2013/10/15 13:52:29
channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:52:30
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_SYSTEM_TBS_BAK_95sp0x7s_.bkp
tag=SYSTEM_TBS_BAK comment=NONE --这个备份集就包含了控制文件与spfile文件的自动备份
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2013/10/15 13:52:30
--检查快照控制文件是否被更新,此时文件的时间发生了变化为13:52,如下
sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap
total 9.4M
-rw-r----- 1 oracle asmadmin 9.4M Oct 15 13:52 snapcf_usbo.f
--下面我们来做一个全备,且在全备期间添加一个新的表空间以观察快照控制文件
RMAN> backup database tag=full_bak;
Starting backup at 2013/10/15 14:02:01 --->全备启动时间为14:02:01
using channel ORA_DISK_1
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=/u03/database/usbo/oradata/system01.dbf
input datafile file number=00002 name=/u03/database/usbo/oradata/sysaux01.dbf
input datafile file number=00003 name=/u03/database/usbo/oradata/undotbs01.dbf
input datafile file number=00004 name=/u03/database/usbo/oradata/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2013/10/15 14:02:01
channel ORA_DISK_1: finished piece 1 at 2013/10/15 14:03:56
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_nnndf_FULL_BAK_95splt2p_.bkp tag=FULL_BAK comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:55
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 2013/10/15 14:04:00
channel ORA_DISK_1: finished piece 1 at 2013/10/15 14:04:02
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_FULL_BAK_95sppjj9_.bkp tag=FULL_BAK comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 2013/10/15 14:04:02
--我们开启另外一个session,此时时间为14:02:08,我们来添加一个表空间
14:02:08 sys@USBO> create tablespace tbs_test datafile '/u03/database/usbo/oradata/tbs_test.dbf' size 5m;
Tablespace created.
14:02:54 sys@USBO>
--Author : Leshami
--Blog : www.linuxidc.com
--查看控制文件中,新添加的表空间信息已经被追加到控制文件
14:06:05 sys@USBO> ho strings /u03/database/usbo/oradata/control01.ctl | grep tbs_test
/u03/database/usbo/oradata/tbs_test.dbf
--同时新添加的表空间信息同样被追到了快照控制文件
14:07:19 sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f
-rw-r----- 1 oracle asmadmin 9.4M Oct 15 14:04 /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f
14:07:05 sys@USBO> ho strings /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f | grep tbs_test
/u03/database/usbo/oradata/tbs_test.dbf
--对于备份期间控制文件的自动备份呢?
--下面的检查结果表明,自动备份的控制文件中也存在新表空间的信息
14:10:49 sys@USBO> ho strings /u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_FULL_BAK_95sppjj9_.bkp | grep tbs_test
/u03/database/usbo/oradata/tbs_test.dbf
--查看数据字典信息,表空间已经被添加
14:10:52 sys@USBO> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u03/database/usbo/oradata/system01.dbf
2 /u03/database/usbo/oradata/sysaux01.dbf
3 /u03/database/usbo/oradata/undotbs01.dbf
4 /u03/database/usbo/oradata/users01.dbf
5 /u03/database/usbo/oradata/tbs_test.dbf
--从上面的测试可知,
--a、RMAN 开始备份,Oracle检查控制文件与快照控制文件是否一致(如果不存在,从控制文件提取信息创建),不一致则刷新快照控制文件。
--b、RMAN从快照控制文件读取信息进行备份,此时快照控制文件并不包含新的表空间,因此备份集中没有tbs_test.dbf
--c、备份完成后进行了控制文件与spfile文件自动备份
--d、刷新了快照控制文件
--e、所以上面的检测中控制文件,快照控制文件,备份的控制文件中都包含新表空间的信息。但却没有备份,因为表空间在备份开始后被添加。
--删除演示的表空间
14:16:07 sys@USBO> drop tablespace tbs_test including contents and datafiles;
Tablespace dropped.
--将快照控制文件位置调整到缺省路径
RMAN> configure snapshot controlfile name clear;
old RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f';
RMAN configuration parameters are successfully reset to default value
RMAN> show snapshot controlfile name;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/db_1/dbs/snapcf_usbo.f'; # default