Oracle10g新增了记录数据块变化的功能,显著的提高了增量备份的效率。
对于增量备份,Rman需要比较数据文件中所有的BLOCK,来确认这个BLOCK是否需要进行备份:
[oracle@testzone ~]$ sqlplus ndmain
SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 12月 28 14:26:45 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select default_tablespace from user_users;
DEFAULT_TABLESPACE
------------------------------
NDMAIN
SQL> create table t_test1 (id number);
表已创建。
SQL> exit从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 断开
[oracle@testzone ~]$ exit
exit主机命令完成
RMAN> backup incremental level 1 tablespace ndmain;
启动 backup 于 28-12月-07使用通道 ORA_DISK_1通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00011 name=/data/oradata/testzj/ndmain01.dbf输入数据文件 fno=00012 name=/data/oradata/testzj/ndmain02.dbf输入数据文件 fno=00013 name=/data/oradata/testzj/ndmain03.dbf输入数据文件 fno=00014 name=/data/oradata/testzj/ndmain04.dbf输入数据文件 fno=00015 name=/data/oradata/testzj/ndmain05.dbf通道 ORA_DISK_1: 正在启动段 1 于 28-12月-07通道 ORA_DISK_1: 已完成段 1 于 28-12月-07段句柄=/data/backup/05j4o7ah_1_1 标记=TAG20071228T142728 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:04:35完成 backup 于 28-12月-07
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
4 Incr 0 11.15G DISK 00:06:22 28-12月-07
BP 关键字: 4 状态: AVAILABLE 已压缩: NO 标记: TAG20071228T141945段名:/data/backup/04j4o6s1_1_1
备份集 4 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
11 0 Incr 5479421905 28-12月-07 /data/oradata/testzj/ndmain01.dbf
12 0 Incr 5479421905 28-12月-07 /data/oradata/testzj/ndmain02.dbf
13 0 Incr 5479421905 28-12月-07 /data/oradata/testzj/ndmain03.dbf
14 0 Incr 5479421905 28-12月-07 /data/oradata/testzj/ndmain04.dbf
15 0 Incr 5479421905 28-12月-07 /data/oradata/testzj/ndmain05.dbf
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
5 Incr 1 88.00K DISK 00:04:26 28-12月-07
BP 关键字: 5 状态: AVAILABLE 已压缩: NO 标记: TAG20071228T142728段名:/data/backup/05j4o7ah_1_1
备份集 5 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
11 1 Incr 5479422221 28-12月-07 /data/oradata/testzj/ndmain01.dbf
12 1 Incr 5479422221 28-12月-07 /data/oradata/testzj/ndmain02.dbf
13 1 Incr 5479422221 28-12月-07 /data/oradata/testzj/ndmain03.dbf
14 1 Incr 5479422221 28-12月-07 /data/oradata/testzj/ndmain04.dbf
15 1 Incr 5479422221 28-12月-07 /data/oradata/testzj/ndmain05.dbf
上面这个例子中,LEVEL 0增量备份了11个G,用时6分22秒,而后面的增量只有88K,却仍然花费了4分26秒,效率低的很。
而采用10g的新特性BLOCK CHANGE TRACKING:
RMAN> DELETE NOPROMPT BACKUP;
使用通道 ORA_DISK_1
备份段列表
BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称
------- ------- --- --- ----------- ----------- ----------
4 4 1 1 AVAILABLE DISK /data/backup/04j4o6s1_1_1
5 5 1 1 AVAILABLE DISK /data/backup/05j4o7ah_1_1已删除备份段备份段 handle=/data/backup/04j4o6s1_1_1 recid=4 stamp=642521985已删除备份段备份段 handle=/data/backup/05j4o7ah_1_1 recid=5 stamp=642522449
2 对象已删除
RMAN> EXIT
恢复管理器完成。
[oracle@testzone ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 12月 28 14:38:11 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> alter database enable block change tracking using file '/data/backup/track.trc';
数据库已更改。
SQL> exit从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 断开
[oracle@testzone ~]$ rman target /
恢复管理器: Release 10.2.0.3.0 - Production on 星期五 12月 28 14:38:47 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TESTZJ (DBID=3397373484)
RMAN> backup incremental level 0 tablespace ndmain;
启动 backup 于 28-12月-07使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=139 devtype=DISK通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00011 name=/data/oradata/testzj/ndmain01.dbf输入数据文件 fno=00012 name=/data/oradata/testzj/ndmain02.dbf输入数据文件 fno=00013 name=/data/oradata/testzj/ndmain03.dbf输入数据文件 fno=00014 name=/data/oradata/testzj/ndmain04.dbf输入数据文件 fno=00015 name=/data/oradata/testzj/ndmain05.dbf通道 ORA_DISK_1: 正在启动段 1 于 28-12月-07通道 ORA_DISK_1: 已完成段 1 于 28-12月-07段句柄=/data/backup/06j4o80b_1_1 标记=TAG20071228T143907 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:06:25完成 backup 于 28-12月-07
RMAN> host;
[oracle@testzone ~]$ sqlplus ndmain
SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 12月 28 14:45:54 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> create table t_test2 (id number);
表已创建。
SQL> exit从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 断开
[oracle@testzone ~]$ exit
exit主机命令完成
RMAN> backup incremental level 1 tablespace ndmain;
启动 backup 于 28-12月-07使用通道 ORA_DISK_1通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00011 name=/data/oradata/testzj/ndmain01.dbf输入数据文件 fno=00012 name=/data/oradata/testzj/ndmain02.dbf输入数据文件 fno=00013 name=/data/oradata/testzj/ndmain03.dbf输入数据文件 fno=00014 name=/data/oradata/testzj/ndmain04.dbf输入数据文件 fno=00015 name=/data/oradata/testzj/ndmain05.dbf通道 ORA_DISK_1: 正在启动段 1 于 28-12月-07通道 ORA_DISK_1: 已完成段 1 于 28-12月-07段句柄=/data/backup/07j4o8e2_1_1 标记=TAG20071228T144626 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01完成 backup 于 28-12月-07
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
6 Incr 0 11.15G DISK 00:06:21 28-12月-07
BP 关键字: 6 状态: AVAILABLE 已压缩: NO 标记: TAG20071228T143907段名:/data/backup/06j4o80b_1_1
备份集 6 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
11 0 Incr 5479422630 28-12月-07 /data/oradata/testzj/ndmain01.dbf
12 0 Incr 5479422630 28-12月-07 /data/oradata/testzj/ndmain02.dbf
13 0 Incr 5479422630 28-12月-07 /data/oradata/testzj/ndmain03.dbf
14 0 Incr 5479422630 28-12月-07 /data/oradata/testzj/ndmain04.dbf
15 0 Incr 5479422630 28-12月-07 /data/oradata/testzj/ndmain05.dbf
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
7 Incr 1 88.00K DISK 00:00:00 28-12月-07
BP 关键字: 7 状态: AVAILABLE 已压缩: NO 标记: TAG20071228T144626段名:/data/backup/07j4o8e2_1_1
备份集 7 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
11 1 Incr 5479422832 28-12月-07 /data/oradata/testzj/ndmain01.dbf
12 1 Incr 5479422832 28-12月-07 /data/oradata/testzj/ndmain02.dbf
13 1 Incr 5479422832 28-12月-07 /data/oradata/testzj/ndmain03.dbf
14 1 Incr 5479422832 28-12月-07 /data/oradata/testzj/ndmain04.dbf
15 1 Incr 5479422832 28-12月-07 /data/oradata/testzj/ndmain05.dbf
执行效率的提高十分显著,这主要是BLOCK CHANGE TRACKING特性的功能。Oracle通过一个小的track文件来记录哪些BLOCK发生了变化,RMAN进行增量备份的时候,不再需要扫描整个数据文件,只需要扫描这个记录变化的文件,找到变化的数据块,并对这些数据块进行备份即可。从而提高了增量备份的执行效率。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69563/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-69563/