本文共 810 字,大约阅读时间需要 2 分钟。
我们重点讨论几个SCN
控制文件中的SCN
1、系统检查点SCN
当一个检查点动作完成以后,Oracle就把系统检查点的SCN存储到控制文件中
2、数据文件检查点SCN
当一个检查点动作完成以后,Oracle就把每一个数据文件的SCN单独存放在控制文件中
1、为了显示,首先看一下DESC,确定每一个列的大小
2、设置linesize,保证一行中能够容纳所有的列
当然也要考虑实际的大小
同时还可以设置pagesize的大小
3、终止SCN
联机读写模式下面的所有的数据文件的终止SCN为空或者无限大
数据文件中的SCN
1、启动SCN
数据文件的检查点信息写入到每一个数据文件的头部
1、数据库正常运行期间,控制文件中的系统检查点SCN、控制文件中数据文件检查点信息、每个数据文件头部的数据文件检查点SCN,都是相同的
2、控制文件中每个数据文件的终止SCN都为NULL
数据库正常关闭,系统执行一个CHECKPOINT,将所有的数据文件的终止SCN(位于控制文件中)设置成数据文件头部的启动SCN
数据库安全关闭以后,四个SCN应该是相同的
数据库启动
1、数据文件头部的启动SCN与控制文件中数据文件检查点SCN比较
如果相同,继续
2、数据文件头部的启动SCN与控制文件中数据文件终止SCN比较
如果相同,那么表示正常关机,不需要恢复
3、数据库打开,控制文件中数据文件终止SCN被设置为NULL
数据库被打开,并且正常使用
熊熊物语:说白了吧,UNDO表空间就是一个历史滚滚长流,每一个SCN版本号可以理解成一个已经过去的朝代,如果你想玩穿越,就得有个具体的SCN版本号,才能穿越过去
那为什么SCN号不对应不行呢,很简单,比如一个康熙当政的时候,他媳妇儿是皇后,等他挂了,雍正继位,皇太后就是德妃娘娘了,那个皇后怎么办,不能再用前朝的SCN号了,就得改新的SCN号,叫皇太妃,对吧(哈哈,架空历史,假设假设)
转载地址:http://fhubl.baihongyu.com/