SCN机制解析ITeyewangyi - 凯时娱乐

SCN机制解析ITeyewangyi

2019-02-01 07:56:10 | 作者: 曼凡 | 标签: 数据文件,数据,机制 | 浏览: 2532

SCN(System Chang Number)作为oracle中的一个重要机制,在数据康复、Data Guard、Streams仿制、RAC节点间的同步等各个功用中起着重要作用。了解SCN的运作机制,能够协助你愈加深化地了解上述功用。

在了解SCN之前,咱们先看下oracle业务中的数据改变是怎么写入数据文件的:


1、 业务开端;

2、 在buffer cache中找到需求的数据块,假如没有找到,则从数据文件中载入buffer cache中;

3、 业务修正buffer cache的数据块,该数据被标识为“脏数据”,并被写入log buffer中;

4、 业务提交,LGWR进程将log buffer中的“脏数据”写入redo log file中;

5、 当发作checkpoint,CKPT进程更新一切数据文件的文件头中的信息,DBWn进程则担任将Buffer Cache中的脏数据写入到数据文件中。


经过上述5个过程,业务中的数据改变终究被写入到数据文件中。可是,一旦在上述中间环节时,数据库意外宕机了,在从头启动时怎么知道哪些数据现已写入数据文件、哪些没有写呢(相同,在DG、streams中也存在相似疑问:redo log中哪些是上一次同步现已仿制过的数据、哪些没有)?SCN机制就能比较完善的处理上述问题。


SCN是一个数字,切当的说是一个只会添加、不会削减的数字。正是它这种只会添加的特性保证了Oracle知道哪些应该被康复、哪些应该被仿制。


总共有4种SCN:体系检查点(System Checkpoint)SCN、数据文件检查点(Datafile Checkpoint)SCN、完毕SCN(Stop SCN)、开端SCN(Start SCN)。其间前面3种SCN存在于操控文件中,最终一种则存在于数据文件的文件头中。

在操控文件中,System Checkpoint SCN是针对整个数据库大局的,因此之存在一个,而Datafile Checkpoint SCN和Stop SCN是针对每个数据文件的,因此一个数据文件就对应在操控文件中存在一份Datafile Checkpoint SCN和Stop SCN。在数据库正常运转期间,Stop SCN(经过视图v$datafile的字段last_change#能够查询)是一个无穷大的数字或许说是NULL。

在一个业务提交后(上述第四个过程),会在redo log中存在一条redo记载,一起,体系为其供给一个最新的SCN(经过函数dbms_flashback.get_system_change_number能够知道其时的最新SCN),记载在该条记载中。假如该条记载是在redo log被清空(日志满做切换时或发作checkpoint时,一切改变日志现已被写入数据文件中),则其SCN被记载为redo log的low SCN。今后在日志再次被清空前写入的redo记载中SCN则成为Next SCN。

当日志切换或发作checkpoint(上述第五个过程)时,从Low SCN到Next SCN之间的一切redo记载的数据就被DBWn进程写入数据文件中,而CKPT进程则将一切数据文件(不管redo log中的数据是否影响到该数据文件)的文件头上记载的Start SCN(经过视图v$datafile_header的字段checkpoint_change#能够查询)更新为Next SCN,一起将操控文件中的System Checkpoint SCN(经过视图v$database的字段checkpoint_change#能够查询)、每个数据文件对应的Datafile Checkpoint(经过视图v$datafile的字段checkpoint_change#能够查询)也更新为Next SCN。可是,假如该数据文件地点的表空间被设置为read-only时,数据文件的Start SCN和操控文件中Datafile Checkpoint SCN都不会被更新。


那体系是怎么发生一个最新的SCN的?实际上,这个数字是由其时的timestamp转化过来的。每逢需求发生一个最新的SCN到redo记载时,体系获取其时的timestamp,将其转化为数字作为SCN。咱们能够经过函数SCN_TO_TIMESTAMP(10g今后)将其转化回timestamp:

SQL select dbms_flashback.get_system_change_number, SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) from dual;                          
			
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章