OPEN时检查的2步是:检查点计数器,开始和结束SCN
这里有4个SCN参与了这两步检查,其中在控制文件中有3个scn参与了,数据文件中有1个SCN参与了
1.System Checkpoint SCN(控制文件中)
select checkpoint_change# from v$database;
从v$database中查到的checkpoint_change#就是System Checkpoint SCN,这个系统检查点是用来判断控制文件是否是当前的
2.Datafile Checkpoint SCN(控制文件中)
select name,checkpoint_change# from v$datafile where name like '%users01%';
每个数据文件在控制文件中都有个检查点SCN,v$datafile的CHECKPOINT_CHANGE#是Datafile Checkpoint SCN,它是控制文件的检查点信息,不是实际数据文件的检查点SCN
3.Stop SCN(控制文件中)
select name,last_change# from v$datafile where name like '%users01%';
LAST_CHANGE#是STOP SCN,它是用来控制崩溃恢复的,如果是读写状态的ONLINE数据文件,此值是NULL,也就是结束SCN无穷大
4.Start SCN(数据文件中)
select name,checkpoint_change# from v$datafile_header where name like '%users01%';
v$datafile_header的CHECKPOINT_CHANGE#就是开始SCN
数据库打开时的两次比较
第1次比较(判断介质恢复)
查看控制文件和数据文件的checkpoint_change#是否相等,这里用CHECKPOINT_CHANGE#来判断
select 'controlfile' "SCN location",name,checkpoint_change# from v$datafile where lower(name) like '%users01%'
union
select 'file header',name,checkpoint_change# from v$datafile_header where lower(name) like '%users01%';
如果两个SCN不一致:
开始SCN > Datafile Checkpoint SCN,说明控制文件是早期的
开始SCN < Datafile Checkpoint SCN,说明数据文件是老的,需要介质恢复,在恢复最关键的是备份文件的开始SCN
第2次检查(判断崩溃恢复)
查看控制文件中的结束SCN和数据文件开始SCN,不相等就需要进行崩溃恢复
select 'controlfile' "SCN location",name,LAST_CHANGE#
from v$datafile where name like '%users01%'
union
select 'file header',name,checkpoint_change#
from v$datafile_header where name like '%users01%';
如果用的是老的控制文件,在打开的时候就需要借助System Checkpoint SCN
如果System Checkpoint SCN < 所有数据文件开始SCN:说明该控制文件是备份控制,不是当前控制文件
查找老控制文件的语句
select 'controlfile' "SCN location",'SYSTEM checkpoint' name,checkpoint_change#
from v$database
union
select 'file in controlfile',name,checkpoint_change#
from v$datafile where name like 'users01%'
union
select 'file header',name,checkpoint_change#
from v$datafile_header where name like '%users01%';
控制文件中数据文件的检查点SCN与开始SCN来判断介质恢复
结束SCN与开始SCN来判断崩溃恢复
系统检查点与开始SCN来判断是否备份控制文件
相关文章
- 如何获取此地图代码的当前位置?当我打开地图时,还试图从服务器接收车辆数据
- 利用pandas中的to_csv模块保存数据,打开csv文件时出现乱码的解决方法
- 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)
- Java中迭代列表中数据时几种循环写法的效率比较
- 逐行比较两个数据帧,并在每次不相等时添加一行
- SQL Server统计信息更新时采样百分比对数据预估准确性的影响详解
- ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
- mysql 打开数据库连接时,出现1130 -host 'localhost' is not allowed 。。的解决办法
- 没有SQL Server数据库时如何打开.MDF文件
- 详解IOS开发中图片上传时两种图片压缩方式的比较