数据打开时,两次比较详解
来源:互联网 发布:云计算是谁提出的 编辑:程序博客网 时间:2024/06/02 06:31
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来判断是否备份控制文件
这里有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来判断是否备份控制文件
0 0
- 数据打开时,两次比较详解
- 两次打开同一文件
- 同一个页面不打开两次
- 连续两次打开同一个文件
- JSP页面中存储数据时数据被提交两次
- C++ fstream 打开两次后读写失败
- 设置FLAG_ACTIVITY_NEW_TASK导致Activity打开两次
- cordova连续打开两次相机解决方法
- jquery 解析两次json数据
- 连续new两次对象的结果比较
- ISDIGIT算法问题:两次比较与表查找比较谁更快
- 数据比较
- Python打开文件时的几种模式比较
- ResultSet中做if判断时next()两次取不到第一条数据的问题
- easui中的datagrid会加载两次数据
- 同一篇打开两次office无响应的bug
- 不可以两次打开文件,否则第二次失败
- vs2010打开数据连接时程序崩溃
- SICP-《计算机程序的构造和解释》之习题分析与收获——练习1.30
- 操作系统之进程的状态
- android 事件处理
- Linux之Makefile(sort)
- Effective STL--交换技巧来修改过剩容量
- 数据打开时,两次比较详解
- php学习笔记(二十六)创建session
- 群延迟解释(FIR线性相位的解释)
- 12月书籍
- Linux之Makefile(word)
- 最最基础的Android倒计时应用
- Linux之Makefile(wordlist)
- 正则表达式技巧
- Android studio中的target,同一个项目多种应用打包