Oracle学习笔记2--------------控制文件

控制文件是Oracle中用来记录数据文件存放位置,日志文件存放位置,以及数据文件,日志文件的checkpoint_scn,checkpoint_cnt等重要信息,数据库在启动时是否需要介质恢复和实例恢复都是通过控制文件来判定的。

在nocatalog的备份模式下,控制文件里还记录有rman的备份信息,所以说,一旦所有控制文件丢失而又没有备份,是相当严重的事情,切忌。

一般库中控制文件都有3个,其中2个是镜像,3个文件内容一模一样,强烈推荐将3个控制文件分别存放在不同的磁盘,用以提高容错。

Control file状态可以在mount状态下通过v$controlfile视图来查看。

平时可以通过alter database backup controlfile to trace来备份控制文件。
然后找到转存的trace文件,里面有noresetlogs和resetlogs两种恢复方式分别对应联机日志文件存在和丢失的情况。

另外,如果控制文件不小心丢失,那么分两种情况来重建控制文件。

1. resetlogs方式
这种方式来重建控制文件,对应的情况是联机日志文件丢失,则重建的控制文件会从当前数据文件头部获得scn信息,数据库打开后的scn为该scn+1,对应打开库的方式为  alter database open resetlogs;

2.noresetlogs方式
这种方式来重建控制文件则是直接从当前的联机日志组里面获得最新的scn,同时在库打开的时候会检测是否需要进行介质以及实例恢复,打开库则直接
alter database open 方式。

控制文件里面记录有datafile,database,last_change# 3个scn,在数据库open阶段会跟datafile_header的scn进行比较,如果一致则不需要进行恢复,同时last_change#会在启动后变为null, 所以看一个数据库需不需要恢复,在mount阶段直接查看last_change#,如果为null,那是肯定要进行恢复的。

接着上面的,如果不一致,则查看v$database里面的chk_cnt和v$datafile_header里面的chk_cnt是否一致,如果一致则只需要进行instance恢复,如果不一致,则要进行介质恢复,恢复的时间点则是控制文件里面所记录的online log的on disk scn,也就是写到磁盘上的最后一条redo的scn。

smon这个进程会检查数据库是否需要恢复,这个可以在数据库启动的时候在alertOraclesid_log日志上查看到。



















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22166274/viewspace-665938/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22166274/viewspace-665938/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值