前面写过一个scn的基础性的文章,但是不能反映scn的变化和存在情况,这里要说的是scn很多情况都可能改变,而不是提交或者是回滚的时候,当然scn存在在多个地方。如:日志文件,数据文件,控制文件等。
http://www.linuxidc.com/Linux/2012-07/65113.htm系统检查点scn(v$database(checkpoint_change#))数据文件检查点(v$datafile(checkpoint_change#))数据文件终stop scn(v$datafile(last_change#))数据文件中存放的检查点start scn (v$datafile_header(checkpoint_change#)1、系统检查点scn当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。select checkpoint_change# from v$database2、数据文件检查点scn当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。select name,checkpoint_change# from v$datafile3、start scnOracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。select name,checkpoint_change# from v$datafile_header4、stop scn每个数据文件的终止scn都存储在控制文件中。select name,last_change# from v$datafile在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null.5、在数据库运行期间的scn值在数据库打开并运行之后,控制文件中的系统检查点、控制文件中的数据文件检查点scn和每个数据文件头中的启动scn都是相同的。控制文件中的每个数据文件的终止scn都为null.在安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn都会设置成数据文件头中的那个启动scn的值。在数据库重新启动的时候,Oracle将文件头中的那个启动scn与数据库文件检查点scn进行比较,如果这两个值相互匹配,oracle接下来还要比较数据文件头中的启动scn和控制文件中数据文件的终止scn。如果这两个值也一致,就意味着所有数据块多已经提交,所有数据库的修改都没有在关闭数据库的过程中丢失,因此这次启动数据库的过程也不需要任何恢复操作,此时数据库就可以打开了。当所有的数据库都打开之后,存储在控制文件中的数据文件终止scn的值再次被更改为null,这表示数据文件已经打开并能够正常使用了。
Oracle scn之基本概念Oracle DDL,DML,DCL,TCL 总结相关资讯 Oracle scn
- Oracle 11g通过SCN做增量备份修复 (05/19/2015 16:58:43)
- Oracle数据库启动过程验证检查点 (11/26/2014 11:16:46)
- Oracle SCN 深入研究 (08/18/2013 13:28:13)
| - Oracle SCN -system change number (05/06/2015 11:58:11)
- Oracle体系结构之SCN、实例恢复 (09/15/2013 07:04:43)
- Oracle的SCN和RBA (08/10/2013 11:12:32)
|
本文评论 查看全部评论 (0)