RMAN 备份路径困惑(使用plus archivelog时)
--*******************************************
-- RMAN 备份路径困惑(使用plus archivelog时)
--*******************************************
最近RMAN备份时,碰到一点疑惑。即使用plus archivelog 时不管是使用format参数指定备份文件的路径还是使用configure配置RMAN备份路径,都不能
将数据文件和日志文件备份到同一路径。在因为以前使用RMAN备份,都是单独备份数据文件和日志文件,所以一直没有在意这个问题。下面给出具体事例。
一、指定备份路径备份数据库及归档日志
RMAN> backup database format '/u01/bk/bk_db_%U' plus archivelog;
Starting backup at 02-MAY-11
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=146 devtype=DISK
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=50 recid=10 stamp=750091269
input archive log thread=1 sequence=51 recid=11 stamp=750091281
input archive log thread=1 sequence=52 recid=12 stamp=750091286
input archive log thread=1 sequence=53 recid=13 stamp=750092325
input archive log thread=1 sequence=54 recid=14 stamp=750092487
input archive log thread=1 sequence=55 recid=15 stamp=750093621
input archive log thread=1 sequence=56 recid=16 stamp=750094799
input archive log thread=1 sequence=57 recid=17 stamp=750095198
input archive log thread=1 sequence=58 recid=18 stamp=750099671
input archive log thread=1 sequence=59 recid=19 stamp=750099848
input archive log thread=1 sequence=60 recid=20 stamp=750099945
input archive log thread=1 sequence=61 recid=21 stamp=750103678
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/flash_recovery_area/ODBP/backupset/2011_05_02/ --归档日志放在了闪回区
o1_mf_annnn_TAG20110502T180758_6vx0mzl2_.bkp tag=TAG20110502T180758 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/odbp/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/odbp/undotbs01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/odbp/sysaux01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/odbp/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1dmbbb40_1_1 tag=TAG20110502T180800 comment=NONE --数据文件存放在了指定的路径
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/odbp/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/odbp/undotbs01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/odbp/sysaux01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/odbp/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/flash_recovery_area/ODBP/backupset/2011_05_02/ --数据文件同时也存放在了闪回区
o1_mf_nnndf_TAG20110502T180800_6vx0og2z_.bkp tag=TAG20110502T180800 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1fmbbb6r_1_1 tag=TAG20110502T180800 comment=NONE --控制文件和spfile存放到了指定路径
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/flash_recovery_area/ODBP/backupset/2011_05_02/ --控制文件和spfile同时也保存到了闪回区
o1_mf_ncsnf_TAG20110502T180800_6vx0pycl_.bkp tag=TAG20110502T180800 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=62 recid=22 stamp=750103776
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/flash_recovery_area/ODBP/backupset/2011_05_02/ --归档日志放在了闪回区
o1_mf_annnn_TAG20110502T180936_6vx0q1dg_.bkp tag=TAG20110502T180936 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-MAY-11
--查看备份的数据文件、控制文件等信息
[oracle@odbp 2011_05_02]$ ls -hltr
total 703M
-rw-r----- 1 oracle oinstall 4.5M May 2 18:08 o1_mf_annnn_TAG20110502T180758_6vx0mzl2_.bkp
-rw-r----- 1 oracle oinstall 691M May 2 18:09 o1_mf_nnndf_TAG20110502T180800_6vx0og2z_.bkp
-rw-r----- 1 oracle oinstall 6.9M May 2 18:09 o1_mf_ncsnf_TAG20110502T180800_6vx0pycl_.bkp
-rw-r----- 1 oracle oinstall 15K May 2 18:09 o1_mf_annnn_TAG20110502T180936_6vx0q1dg_.bkp
[oracle@odbp 2011_05_02]$ ls -hltr /u01/bk
total 698M
-rw-r----- 1 oracle oinstall 691M May 2 18:08 bk_db_1dmbbb40_1_1
-rw-r----- 1 oracle oinstall 6.9M May 2 18:09 bk_db_1fmbbb6r_1_1
从上面的情况来看,
1.当指定了db_recovery_file_dest参数为 /u01/app/oracle/flash_recovery_area时,则归档日志被备份到此目录。
2.在参数db_recovery_file_dest参数为闪回区时,则数据文件与控制文件及spfile被使用了双重备份。
--RMAN配置信息为缺省,未做任何调整
RMAN> show all;
RMAN configuration parameters 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 ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_odbp.f'; # default
--将db_recovery_file_dest参数置空
SQL> alter system set db_recovery_file_dest='';
System altered.
二、再次使用RMAN进行备份
RMAN> backup database format '/u01/bk/bk_db_%U' plus archivelog;
Starting backup at 02-MAY-11
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=138 devtype=DISK
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=50 recid=10 stamp=750091269
input archive log thread=1 sequence=51 recid=11 stamp=750091281
input archive log thread=1 sequence=52 recid=12 stamp=750091286
input archive log thread=1 sequence=53 recid=13 stamp=750092325
input archive log thread=1 sequence=54 recid=14 stamp=750092487
input archive log thread=1 sequence=55 recid=15 stamp=750093621
input archive log thread=1 sequence=56 recid=16 stamp=750094799
input archive log thread=1 sequence=57 recid=17 stamp=750095198
input archive log thread=1 sequence=58 recid=18 stamp=750099671
input archive log thread=1 sequence=59 recid=19 stamp=750099848
input archive log thread=1 sequence=60 recid=20 stamp=750099945
input archive log thread=1 sequence=61 recid=21 stamp=750103678
input archive log thread=1 sequence=62 recid=22 stamp=750103776
input archive log thread=1 sequence=63 recid=23 stamp=750104981
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/10g/dbs/1imbbccm_1_1 tag=TAG20110502T182942 comment=NONE --归档日志备份位于$ORACLE_HOME/dbs路径下
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/odbp/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/odbp/undotbs01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/odbp/sysaux01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/odbp/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1jmbbcco_1_1 tag=TAG20110502T182944 comment=NONE --数据文件存放在了指定的路径
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/odbp/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/odbp/undotbs01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/odbp/sysaux01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/odbp/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/10g/dbs/1kmbbceg_1_1 tag=TAG20110502T182944 comment=NONE--数据文件同时也存放在$ORACLE_HOME/dbs路径下
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1lmbbcg7_1_1 tag=TAG20110502T182944 comment=NONE --控制文件及spfile备份位于指定路径下
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11
piece handle=/u01/app/oracle/10g/dbs/1mmbbcgc_1_1 tag=TAG20110502T182944 comment=NONE--归档日志文件备份位于$ORACLE_HOME/dbs路径下
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=64 recid=24 stamp=750105102
channel ORA_DISK_1: starting piece 1 at 02-MAY-11
channel ORA_DISK_1: finished piece 1 at 02-MAY-11 --控制文件及spfile备同时也存放在$ORACLE_HOME/dbs路径下
piece handle=/u01/app/oracle/10g/dbs/1nmbbcge_1_1 tag=TAG20110502T183142 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-MAY-11
从上面的情况来看,
1.当db_recovery_file_dest参数为空值时,则归档日志,控制文件及spfile被备份到$ORACLE_HOME/dbs路径下
2.数据文件及控制文件同样实现了双重备份,一份位于$ORACLE_HOME/dbs路径下,一份位于用户指定路径下
三、如何将归档日志文件,控制文件,spfile文件以及数据文件备份到同一路径下,
RMAN> run{
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> backup database format '/u01/bk/bk_db_%U'
5> plus archivelog format '/u01/bk/bk_lg_%U';
6> release channel ch1;
7> release channel ch2;}
using target database control file instead of recovery catalog
allocated channel: ch1
channel ch1: sid=141 devtype=DISK
allocated channel: ch2
channel ch2: sid=148 devtype=DISK
Starting backup at 02-MAY-11
current log archived
channel ch1: starting archive log backupset
channel ch1: specifying archive log(s) in backup set
input archive log thread=1 sequence=59 recid=19 stamp=750099848
input archive log thread=1 sequence=60 recid=20 stamp=750099945
input archive log thread=1 sequence=61 recid=21 stamp=750103678
input archive log thread=1 sequence=62 recid=22 stamp=750103776
input archive log thread=1 sequence=63 recid=23 stamp=750104981
input archive log thread=1 sequence=64 recid=24 stamp=750105102
input archive log thread=1 sequence=65 recid=25 stamp=750767326
input archive log thread=1 sequence=66 recid=26 stamp=750769794
channel ch1: starting piece 1 at 02-MAY-11
channel ch2: starting archive log backupset
channel ch2: specifying archive log(s) in backup set
input archive log thread=1 sequence=50 recid=10 stamp=750091269
input archive log thread=1 sequence=51 recid=11 stamp=750091281
input archive log thread=1 sequence=52 recid=12 stamp=750091286
input archive log thread=1 sequence=53 recid=13 stamp=750092325
input archive log thread=1 sequence=54 recid=14 stamp=750092487
input archive log thread=1 sequence=55 recid=15 stamp=750093621
input archive log thread=1 sequence=56 recid=16 stamp=750094799
input archive log thread=1 sequence=57 recid=17 stamp=750095198
input archive log thread=1 sequence=58 recid=18 stamp=750099671
channel ch2: starting piece 1 at 02-MAY-11
channel ch1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_lg_1ombvlk3_1_1 tag=TAG20110510T110954 comment=NONE --归档日志存放到指定路径
channel ch1: backup set complete, elapsed time: 00:00:03
channel ch2: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_lg_1pmbvlk3_1_1 tag=TAG20110510T110954 comment=NONE --归档日志存放到指定路径
channel ch2: backup set complete, elapsed time: 00:00:03
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
channel ch1: starting full datafile backupset
channel ch1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/odbp/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/odbp/sysaux01.dbf
channel ch1: starting piece 1 at 02-MAY-11
channel ch2: starting full datafile backupset
channel ch2: specifying datafile(s) in backupset
input datafile fno=00002 name=/u01/app/oracle/oradata/odbp/undotbs01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/odbp/users01.dbf
channel ch2: starting piece 1 at 02-MAY-11
channel ch2: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1rmbvlk7_1_1 tag=TAG20110510T110958 comment=NONE --数据文件存放到指定路径
channel ch2: backup set complete, elapsed time: 00:01:09
channel ch2: starting full datafile backupset
channel ch2: specifying datafile(s) in backupset
including current control file in backupset
channel ch2: starting piece 1 at 02-MAY-11
channel ch2: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1smbvlmd_1_1 tag=TAG20110510T110958 comment=NONE --数据文件存放到指定路径
channel ch2: backup set complete, elapsed time: 00:00:07
channel ch2: starting full datafile backupset
channel ch2: specifying datafile(s) in backupset
including current SPFILE in backupset
channel ch2: starting piece 1 at 02-MAY-11
channel ch2: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1tmbvlml_1_1 tag=TAG20110510T110958 comment=NONE --控制文件,spfile文件存放到指定路径
channel ch2: backup set complete, elapsed time: 00:00:08
channel ch1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_db_1qmbvlk7_1_1 tag=TAG20110510T110958 comment=NONE
channel ch1: backup set complete, elapsed time: 00:01:31
Finished backup at 02-MAY-11
Starting backup at 02-MAY-11
current log archived
channel ch1: starting archive log backupset
channel ch1: specifying archive log(s) in backup set
input archive log thread=1 sequence=67 recid=27 stamp=750769890
channel ch1: starting piece 1 at 02-MAY-11
channel ch1: finished piece 1 at 02-MAY-11
piece handle=/u01/bk/bk_lg_1umbvln2_1_1 tag=TAG20110510T111130 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-MAY-11
released channel: ch1
released channel: ch2
四、总结(RMAN备份路径)
1.在未通过configure命令设定RMAN备份文件路径以及未修改db_recovery_file_dest,且指定了format参数,则备份的数据文件,参数文件,
控制文件,采用了双重保护方式,一份位于指定路径,一份位于缺省的闪回区。同时归档日志保存在闪回区。
2.一旦修改了db_recovery_file_dest至特定路径,则同上述功能一样,所不同的是存放到非缺省的闪回区。
3.当db_recovery_file_dest为空值时,同样使用双重保护,但这些文件被放置到了$ORACLE_HOME/dbs路径下。
4.当使用了configure channel device type disk format = '/u01/bk/db_%U'配置RMAN,则对于badkup database plus archivelog同样会出现上
述的情况。
5.如果指定了configure channel device type disk format = '/u01/bk/db_%U',则单独备份数据文件和日志文件不存在问题,都会存放在指定路径。
6.在同一条命令来完成(badkup database plus archivelog)则需要单独指定数据文件和日志文件的位置,如下方式:
backup database format '/u01/bk/bk_db_%U'
plus archivelog format '/u01/bk/bk_lg_%U'
+++++++++++++++++++++++++++++++++++
backup archivelog all 和 backup database plus archivelog; 区别
OLTP系统的生产库一般都是打开归档模式,当CUD操作频繁并且时常使用大批量处理时,每天的归档日志也是超级大的,如果长期保留这些归档日志磁盘空间消耗是很恐怖的,所以我们在使用RMAN进行数据库备份时,将归档日志进行备份,来释放磁盘空间。
备份归档日志方式:
单独备份归档日志:backup archivelog all
在执行备库时一起备份归档日志:backup database plus archivelog;
这两种方式有什么区别呢?
运行backup archivelog all 命令时执行的步骤:
1.alter system archive log current; 归档当前日志
2.backup archivelog all ; 备份所有归档日志
而运行backup database plus archivelog,的运行步骤是;
1.alter system archive log current; 归档当前日志
2.backup archivelog all; 备份所有归档日志
3.backup database; 备份数据库
4.alter system archive log current; 归档当前日志
5.backup archivelog recently generated ; 备份刚生成的归档日志
删除归档日志一般在备份归档日志同时加上一个参数:delete all input
例如:backup database plus archivelog delete all input; 执行此命令是会将所有的归档日志进行备份,并且在备份的同时删除已备份的归档日志。
所以如果在RMAN备份脚本中有plus archivelog参数 就无需在备份归档日志之前执行:sql 'alter system archive log current';