浅谈oracle的SCN机制
在理解SCN之前,让我们看看Oracle事务中的数据更改是如何写入数据文件的:
1。企业的开始;
2,在缓冲区缓存中找到所需的数据块,如果找不到,则将它们从数据文件加载到缓冲区缓存中。
3,事务修改缓冲区缓存的数据块,该数据块被标识为脏数据并被写入日志缓冲区;
4、事务提交,LGWR进程将脏数据日志缓冲区写入重做日志文件;
5、当检查点发生时,CKPT进程更新信息的所有数据文件的头,而DBWn进程负责在缓冲区高速缓存的数据文件写入脏数据。
经过以上5步,在交易数据的变化最终被写入数据文件。然而,一旦在数据库,中间部分意外停机时间,怎么知道什么时候开始的数据写入数据文件,而不写(再次,在DG的溪流,有一个类似的问题:重做日志是一个复杂的数据同步系统是什么)SCN机制可以更完美地解决上述问题。
SCN是一个数字,确切地说是一个数字,它只会增加,不会减少。
共4点(系统检查点SCN:系统)数据文件检查点SCN,(数据文件检查点SCN,SCN(停止)结束SCN),起始SCN(停止)。其中3的表面的SCN中存在的控制文件,而最后一个存在于数据文件的文件头。
在控制文件系统检查点SCN是整个全球数据库,使数据文件的存在,和检查点SCN和停止SCN为每个数据文件和数据文件对应一个数据文件检查点SCN的存在和停止SCN的控制文件,数据库,正常运行期间停止SCN,可查询的字段的视图last_change # V$DATAFILE,是一个无限大的数或空。
提交事务(第四步),会有一个重做记录在重做日志的同时,系统提供了一个新的SCN(通过功能dbms_flashback.get_system_change_number可以知道最新的SCN),记录在记录,如果记录被清除时,重做日志(日志的开关或清除检查点发生变化,所有的日志已经被写入数据文件),它是记录SCN低SCN的重做日志。后来,SCN成为重做记录下SCN,是以前写的日志又是空的。
当日志切换和检查点(以上第五步),从所有的重做记录之间的Low SCN到下一个数据写入数据文件在DBWn进程,CKPT进程将所有数据文件(重做日志无论在数据文件中的数据文件头记录)开始SCN(可以查询通过视图V datafile_header美元的checkpoint_change #场)更新下SCN,在系统检查点SCN控制文件时(checkpoint_change #查询可以通过视图V $数据库领域),每个对应的数据文件数据文件检查点(可以通过查看查询V$DATAFILE的checkpoint_change #场)也更新下一个SCN。然而,如果数据文件的表空间设置为只读的数据文件的起始SCN和控制文件的数据文件的检查点SCN将不会被更新。
该系统如何产生最新的SCN事实上,这个数字是由时间戳,每当一个新的SCN的重做记录需要生产,该系统得到的时间戳,并将它转换为一个数字作为SCN。我们可以将其转换为时间戳通过功能scn_to_timestamp(10g):
SQL >选择dbms_flashback.get_system_change_number,scn_to_timestamp(dbms_flashback。get_system_change_number)从双;
get_system_change_number
------------------------
scn_to_timestamp(dbms_flashback。get_system_change_number)
---------------------------------------------------------------------------
二十八亿七千七百零七万六千七百五十六
17-aug-07 02.15.26.000000000 PM
你也可以用一个函数timestamp_to_scn将时间戳的SCN:
SQL >选择timestamp_to_scn(systimestamp SCN)为双;
SCN
----------
二十八亿七千七百零七万八千四百三十九
最后,SCN除了反映事务数据的变化和保持同步之外,还充当心跳。每隔3秒,系统将再次刷新系统SCN。
下面,我们简要介绍一下SCN在数据库恢复中的作用。
当数据库正常关闭(立即关闭/正常)时,它会首先做检查点,将日志文件中的数据写入数据文件,并将控制文件和数据文件中的SCN更新,包括控制文件中的停止SCN,到最新的SCN。
数据库异常意外关闭将不会或只更新停止SCN的一部分。
当启动数据库时,Oracle首先检查是否在控制文件中每个数据文件的检查点SCN与数据文件中的起始SCN相同,然后检查是否每个数据文件的检查点SCN和结束SCN是相同的。如果发现是不同的,失去的SCN被发现从重做日志改写为恢复数据文件。具体数据恢复过程不再这里描述。
作为Oracle中的一种重要机制,SCN在许多重要的功能中扮演着控制器的角色,理解SCN的产生和实现方式,帮助DBA理解和处理恢复、DG和流复制的问题。
最后提到在Oracle10g SCN机制,11g添加一些有用的功能:数据库闪回,繁殖和其他数据库负载。
总结
这是整个论文的研究内容对Oracle SCN机制,希望对你有所帮助,感兴趣的朋友可以看看:Oracle EBS工具选项:关闭其他形式的改性方法,Oracle数据库启动阶段分析,Oracle虚拟专用数据库的细节。如果有任何问题,你可以随时离开,小编辑将及时回复您。谢谢您的支持!