检查点和SCN一直以来就是两个似是而非的概念,这两天看eygle的书,深入到了各种文件中去学习这两个东东,算是又进了一步,在这里记下来留档.
1.检查点:可以看作是一个数据库事件,该事件发生时,DBWR会将DB Buffer Cash中脏数据写回磁盘;同时CKPT会更新控制文件和数据文件的头,用以标识变更.
系统每次发生检查点事件,检查点计数器就回增加1,这个检查点计数器记录在控制文件及数据文件头中,作为一种版本控制机制.
2.SCN:系统变更号,eygle大师说这就是Oracle内部时钟,这个概括解除了以前的疑惑,以前只知道commit后,系统会产生SCN冰记录于redo vecotor中,redo log会即时写回.以防止数据丢失,但其中具体原理不清楚.这会看了转储文件的例子,明白了怎样利用这个SCN.
3.书上说的,以及我的理解:
数据库在Open阶段,做两步检查:第一步,检查数据文件头部和控制文件中的检查点计数器是否一致,判断数据文件是来自统一版本,而非恢复而来;若第一步通过,第二步,检查数据文件头部和控制文件中的结束SCN,如果一致说明了数据库为一致,不需要恢复.
以上为书上说的,接下来开始我的理解.
1. 检查点
1.检查点:可以看作是一个数据库事件,该事件发生时,DBWR会将DB Buffer Cash中脏数据写回磁盘;同时CKPT会更新控制文件和数据文件的头,用以标识变更.
系统每次发生检查点事件,检查点计数器就回增加1,这个检查点计数器记录在控制文件及数据文件头中,作为一种版本控制机制.
2.SCN:系统变更号,eygle大师说这就是Oracle内部时钟,这个概括解除了以前的疑惑,以前只知道commit后,系统会产生SCN冰记录于redo vecotor中,redo log会即时写回.以防止数据丢失,但其中具体原理不清楚.这会看了转储文件的例子,明白了怎样利用这个SCN.
3.书上说的,以及我的理解:
数据库在Open阶段,做两步检查:第一步,检查数据文件头部和控制文件中的检查点计数器是否一致,判断数据文件是来自统一版本,而非恢复而来;若第一步通过,第二步,检查数据文件头部和控制文件中的结束SCN,如果一致说明了数据库为一致,不需要恢复.
以上为书上说的,接下来开始我的理解.
1. 检查点
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21402791/viewspace-629477/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21402791/viewspace-629477/