恢复管理:
如果控制文件丢失,不一致,需要DBA处理:
解决不一致:
确认控制的交易号码哪个比较新,那个比较旧。
复制新的给旧的,或者直接修改参数control_file使用新的
1.cp新的覆盖旧的
2.SQL> show parameter control_f ----不推荐;
SQL> alter system set control_file='新的' scope=spfile;(控制文件多个目录下,不同磁盘下)
解决丢失:
确认数据库是否归档模式
不是归档:先全备,然后建立新的控制文件即可
-----不是归档应选择重建
如果只丢失一个控制文件,而你本身使用多个控制文件,那就吧存在的CP给丢失的
2.create controlfile reuse database orcl noarchivelog noresetlogs --不重置日志文件
maxlogfiles 16
maxinstances 8
maxlogmembers 3
maxloghistory 1
datafile
'/u01/oracle/oradata/orcl/example01.dbf',
'/u01/oracle/oradata/orcl/system01.dbf',
'/u01/oracle/oradata/orcl/sysaux.dbf',
'/u01/oracle/oradata/orcl/user01.dbf',
'/u01/oracle/oradata/orcl/undotbs01.dbf'
logfile
group 1 '/u01/oracle/oradata/orcl/redo01.log' size 50m,
group 2 '/u01/oracle/oradata/orcl/redo02.log' size 50m,
group 3 '/u01/oracle/oradata/orcl/redo03.log' size 50m
character set utf8
/
alter database open;
recover database;
alter database backup controlfile trace to
归档且日志都在;先全备,使用备份的控制文件恢复即可;
归档且日志不全;先全备,然后建立新的控制文件
新建控制文件语句
可以在数据库运行在mount 及open的时候
可以执行alter database backup controlfile to trace as <dir>
但是注意[no]archeivelog [on]resetlogs 2个参数的区别