RMAN中基于copy的全备合并增备进行增量备份的方式
来源:互联网 发布:apache开源项目 编辑:程序博客网 时间:2024/06/11 10:24
日常在生产环境中使用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 log(s) in backup set
input archived log thread=1 sequence=1 RECID=157 STAMP=957110147
channel c1: starting piece 1 at 11-OCT-17
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_arc_5rsgols4_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:00:02
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=13 RECID=155 STAMP=957108614
input archived log thread=1 sequence=14 RECID=156 STAMP=957109582
channel c2: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_arc_5tsgols6_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:00
channel c3: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_arc_5ssgols4_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c3: backup set complete, elapsed time: 00:00:01
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_arc_5usgols6_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
Starting backup at 11-OCT-17
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including currentcontrol file in backup set
channel c1:starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/full/lv0_ctl_5vsgols7_1_1.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
released channel: c1
released channel: c2
released channel: c3
说明:执行 backup as copy副本方式备份数据库时,也会自动备份 spfile和 control file文件,如上黑粗体所示,并且基于 copy方式的备份,是原样拷贝数据文件进行备份,备份文件大小与数据文件大小一样大(不像 backup,只备份数据文件的已用数据块)。
2.1)、全备完后,检查一下备份文件的大小备份文件的生成 时间,如下:
oracle@SLES11:/backup/rman_bak/full>ls -l
total 1923888
-rw-r----- 1 oracle oinstall 98304 2017-10-11 15:55lv0_5psgols0_1_1.bak
-rw-r----- 1 oracle oinstall 218624 2017-10-11 15:55lv0_arc_5qsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 17538560 2017-10-11 15:55lv0_arc_5rsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 1186816 2017-10-11 15:55lv0_arc_5ssgols4_1_1.bak
-rw-r----- 1 oracle oinstall 318464 2017-10-11 15:55lv0_arc_5tsgols6_1_1.bak
-rw-r----- 1 oracle oinstall 307200 2017-10-11 15:55lv0_arc_5usgols6_1_1.bak
-rw-r----- 1 oracle oinstall 10010624 2017-10-11 15:55lv0_cf_D-ORCL_id-1342766198_5msgolrg.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 15:55lv0_ctl_5vsgols7_1_1.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak
-rw-r----- 1 oracle oinstall 660611072 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
-rw-r----- 1 oracle oinstall 734011392 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
-rw-r----- 1 oracle oinstall 160440320 2017-10-11 15:53lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
-rw-r----- 1 oracle oinstall 157294592 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
-rw-r----- 1 oracle oinstall 1056768 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
-rw-r----- 1 oracle oinstall 5251072 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
2.2)、全备完后,检查一下当前日志组:
15:57:39SYS@orcl*SQL> select * from v$log;
ROUP# HREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS
----- --------- ---------- ----------- ---------- --------- --- ---------
1 1 1 52428800 512 1 YES ACTIVE
2 1 2 52428800 512 1 NO CURRENT
3 1 0 52428800 512 1 YES UNUSED
说明:当前日志组变成 group 2了,因为以上全备时指定全备后执行 backup archivelog all备份归档,所以执行备份归档时,会自动归档当前日志,会切换一次日志,所以当前日志变为2。
3、执行增备
RMAN> run{
2> allocate channel c1 type disk format '/backup/rman_bak/incr/%U_cp.bak';
3> allocate channel c2 type disk format '/backup/rman_bak/incr/%U_cp.bak';
4> recover copy of database with tag 'incr_update';
5> backup incremental level 1 for recover of copy with tag 'incr_update'database;
6> #backup archivelog all format '/backup/rman_bak/incr/arc_%U.bak' tagincr_update;
7> #backup current controlfile format '/backup/rman_bak/incr/ctl_%U.bak' tagincr_update;
8>release channel c1;
9> release channel c2;
10> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=9 device type=DISK
allocated channel: c2
channel c2: SID=143 device type=DISK
Starting recover at 11-OCT-17
no copy of datafile 1 found to recover
no copy of datafile 2 found to recover
no copy of datafile 3 found to recover
no copy of datafile 4 found to recover
no copy of datafile 5 found to recover
no copy of datafile 6 found to recover
no copy of datafile 8 found to recover
no copy of datafile 10 found to recover ##这里只是执行了第一次增备,所以没有上一次的增备可以应用到全备文件。
Finished recover at 11-OCT-17
Starting backup at 11-OCT-17
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00002 name=/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00006 name=/oracle/oradata/orcl/test_tbs01.dbf
input datafile file number=00005 name=/oracle/oradata/orcl/example01.dbf
input datafile file number=00008 name=/oracle/oradata/orcl/goldengate01.dbf
channel c1: starting piece 1 at 11-OCT-17
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/oradata/orcl/system01.dbf
input datafile file number=00003 name=/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/oracle/oradata/orcl/users01.dbf
input datafile file number=00010 name=/oracle/oradata/orcl/users02.dbf
channel c2: starting piece 1 at 11-OCT-17
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/61sgom0d_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:01:06
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/60sgom0d_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:01:13
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel c1: starting piece 1 at 11-OCT-17
including current control file in backup set
channel c2: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/63sgom2m_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/62sgom2f_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
released channel: c1
released channel: c2
3.1)、执行完增备后,由于是第一次增备,所以没有上一次的增备可以应用到全备文件,所以全备文件的大小和时间是不变的,如下:
oracle@SLES11:/backup/rman_bak/full>ls -l
total 1923888
-rw-r----- 1 oracle oinstall 98304 2017-10-11 15:55lv0_5psgols0_1_1.bak
-rw-r----- 1 oracle oinstall 218624 2017-10-11 15:55lv0_arc_5qsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 17538560 2017-10-11 15:55lv0_arc_5rsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 1186816 2017-10-11 15:55lv0_arc_5ssgols4_1_1.bak
-rw-r----- 1 oracle oinstall 318464 2017-10-11 15:55lv0_arc_5tsgols6_1_1.bak
-rw-r----- 1 oracle oinstall 307200 2017-10-11 15:55lv0_arc_5usgols6_1_1.bak
-rw-r----- 1 oracle oinstall 10010624 2017-10-11 15:55lv0_cf_D-ORCL_id-1342766198_5msgolrg.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 15:55lv0_ctl_5vsgols7_1_1.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak
-rw-r----- 1 oracle oinstall 660611072 2017-10-11 15:55 lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
-rw-r----- 1 oracle oinstall 734011392 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
-rw-r----- 1 oracle oinstall 160440320 2017-10-11 15:53lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
-rw-r----- 1 oracle oinstall 157294592 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
-rw-r----- 1 oracle oinstall 1056768 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
-rw-r----- 1 oracle oinstall 5251072 2017-10-11 15:55lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
3.2)、增备文件已经生成,如下:
oracle@SLES11:/backup/rman_bak/incr>ls -l
total 10362
drwxr-xr-x 2 oracle oinstall 48 2017-10-11 15:47 2
drwxr-xr-x 2 oracle oinstall 48 2017-10-11 14:41 3
-rw-r----- 1 oracle oinstall 212992 2017-10-11 15:59 60sgom0d_1_1_cp.bak
-rw-r----- 1 oracle oinstall 229376 2017-10-11 15:59 61sgom0d_1_1_cp.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 15:59 62sgom2f_1_1_cp.bak
-rw-r----- 1 oracle oinstall 98304 2017-10-11 15:5963sgom2m_1_1_cp.bak
4、我们创建一个测试表 tmp,用于应用全备加增量进行做不完全恢复测试
4.1)、检查当前日志组,仍然是 group 2:
16:04:29TUSER@orcl*SQL> select * from v$log;
GROUP# HREAD# EQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS
------ -------- ---------- --------- ---------- -------- --- ---------
1 1 1 52428800 512 1 YES INACTIVE
2 1 2 52428800 512 1 NO CURRENT
3 1 0 52428800 512 1 YES UNUSED
4.2)创建 tmp 测试表:
16:04:34TUSER@orcl*SQL> create table tmp(id int);
16:05:12TUSER@orcl*SQL> alter system switch logfile;
16:05:50TUSER@orcl*SQL> insert into tmp values(1);
16:06:00TUSER@orcl*SQL> commit;
16:08:41TUSER@orcl*SQL> alter system switch logfile;
6:08:49TUSER@orcl*SQL> select * from v$log;
ROUP# HREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS
----- -------- ---------- --------- ---------- -------- --- ------------
1 1 4 52428800 512 1 NO CURRENT
2 1 2 52428800 512 1 YES ACTIVE
3 1 3 52428800 512 1 YES ACTIVE
5、再次执行增备:
run{
2> allocate channel c1 type disk format '/backup/rman_bak/incr/2/%U_cp.bak';
3> allocate channel c2 type disk format '/backup/rman_bak/incr/2/%U_cp.bak';
4> recover copy of database with tag 'incr_update';
5> backup incremental level 1 for recover of copy with tag 'incr_update'database;
6> #backup archivelog all format '/backup/rman_bak/incr/arc_%U.bak' tagincr_update;
7> #backup current controlfile format '/backup/rman_bak/incr/ctl_%U.bak' tagincr_update;
8> release channel c1;
9> release channel c2;
10> }
using target database control file instead of recoverycatalog
allocated channel: c1
channel c1: SID=9 device type=DISK
allocated channel: c2
channel c2: SID=139 device type=DISK
Starting recover at 11-OCT-17
channel c1: starting incremental datafile backup set restore
channel c1: specifying datafile copies to recover
recovering datafile copy file number=00001name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
recovering datafile copy file number=00003name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
recovering datafile copy file number=00004 name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
recovering datafile copy file number=00010name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
channel c1: reading from backup piece /backup/rman_bak/incr/61sgom0d_1_1_cp.bak
channel c2: starting incremental datafile backup set restore
channel c2: specifying datafile copies to recover
recovering datafile copy file number=00002name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
recovering datafile copy file number=00005name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
recovering datafile copy file number=00006name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
recovering datafile copy file number=00008name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak ##以上recovering datafile... 就是指应用上一次的增备到全备文件
channel c2: reading from backup piece /backup/rman_bak/incr/60sgom0d_1_1_cp.bak
channel c2: piece handle=/backup/rman_bak/incr/60sgom0d_1_1_cp.baktag=INCR_UPDATE
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:00:01
channel c1: piece handle=/backup/rman_bak/incr/61sgom0d_1_1_cp.baktag=INCR_UPDATE
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:03
Finished recover at 11-OCT-17
Starting backup at 11-OCT-17
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00002 name=/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00006 name=/oracle/oradata/orcl/test_tbs01.dbf
input datafile file number=00005 name=/oracle/oradata/orcl/example01.dbf
input datafile file number=00008 name=/oracle/oradata/orcl/goldengate01.dbf
channel c1: starting piece 1 at 11-OCT-17
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/oradata/orcl/system01.dbf
input datafile file number=00003 name=/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/oracle/oradata/orcl/users01.dbf
input datafile file number=00010 name=/oracle/oradata/orcl/users02.dbf
channel c2: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/2/64sgomm7_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:01:15
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/2/65sgomm7_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:01:15
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel c2: starting piece 1 at 11-OCT-17
including current control file in backup set
channel c1: starting piece 1 at 11-OCT-17
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/2/67sgomoj_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/2/66sgomoi_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
released channel: c1
released channel: c2
5.1)、第一次增备完成后,其生成的备份文件和时间如下:
oracle@SLES11:/backup/rman_bak/incr/2>ls -l
total 13925
-rw-r----- 1 oracle oinstall 2719744 2017-10-11 16:10 64sgomm7_1_1_cp.bak
-rw-r----- 1 oracle oinstall 1368064 2017-10-11 16:10 65sgomm7_1_1_cp.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 16:11 66sgomoi_1_1_cp.bak
-rw-r----- 1 oracle oinstall 98304 2017-10-11 16:1067sgomoj_1_1_cp.bak
5.2)、再次检查全备文件的最后修改时间变成了以上第二次增备时的执行 recovering datafile copy 时的时间了,如下:
oracle@SLES11:/backup/rman_bak/full>ls -l
total 1923888
-rw-r----- 1 oracle oinstall 98304 2017-10-11 15:55lv0_5psgols0_1_1.bak
-rw-r----- 1 oracle oinstall 218624 2017-10-11 15:55lv0_arc_5qsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 17538560 2017-10-11 15:55lv0_arc_5rsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 1186816 2017-10-11 15:55lv0_arc_5ssgols4_1_1.bak
-rw-r----- 1 oracle oinstall 318464 2017-10-11 15:55lv0_arc_5tsgols6_1_1.bak
-rw-r----- 1 oracle oinstall 307200 2017-10-11 15:55lv0_arc_5usgols6_1_1.bak
-rw-r----- 1 oracle oinstall 10010624 2017-10-11 15:55lv0_cf_D-ORCL_id-1342766198_5msgolrg.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 15:55lv0_ctl_5vsgols7_1_1.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 16:09 lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak
-rw-r----- 1 oracle oinstall 660611072 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
-rw-r----- 1 oracle oinstall 734011392 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
-rw-r----- 1 oracle oinstall 160440320 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
-rw-r----- 1 oracle oinstall 157294592 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
-rw-r----- 1 oracle oinstall 1056768 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
-rw-r----- 1 oracle oinstall 5251072 2017-10-11 16:09lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
6、为测试表 tmp 做不完全恢复
6.1)、获取要做不完全恢复的测试的 scn 位置:
16:13:36SYS@orcl*SQL> select sysdate,current_scn from v$database;
SYSDATE CURRENT_SCN
------------------- ------------------
2017-10-11 16:14:04 3092625
6.2)、为测试表 tmp 再添加多一条数据,不完全恢复时,只恢复到上一条数据:
16:14:26TUSER@orcl*SQL> insert into tmp values(2);
1 row created.
Elapsed: 00:00:00.01
16:14:35 TUSER@orcl*SQL> commit;
Commit complete.
Elapsed: 00:00:00.00
16:14:37 TUSER@orcl*SQL> alter system switch logfile;
System altered.
Elapsed: 00:00:00.30
16:14:43 TUSER@orcl*SQL> select * from v$log;
GROUP# HREAD# EQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
------ ------- ---------- ---------- ------------ --------- ------------------- ------------------ ------------------- -------------------------------------
1 1 4 52428800 512 1 YES ACTIVE 3092321 2017-10-11 16:08:48 3092652 2017-10-11 16:14:43
2 1 5 52428800 512 1 NO CURRENT 3092652 2017-10-11 16:14:43 281474976710655
3 1 3 52428800 512 1 YES INACTIVE
16:14:49TUSER@orcl*SQL> select * from tmp;
ID
------------------
1
2
7、再执行一次增备:
RMAN> run{
2> allocate channel c1 type disk format '/backup/rman_bak/incr/3/%U_cp.bak';
3> allocate channel c2 type disk format '/backup/rman_bak/incr/3/%U_cp.bak';
4> recover copy of database with tag 'incr_update';
5> backup incremental level 1 for recover of copy with tag 'incr_update'database;
6> #backup archivelog all format '/backup/rman_bak/incr/arc_%U.bak' tagincr_update;
7> #backup current controlfile format '/backup/rman_bak/incr/ctl_%U.bak' tagincr_update;
8> release channel c1;
9> release channel c2;
10> }
using target database control file instead of recoverycatalog
allocated channel: c1
channel c1: SID=139 device type=DISK
allocated channel: c2
channel c2: SID=145 device type=DISK
Starting recover at 11-OCT-17
channel c1: starting incremental datafile backup set restore
channel c1: specifying datafile copies to recover
recovering datafile copy file number=00001 name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
recovering datafile copy file number=00003name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
recovering datafile copy file number=00004 name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
recovering datafile copy file number=00010name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
channel c1: reading from backup piece /backup/rman_bak/incr/2/65sgomm7_1_1_cp.bak ##应用到了第二次增备(即包含 insert into tmpvaluies(1)时的备份)到了全备文件
channel c2: starting incremental datafile backup set restore
channel c2: specifying datafile copies to recover
recovering datafile copy file number=00002 name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
recovering datafile copy file number=00005name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
recovering datafile copy file number=00006 name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
recovering datafile copy file number=00008name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak ##
channel c2: reading from backup piece /backup/rman_bak/incr/2/64sgomm7_1_1_cp.bak ##应用到了第二次增备(即包含 insert into tmpvaluies(1)时的备份)到了全备文件
channel c1: piecehandle=/backup/rman_bak/incr/2/65sgomm7_1_1_cp.bak tag=INCR_UPDATE
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:03
channel c2: piece handle=/backup/rman_bak/incr/2/64sgomm7_1_1_cp.baktag=INCR_UPDATE
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:00:07
Finished recover at 11-OCT-17
Starting backup at 11-OCT-17
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00002 name=/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00006 name=/oracle/oradata/orcl/test_tbs01.dbf
input datafile file number=00005 name=/oracle/oradata/orcl/example01.dbf
input datafile file number=00008 name=/oracle/oradata/orcl/goldengate01.dbf
channel c1: starting piece 1 at 11-OCT-17
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/oradata/orcl/system01.dbf
input datafile file number=00003 name=/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/oracle/oradata/orcl/users01.dbf
input datafile file number=00010 name=/oracle/oradata/orcl/users02.dbf
channel c2: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/3/68sgon10_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:01:15
channel c1: starting incremental level 1 datafile backup set
channel c1: specifying datafile(s) in backup set
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/3/69sgon10_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:01:15
channel c2: starting incremental level 1 datafile backup set
channel c2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel c2: starting piece 1 at 11-OCT-17
including current control file in backup set
channel c1: starting piece 1 at 11-OCT-17
channel c1: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/3/6asgon3b_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
channel c2: finished piece 1 at 11-OCT-17
piece handle=/backup/rman_bak/incr/3/6bsgon3b_1_1_cp.bak tag=INCR_UPDATEcomment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
Finished backup at 11-OCT-17
released channel: c1
released channel: c2
7.1)、检查以上第三次增备生成的备份文件及时间:
oracle@SLES11:/backup/rman_bak/incr/3>ls -l
total 10762
-rw-r----- 1 oracle oinstall 516096 2017-10-11 16:16 68sgon10_1_1_cp.bak
-rw-r----- 1 oracle oinstall 335872 2017-10-11 16:16 69sgon10_1_1_cp.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 16:16 6asgon3b_1_1_cp.bak
-rw-r----- 1 oracle oinstall 98304 2017-10-11 16:166bsgon3b_1_1_cp.bak
7.2)、执行以上第三次增时应用的第二次增备到全备文件后,检查全备文件的修改时间已经变化,如下:
oracle@SLES11:/backup/rman_bak/full>ls -l
total 1923888
-rw-r----- 1 oracle oinstall 98304 2017-10-11 15:55lv0_5psgols0_1_1.bak
-rw-r----- 1 oracle oinstall 218624 2017-10-11 15:55lv0_arc_5qsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 17538560 2017-10-11 15:55lv0_arc_5rsgols4_1_1.bak
-rw-r----- 1 oracle oinstall 1186816 2017-10-11 15:55lv0_arc_5ssgols4_1_1.bak
-rw-r----- 1 oracle oinstall 318464 2017-10-11 15:55lv0_arc_5tsgols6_1_1.bak
-rw-r----- 1 oracle oinstall 307200 2017-10-11 15:55lv0_arc_5usgols6_1_1.bak
-rw-r----- 1 oracle oinstall 10010624 2017-10-11 15:55lv0_cf_D-ORCL_id-1342766198_5msgolrg.bak
-rw-r----- 1 oracle oinstall 10059776 2017-10-11 15:55lv0_ctl_5vsgols7_1_1.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
-rw-r----- 1 oracle oinstall 104865792 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak
-rw-r----- 1 oracle oinstall 660611072 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
-rw-r----- 1 oracle oinstall 734011392 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
-rw-r----- 1 oracle oinstall 160440320 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
-rw-r----- 1 oracle oinstall 157294592 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
-rw-r----- 1 oracle oinstall 1056768 2017-10-11 16:15lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
-rw-r----- 1 oracle oinstall 5251072 2017-10-11 16:15 lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
8、接下来做不完全恢复测试:
RMAN> shutdown immediate;
RMAN> startup mount;
RMAN> run{
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> set until scn 3092625; ##这个是第二次增备后(包含 insert into tmp values(1)),insert into tmpvalues(2) 前的 scn,即只恢复到tmp表插入为1的记录。
5> restore database;
6> recover database;
7> release channel c1;
8> release channel c2;
9> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=133 device type=DISK
allocated channel: c2
channel c2: SID=10 device type=DISK
executing command: SET until clause
Starting restore at 11-OCT-17
channel c1: restoring datafile 00001
input datafile copy RECID=160 STAMP=957111322 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSTEM_FNO-1_5gsgolnd.bak
destination for restore of datafile 00001: /oracle/oradata/orcl/system01.dbf
channel c2: restoring datafile 00002
input datafile copy RECID=162 STAMP=957111323 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-SYSAUX_FNO-2_5hsgolnd.bak
destination for restore of datafile 00002: /oracle/oradata/orcl/sysaux01.dbf
channel c1: copied datafile copy of datafile 00001
output file name=/oracle/oradata/orcl/system01.dbf RECID=0 STAMP=0
channel c1: restoring datafile 00003
input datafile copy RECID=158 STAMP=957111321 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-UNDOTBS1_FNO-3_5jsgolp8.bak
destination for restore of datafile 00003: /oracle/oradata/orcl/undotbs01.dbf
channel c2: copied datafile copy of datafile 00002
output file name=/oracle/oradata/orcl/sysaux01.dbf RECID=0 STAMP=0
channel c2: restoring datafile 00004
input datafile copy RECID=156 STAMP=957111320 file name=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-4_5nsgols0.bak
destination for restore of datafile 00004: /oracle/oradata/orcl/users01.dbf
channel c2: copied datafile copy of datafile 00004
output file name=/oracle/oradata/orcl/users01.dbf RECID=0 STAMP=0
channel c2: restoring datafile 00005
input datafile copy RECID=157 STAMP=957111321 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-EXAMPLE_FNO-5_5ksgolra.bak
destination for restore of datafile 00005: /oracle/oradata/orcl/example01.dbf
channel c1: copied datafile copy of datafile 00003
output file name=/oracle/oradata/orcl/undotbs01.dbf RECID=0 STAMP=0
channel c1: restoring datafile 00006
input datafile copy RECID=161 STAMP=957111322 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-TEST_TBS_FNO-6_5isgolnd.bak
destination for restore of datafile 00006: /oracle/oradata/orcl/test_tbs01.dbf
channel c2: copied datafile copy of datafile 00005
output file name=/oracle/oradata/orcl/example01.dbf RECID=0 STAMP=0
channel c2: restoring datafile 00008
input datafile copy RECID=159 STAMP=957111321 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-GOLDENGATE_FNO-8_5lsgolra.bak
destination for restore of datafile 00008:/oracle/oradata/orcl/goldengate01.dbf
channel c1: copied datafile copy of datafile 00006
output file name=/oracle/oradata/orcl/test_tbs01.dbf RECID=0 STAMP=0
channel c1: restoring datafile 00010
input datafile copy RECID=155 STAMP=957111320 filename=/backup/rman_bak/full/lv0_data_D-ORCL_I-1342766198_TS-USERS_FNO-10_5osgols0.bak
destination for restore of datafile 00010: /oracle/oradata/orcl/users02.dbf
channel c2: copied datafile copy of datafile 00008
output file name=/oracle/oradata/orcl/goldengate01.dbf RECID=0 STAMP=0
channel c1: copied datafile copy of datafile 00010
output file name=/oracle/oradata/orcl/users02.dbf RECID=0 STAMP=0
Finished restore at 11-OCT-17
Starting recover at 11-OCT-17
starting media recovery
media recovery complete, elapsed time: 00:00:03
Finished recover at 11-OCT-17
released channel: c1
released channel: c2
说明:以上只应用了全备文件,因为每次增备时,都已经应用更新上一次的增备到全备文件了,并且不需要使用归档,就可以恢复到 tmp表插入第一条记录的时候了。
9、恢复后验证:
16:23:46 SYS@orcl*SQL> alter database open resetlogs;
Database altered.
16:24:20 TUSER@orcl*SQL> select * from tmp;
ID
------------------
1
已经按预期进行了恢复,只恢复tmp表的插入的第一条记录了。
以上就是使用 基于 backup as copylevel 0 database 进行增备合并的备份和恢复方法。
(完)
- RMAN中基于copy的全备合并增备进行增量备份的方式
- RMAN基础:全备、增量备、copy
- rman备份中差异增量和累积增量的区别
- [Rman]Rman增量备份level012的区别
- rman 定时增量全备
- RMAN的备份集增量备份
- RMAN的备份集增量备份
- 在rman增量备份中,有差异增量和累积增量的概念
- RMAN定时备份脚本(全备+增量备份+控制文件+参数文件)
- RMAN 增量备份 的 对象测试
- 【rman,1】经典的增量备份案例
- Oracle的差异增量备份和累积增量备份,RMAN增量备份脚本
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- 常用的相似性度量总结 及 java和python实现计算 (不断更新)
- 点击一个按钮弹出两次问题
- java私人封装的加密jar包以及使用
- 未解之谜
- 查询网络流量向哪流出的(iftop)
- RMAN中基于copy的全备合并增备进行增量备份的方式
- JAVA反射机制
- 数据结构(C语言) 线性表 链式存储 循环链表
- Neo4j Cypher查询语言详解
- 虚拟机NAT模式下设置Centos7固定IP地址
- HorizontalScrollView 仿真 tabLayout
- linux释放缓存
- mint-ui引入出错,import 'mint-ui/lib/style.css'无效
- android 高级之旅 (十四) Service完全解析 上