登录  /  注册
实例恢复与Oracle的SCN
php中文网
发布: 2016-06-07 16:02:33
原创
781人浏览过

简单理解oracle的SCN就是自己的时间功能,好比linux系统自己的时间一样,oracle它也有自己的一套时间。 在你干净的关闭数据库时shutdown immediate或者使用alter system checkpoint都会把SCN的值写入4个位置,其中有3个位于controlfile内,还有1个位于datafi

简单理解oracle的SCN就是自己的时间功能,好比linux系统自己的时间一样,oracle它也有自己的一套时间。

在你干净的关闭数据库时shutdown immediate或者使用alter system checkpoint都会把SCN的值写入4个位置,其中有3个位于controlfile内,还有1个位于datafile header内

controlfile里面的三个SCN分别是:1、system checkpoint SCN 2、datafile checkpoint SCN 3、stop SCN

---system checkpoint SCN 查询

SQL>select checkpoint_change# from v$database;

---datafile checkpoint SCN查询

SQL>select name,checkpoint_change# from v$datafile where name like '%user%';

---stop SCN查询

SQL>select name,last_change# from from v$datafile where name like '%user%';

其中这个stop SCN在数据库正常使用的时候是NUll值

datafile header里面的SCN是:start SCN

---start SCN 查询

SQL>select name,checkpoint_change# from v$datafile_header were name like '%user%';

1、 Clean shutdown 时

当clean shutdown 时,checkpoint会进行,并且此时datafile的stop scn和控制文件里的start scn会相同。 等到open数据库时,Oracle检查datafile header中的start scn和存于control file中的datafile的scn是否相同, 如果相同,接着检查datafile header的start scn和存于control file中的stop scn是否相同,如果仍然相同,数据库就会正常开启,否则就需要recovery。

等到数据库开启后,储存在control file中的stop scn就会恢复为NULL值,此时表示datafile是open在正常模式下了。

2、 非正常shutdown

如果不正常SHUTDOWN (shutdown abort),则mount数据库后,会发现stop scn并不是等于其它位置的scn, 而是等于NULL,这表示Oracle在shutdown时没有进行checkpoint,下次开机必须进行instance crash recovery(实例恢复)。

注意一点:

(1)启动数据库时,如果发现STOP SCN = NULL,表示需要进行instancecrash recovery;

(2)启动数据库时,如果发现有datafile header的START SCN 不等于储存于CONTROLFILE的DATAFILE SCN,表示需要进行Media recovery

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学