查看: 2962|回复: 7

block change tracking和rman通常增量备份方式的比较

[复制链接]
招聘 : Linux运维
论坛徽章:
42
奥运会纪念徽章:跳水
日期:2008-09-08 16:00:45茶鸡蛋
日期:2013-01-18 12:36:552013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-03-28 19:57:20茶鸡蛋
日期:2013-07-05 08:59:54茶鸡蛋
日期:2013-07-08 10:01:05福特
日期:2013-08-06 10:13:26马上有车
日期:2014-03-26 10:47:51马上有对象
日期:2014-04-28 13:43:04马上有钱
日期:2014-07-19 16:38:11
跳转到指定楼层
1#
发表于 2005-7-18 13:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面都是用level 0和level 1做得比较

在10g之前的版本,使用rman做增量备份,rman在做1级备份的时候怎么来确定0级备份之后都有哪些数据块做了修改呢?看下面一段
Each data block in a datafile contains a system change number (SCN), which is the
SCN at which the most recent change was made to the block. During an incremental
backup, RMAN reads the SCN of each data block in the input file and compares it to
the checkpoint SCN of the parent incremental backup. If the SCN in the input data
block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies
the block.
也就是说在做level 1级备份的时候,需要扫描所有的数据块并且用块中记录修改的SCN跟level 0备份时的SCN做比较,来确定什么是需要备份的。
所以扫描整个数据文件是不可避免的 !

Block change tracking是Oracle10g的一个新特性,Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。
RMAN's change tracking feature for incremental backups improves incremental
backup performance by recording changed blocks in each datafile in a change tracking
file. If change tracking is enabled, RMAN uses the change tracking file to identify
changed blocks for incremental backup, thus avoiding the need to scan every block in
the datafile.
估计又是使用的位图!没找到依据呢,看书不太仔细。

让我们来对它们的速度做一下测试,
不使用block change tracking,看看备份需要的时间


首先关闭block change tracking

SQL> select status from v$block_change_tracking;

STATUS
----------
DISABLED

然后让我们来做个0级增量备份,和一个1级备份,注意它们使用的时间
RMAN> backup incremental level 0 format='d:\orabackup\%d_%s.dbf'
2> database;

启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_15.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_16.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05


RMAN> backup incremental level 1 format='d:\orabackup\%d_%s_1level.dbf'
2> database;

启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_17_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_18_1LEVEL.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:06
完成 backup 于 17-7月 –05

level 0备份后其实我根本就没有对数据库做什么更改,level 1备份居然也使用了35秒
招聘 : Linux运维
论坛徽章:
42
奥运会纪念徽章:跳水
日期:2008-09-08 16:00:45茶鸡蛋
日期:2013-01-18 12:36:552013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-03-28 19:57:20茶鸡蛋
日期:2013-07-05 08:59:54茶鸡蛋
日期:2013-07-08 10:01:05福特
日期:2013-08-06 10:13:26马上有车
日期:2014-03-26 10:47:51马上有对象
日期:2014-04-28 13:43:04马上有钱
日期:2014-07-19 16:38:11
2#
 楼主| 发表于 2005-7-18 13:16 | 只看该作者
然后让我们把block change tracking启用后测试一下level 1需要的时间。

SQL>alter database enable block change tracking using
2 file 'D:\oracle\product\10.1.0\flash_recovery_area\ORCL\FLASHBACK\ BLOCK_CHANGE_TRACE.LOG';
我使用的是安装的时候默认的数据库,这个记录文件大概为十几M.除了用位图,别的方式应该没办法这么多快好省的记录数据块的变化了

SQL> alter database enable block change tracking;

数据库已更改


先删除原来的备份
RMAN> delete backupset 14;
RMAN> delete backupset 12;


让我们做备份测试一下,注意看它们完成所用的时间
RMAN> backup incremental level 0 format='d:\orabackup\%d_%s_test_level0.dbf'
2> database;

启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_19_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:26
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_20_TEST_LEVEL0.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05

再做level 1
RMAN> backup incremental level 1 format='d:\orabackup\%d_%s_test_level1.dbf'
2> database;

启动 backup 于 17-7月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_21_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 17-7月 -05
通道 ORA_DISK_1: 已完成段 1 于 17-7月 -05
段 handle=D:\ORABACKUP\ORCL_22_TEST_LEVEL1.DBF comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 17-7月 –05

显然level 1备份用了7秒就完成了,比起没有启用block change tracking快了几倍

使用道具 举报

回复
论坛徽章:
168
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:49:54蜘蛛蛋
日期:2011-12-05 16:08:56ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41设计板块每日发贴之星
日期:2011-07-22 01:01:02ITPUB官方微博粉丝徽章
日期:2011-06-30 12:30:16管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:33
3#
发表于 2005-7-18 20:49 | 只看该作者
嗯.不错.
其实是用空间(占用空间保留block的状态)换时间(备份的时间)

使用道具 举报

回复
论坛徽章:
17
ITPUB元老
日期:2005-02-28 12:57:00ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
4#
发表于 2005-7-19 14:21 | 只看该作者
难道是对数据块建了个位图索引? 查找更改过的数据块就直接通过索引取得, 而不是“全表扫描”
我猜测的。

使用道具 举报

回复
论坛徽章:
41
ITPUB元老
日期:2007-04-18 10:10:372012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23迷宫蛋
日期:2012-05-09 13:09:18双黄蛋
日期:2013-01-21 12:55:59马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
5#
发表于 2007-1-5 15:25 | 只看该作者
辛苦的劳动一定要顶

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
6#
发表于 2007-1-5 15:36 | 只看该作者
不错

看来该抽时间好好看看rman了

使用道具 举报

回复
论坛徽章:
56
马上加薪
日期:2014-12-22 13:11:12复活蛋
日期:2011-08-31 14:55:20ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252010世博会纪念徽章
日期:2010-09-07 08:52:012010年世界杯参赛球队:瑞士
日期:2010-06-24 09:16:222010年世界杯参赛球队:德国
日期:2010-04-27 09:40:272010年世界杯参赛球队:韩国
日期:2010-04-23 23:34:412010新春纪念徽章
日期:2010-03-01 11:06:222010新春纪念徽章
日期:2010-01-04 08:33:08参与WIN7挑战赛纪念
日期:2009-11-06 10:44:24
7#
发表于 2007-1-5 22:59 | 只看该作者
恩,到10G才有真正意义的增量备份

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2006-12-29 17:11:00秀才
日期:2015-12-25 15:31:102015年新春福章
日期:2015-03-06 11:57:31沸羊羊
日期:2015-03-04 14:43:432012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010新春纪念徽章
日期:2010-03-01 11:21:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
8#
发表于 2007-1-8 09:44 | 只看该作者
最初由 waityou81 发布
[B]恩,到10G才有真正意义的增量备份 [/B]


确实是

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表