各种情况恢复控制文件

数据库多路复用控制文件,但是只要一个控制文件损坏了,数据库将停止运行。
if损坏的控制文件所在磁盘没有损坏,用没有损坏的控制文件在原位置修复损坏的控制文件。
if损坏的控制文件所在磁盘也损坏了,则需要用没有损坏的控制文件在其他位置修复损坏的控制文件,且需要修改初始化参

数文件control_files


1.在原有位置修复损坏的控制文件
比如控制文件control01.ctl损坏了
shutdown  immediate
host copy d:control02.ctl   d:control01.ctl
startup

2.不在原位置修复损坏的控制文件
比如控制文件control01.ctl损坏了
shutdown immediate
host copy d:control02.ctl   d:control01.ctl
startup mount;
alter system set contrl_files='d:\control01.ct','d:\control02.ct','d:\control03.ct' scope=spfile;
shutdown immediate
startup


3.丢失所以当前的控制文件
需要用备份的控制文件进行数据库恢复,由于数据库不是处于数据库的当前状态,所以必须以resetlogs方式打开数据库,根

据联机重做日志文件可用性不同,使用备份的控制文件恢复数据库的过程也有所不同
利用控制文件备份修复控制文件进行数据库恢复的步骤为:
shutdown immediate
这里参照上面的2,
shutdown immediate
startup mount
利用带有using backup controlfile字句的recover命令进行数据库的恢复
recover  automatic  database using backup controlfile;
如果进行不完全恢复需要指定until cancel子句
recover automatic database until cancel using backup controlfile;
....
alter database open resetlogs;


4.控制文件全部损坏也无备份的情况
不同的情形,控制文件有不同的创建方法,由于数据库的结构变化信息都记录在警告文件altersid.log中,因此在决定采用

何种方法创建控制文件之前,应该先查看告警文件中的信息。
create controlfile reuse database MUWEI
NORESETLOGS ARCHIVELOG
MAXLOGFILES:用于指定Oracle数据库的最大日志组个数
MAXLOGMEMBERS:用于指定每个日志组的最大日志成个数
MAXDATAFILES:用于指定Oracle数据库的最大数据文件个数
MAXINSTANCES:用于指定可以同时访问数据库的最大例程个数
MAXLOGHISTORY :用于指定控制文件可记载日志历史的最大个数
。。。。
LOGFILE
这儿填写日志文件组
datafile
.....
.....
.....
这儿填写数据文件
以上创建的文件必须和之前的一模一样

按正常方式回复数据库不需要指定using backup contrilfile子句
recover database
alter database open 不需要resetlogs打开
立即备份
alter dataabase backup controlfile to 'd:\';

 


--下面方法教你怎么查看控制文件的跟踪信息

alter session  set events '10053 trace name context forever'; --打开10053事件
alter database backup controlfile to trace;
alter session  set events '10053 trace name context off';  --关闭10053事件
show parameter user_dump_dest

select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' || case
         when e.value is not null then
          '_' || e.value
       end trace
  from v$process a, v$session b, v$parameter c, v$instance d, v$parameter e
 where a.addr = b.paddr
   and b.audsid = userenv('sessionid')
   and c.name = 'user_dump_dest'
   and e.name = 'tracefile_identifier';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值