Oracle 10g新增参数ORA.docx

上传人:rrsccc 文档编号:8907166 上传时间:2021-01-24 格式:DOCX 页数:2 大小:12.42KB
返回 下载 相关 举报
Oracle 10g新增参数ORA.docx_第1页
第1页 / 共2页
Oracle 10g新增参数ORA.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle 10g新增参数ORA.docx》由会员分享,可在线阅读,更多相关《Oracle 10g新增参数ORA.docx(2页珍藏版)》请在三一文库上搜索。

1、Oracle 10g新增参数ORA摘要:针对Oracle 10g新增参数ORA_ROWSCN的实现原理,本文探讨了该参数的应用范围,利用该参数简化管理工作,以及如何避免参数误用等问题。关键词:Oracle 10g;参数;伪列;乐观锁Oracle10g引入了一个新的ORA_ROWSCN的伪列,可以查询表中记录最后变更的SCN。这个新的伪列在某些环境下会非常有用,比如执行乐观锁定,或者增量数据抽取的时候。但是,默认情况下,每行记录的ORA_ROWSCN是基于Block的,除非在建表的时候执行开启行级跟踪。 先来简单理解一下ORA_ROWSCN的实现原理。我们知道,每个Block在头部是记录了该bl

2、ock最近事务的SCN的,所以默认情况下,只需要从block头部直接获取这个值就可以了,不需要其他任何的开销,Oracle就能做到这一点。但是这明显是不精确的,一个block中会有很多行记录,每次事务不可能影响到整个block中所有的行,所以这是一个非常不精准的估算值,同一个block的所有记录的ORA_ROWSCN都会是相同的,基本上没有多大的使用价值。如果在建表的时候开启行级跟踪选项,Oracle则可以为每一行记录精确的SCN,那么显然不能再直接从block头部获取。 简单的做个实验就可以知道开启行级跟踪以后块记录格式的不同。建两个表,一个norowdependencies(默认),一个r

3、owdependencies,然后分别dump出相应的数据块: create table t1(i int); insert into t1 values(1); insert into t1 values(2); commit; create table t2 rowdependencies as select * from t1; norowdependencies: block_row_dump: tab 0, row 0, 01f9a tl: 6 fb: H-FL lb: 01 cc: 1 col 0: c1 02 tab 0, row 1, 01f94 tl: 6 fb: H-FL

4、lb: 01 cc: 1 col 0: c1 03 end_of_block_dump 乐观锁和ORA_ROWSCN:需要select for update做悲观锁定的时候,通过使用ORA_ROWSCN可以改成乐观锁定。一开始select数据的时候将ORA_ROWSCN查出来,修改后如果要写回数据库之前再比对下最新的ORA_ROWSCN就可以知道这期间数据是否有发生变化。增量数据抽取和ORA_ROWSCN:每次抽取后记录最大的ORA_ROWSCN,下次抽取再基于上一次的SCN来获得最近修改过的数据即可。在10g之前,很多系统要实现增量数据抽取,要么通过解析日志,要么加触发器,要么就在表上加一个

5、时间截字段。ORA_ROWSCN其实就是第三种方式,只是这个字段由Oracle来维护,这样可以避免一些应用绕过时间截去更新其他字段带来的问题。不过,如果系统中使用了逻辑备库或者streams等逻辑复制的方案,而数据抽取又是基于逻辑备库的话,ORA_ROWSCN就可能对抽取后的数据分析有影响了,因为通过这个得到的时间是逻辑备库上记录变更的时间,而不是源库的时间了。当然,如果纯粹只是做数据抽取,而不需要使用这个时间来做分析,还是问题不大的,但还是要考虑一旦逻辑备库出现故障需要重做的,则这个增量抽取要怎么来处理的问题。 Metalink上搜一下ORA_ROWSCN可以看到不少相关的bug,所以在生产

6、系统中使用的时候要小心。例如,我在Linux64平台上的一台测试库中,执行以下语句就会碰到ORA-07445的错误: SQL select ora_rowscn from x$bh where rownum2; select ora_rowscn from x$bh where rownum2* ERROR at line 1:ORA-03113: end-of-file on communication channel ORA-07445: exception encountered: core dump 参考文献: 【1】 Thomas Kyte.Effective Oracle by Design.McGraw-Hill Osborne Media; 1st edition (August 21, 2003) 【2】 Richard Niemiec. Oracle Database 10g Performance Tuning Tips & Techniques. McGraw-Hill Osborne Media; 1 edition (July 30, 2007)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1