个人经验总结:Oracle数据库SCN号详解

Oracle数据库SCN号详解:

系统检查点scn(v$database(checkpoint_change#))

数据文件检查点(v$datafile(checkpoint_change#))

数据文件终止scn(v$datafile(last_change#))

数据文件中存放的检查点

启动scn (v$datafile_header(checkpoint_change#)

1、系统检查点scn

当一个检查点动作完成之后,Oracle就把系统检查点的SCN存储到控制文件中。

select checkpoint_change# from v$database

2、数据文件检查点scn

当一个检查点动作完成之后,Oracle就把每个数据文件的scn单独存放在控制文件

中。

select name,checkpoint_change# from v$datafile

3、启动scn

Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,

因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。

select name,checkpoint_change# from v$datafile_header

4、终止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数据库开发经验总结
  ---- Oracle数据库作为大型数据库治理系统,近年来一直占有世界上高端数据库的最大份额,其强大而完善的数据库治理功能,以及ORACLE公司推陈出新的不断努力,一直成为IT业界瞩目的焦点。 ...查看完整版>>ORACLE数据库开发经验总结
 
ORACLE数据库开发经验总结
  ---- ORACLE数据库作为大型数据库管理系统,近年来一直占有世界上高端数据库的最大份额,其强大而完善的数据库管理功能,以及ORACLE公司推陈出新的不断努力,一直成为IT业界瞩目的焦点。岭澳核电站的数据库平台采...查看完整版>>ORACLE数据库开发经验总结
 
经验总结:一次Oracle数据库冷备份恢复过程
近日,我想把oracle数据库从我的电脑上迁移到机房的电脑上,一开始采用dmp/imp方式,但是发现需要导出很多用户,太麻烦。所以决定采用冷备份/冷恢复的方式。 过程如下: 通过v$controlfile查看控制文件,通过v$logfi...查看完整版>>经验总结:一次Oracle数据库冷备份恢复过程
 
提高Oracle数据库查询统计速度经验总结
大型数据库系统中往往要用到查询统计,但是对于数据量大的系统,用户在进行复杂的查询统计时往往感到速度很慢,不能满足应用要求,这就要求我们在设计数据库系统时进行合理设置,提高查询统计的速度。本文结合笔者的...查看完整版>>提高Oracle数据库查询统计速度经验总结
 
经验总结:学好 Oracle 数据库六条
经常有一些Oracle的初学者问到这个问题,这里算是一个统一答复。 1、假如有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需...查看完整版>>经验总结:学好 Oracle 数据库六条