日常在生产环境中使用RMAN在线热备数据库一般都是每周一次全备+每天备归档 或者 每周一次全备,每天一次增备的方式进行备份的。这种方式备份的优点时,占用空间较少,备份快,恢复时间相对较长(因为要逐一读取全备之后的所有增备的备份文件)。
而另一种不常用的方法是:
1、先做一次基于 level 0级别数据库文件副本完全拷贝(backup ascopy level 0 database),RMAN脚本类似如下:
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup as copy incremental level 0 tag incr_update database format'/backup/rman_bak/full/lv0_%U.bak';
#backup archivelog all format '/backup/rman_bak/full/lv0_arc_%U.bak' tagincr_update;
#backup current controlfile format'/backup/rman_bak/full/lv0_ctl_%U.bak' tag incr_update;
release channel c1;
release channel c2;
release channel c3;
}
2、之后至少执行两次基于以上 level 0级别的数据库文件副本完全拷贝(全备)的增量备份,RMAN脚本如下:
run{
allocate channel c1 type disk format '/backup/rman_bak/incr/%U_cp.bak';
allocate channel c2 type disk format '/backup/rman_bak/incr/%U_cp.bak';
recover copy of database with tag 'incr_update';
backup incremental level 1 for recover of copy with tag 'incr_update'database;
#backup archivelog all format '/backup/rman_bak/incr/arc_%U.bak' tagincr_update;
#backup current controlfile format '/backup/rman_bak/incr/ctl_%U.bak'tag incr_update;
release channel c1;
release channel c2;
}
以上 tag 的名称必须要全部一致,必须要和之前的level 0的拷贝全备的 tag 名称一致。
其中:
2.1)、recover copy of database with tag 'incr_update'; 表示将上次的增备的备份文件内容应用到全备文件中,应用后,全备文件的最后修改时间会变为最新的时间。第一次增备时,由于还不存在上次的的增备,所以是不会应用上一次的增备到全库文件的。
2.2)、backup incremental level 1 for recover of copy withtag 'incr_update' database; 这个是开始执行本次的增备。
昨天测试的具体实现过程如下:
1、检查当前的日志组是group 1:
15:52:50SYS@orcl*SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS
------ --------- ------------ ------------------ ------------------ ------------- --------
1 1 1 52428800 512 1 NO CURRENT
2 1 0 52428800 512 1 YES UNUSED
3 1 0 52428800 512 1 YESUNUSED
2、执行基于 level 0 的 backup as copy 全备:
RMAN> run{
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> allocate channel c3 type disk;
5> backup as copy incremental level 0 tag incr_update database format'/backup/rman_bak/full/lv0_%U.bak';
6> backup archivelog all format '/backup/rman_bak/full/lv0_arc_%U.bak'tag incr_update;
7> backup current controlfile format'/backup/rman_bak/full/lv0_ctl_%U.bak' tag incr_update;
8> release channel c1;
9> release channel c2;
10> release channel c3;
11> }
using targetdatabase control file instead of recovery catalog
allocated channel: c1
channel c1: SID=22 device type=DISK
allocated channel: c2
channel c2: SID=143 device type=DISK
allocated channel: c3
channel c3: SID=9 device type=DISK
Starting backup at 11-OCT-17
channel c1: starting datafile copy
input datafile file number=00001 name=/oracle/oradata/orcl/system01.dbf
channel c2: starting datafile copy
input datafile file number=00002 name=/oracle/oradata/orcl/sysaux01.dbf
channel c3: starting datafile copy
input datafile file number=00006 name=/oracle/oradata/orcl/test_tbs01.dbf
output filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.baktag=INCR_UPDATE RECID=138 STAMP=957110026
channel c3: datafile copy complete, elapsed time: 00:00:47
channel c3: starting datafile copy
input datafile file number=00003 name=/oracle/oradata/orcl/undotbs01.dbf
output file name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.baktag=INCR_UPDATE RECID=140 STAMP=957110122
channel c1: datafile copy complete, elapsed time: 00:02:05
channel c1: starting datafile copy
input datafile file number=00005 name=/oracle/oradata/orcl/example01.dbf
output file name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.baktag=INCR_UPDATE RECID=139 STAMP=957110117
channel c2: datafile copy complete, elapsed time: 00:02:05
channel c2: starting datafile copy
input datafile file number=00008 name=/oracle/oradata/orcl/goldengate01.dbf
output filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.baktag=INCR_UPDATE RECID=141 STAMP=957110125
channel c3: datafile copy complete, elapsed time: 00:01:09
channel c3: starting datafile copy
copying current control file
output filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.baktag=INCR_UPDATE RECID=142 STAMP=957110136
channel c1: datafile copy complete, elapsed time: 00:00:22
channel c1: starting datafile copy
input datafile file number=00004 name=/oracle/oradata/orcl/users01.dbf
output filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.baktag=INCR_UPDATE RECID=143 STAMP=957110137
channel c2: datafile copy complete, elapsed time: 00:00:21
channel c2: starting datafile copy
input datafile file number=00010 name=/oracle/oradata/orcl/users02.dbf
output file name=/backup/rman_bak/full/lv0_cf_D-ORCL_id-1342766198_5msgolrg.baktag=INCR_UPDATE RECID=144 STAMP=957110137
channel c3: datafile copy complete, elapsed time: 00:00:15
channel c3: starting incremental level 0 datafile backup set
channel c3: specifying datafile(s) in backup set
including currentSPFILE in backup set
channel c3:starting piece 1 at 11-OCT-17
output filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.baktag=INCR_UPDATE RECID=145 STAMP=957110144
channel c1: datafile copy complete, elapsed time: 00:00:00
output file name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.baktag=INCR_UPDATE RECID=146 STAMP=957110144
channel c2: datafile copy complete, elapsed time: 00:00:00
channel c3: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_5psgols0_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c3: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
Starting backup at 11-OCT-17
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=3 RECID=145 STAMP=957019801
input archived log thread=1 sequence=4 RECID=146 STAMP=957020136
input archived log thread=1 sequence=5 RECID=147 STAMP=957020138
input archived log thread=1 sequence=6 RECID=148 STAMP=957020140
input archived log thread=1 sequence=7 RECID=149 STAMP=957020143
channel c1: starting piece 1 at 11-OCT-17
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=150 STAMP=957106841
channel c2: starting piece 1 at 11-OCT-17
channel c3: starting archived log backup set
channel c3: specifying archived log(s) in backup set
input archived log thread=1 sequence=9 RECID=151 STAMP=957107100
input archived log thread=1 sequence=10 RECID=152 STAMP=957107524
input archived log thread=1 sequence=11 RECID=153 STAMP=957108249
input archived log thread=1 sequence=12 RECID=154 STAMP=957108273
channel c3: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_arc_5qsgols4_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:02
channel c1: starting archived log backup set
channel c1: specifying archived l