SCN号详细说明.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SCN号详细说明

Oracle SCN相关问题学习与测试 目录 1、SCN的介绍 2、SCN的工作机制 3、SCN的增加 4、其他的SCN 5测试 6小结 7问题 1、SCN的介绍 Oracle中的SCN有下面几种: 1)系统检查点scn(v$database(checkpoint_change#)) 当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中 select checkpoint_change# from v$database; 2)数据文件检查点scn (v$datafile(checkpoint_change#)) 当一个检查点动作完成之后,Oracle就把每个数据文件的scn单独存放在控制文件中 select name,checkpoint_change# from v$datafile; 3)数据文件终止scn (v$datafile(last_change#)) 每个数据文件的终止scn都存储在控制文件中。在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null,异常关闭后的Stop SCN,也为NULL. select name,last_change# from v$datafile; 4)数据文件启动scn (v$datafile_header(checkpoint_change#) Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复 select name,checkpoint_change# from v$datafile_header; 2、SCN的工作机制 1)在数据库打开并运行之后,控制文件中的系统检查点scn、控制文件中的数据文件检查点scn和每个数据文件头中的启动scn都是相同的 2 )控制文件中的每个数据文件的终止scn都为null 3) NORMAL或IMMEDIATE关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn都会设置成数据文件头中的那个启动scn的值。 4)在数据库重新启动的时,Oracle将执行两次检查 ◆看数据文件头中的ckpt计数器(v$datafile_header.checkpoint_count)是否与对应控制文件中的ckpt计数器(v$datafile.)一致。若相等,进行第二次检查 ◆比较文件头中的启动scn和对应控制文件中的终止scn进行比较,如果终止scn等于启动scn,则不需要对那个文件进行恢复 5)数据库打开之后,存储在控制文件中的数据文件终止scn的值再次被更改为null,这表示数据文件已经打开并能够正常使用了 注:当ABORT强制关闭数据库时不进行检查点处理,所以终止scn仍然为无穷大。在下次启动期间,发现启动scn和终止scn不同,需要进行线程恢复。 3、SCN的增加 1) SCN(System Change Number)只要数据库被修改,就会+1,而不是一定要进行checkpoint,例如DML的发生即使没有提交也会使SCN+1.(哪些情况下SCN会发生变化?) 注:SCN增加并不代表会在数据文件头中表现出来,而是需要等到checkpoint执行后才写入(当然可能已经增加了很多) 2)如果一个DML导致产生事务,则会产生一个SCN。这个意思是说如果一个事务包含多个dml,则只有第一个初始产生事务的dml产生scn,提交的时候又是一个scn,如果一个事务只有一个dml,那看起来就是dml产生一个scn,提交或者回滚产生一个scn。 3) Oracle10g内部的SCN会默认不管有没有动作,每隔3s自动增加一次。其他需要增加的情况则再加。 4)只有ckpt进程才会修改文件头中的checkpoint计数器和SCN,DBWR只会修改数据块,即ckpt通知dbwr写数据文件,写完之后ckpt更新控制文件和数据文件头。此时若DBWR发现数据块的log block还没有被写入日志文件,则在dbwr写块之前通知lgwr把log buffer中的日志写入log文件。 注:总结一下,日志切换必定触发ckpt,但ckpt不一定会触发lgwr,但是一定会触发dbwr 4、其他的SCN 1)日志文件头中包含了Low scn、Next scn,表示所给日志文件包含有从Low scn到Next scn的redo record. (如何查看? REDO SCN) 注:当系统运行时,日志文件的Ne

文档评论(0)

abf4675328 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档