常见的数据库不能启动的恢复手册.pdf
文本预览下载声明
美河学习在线
常见的数据库不能启动的原因:
(蓝色字体为sqlplus 界面操作,红色为注释)
一、日志文件丢失或损坏
日志文件的恢复:
1、非归档模式
SQLstartup mount;
SQLselect * from v$logfile;
如果日志文件丢失了,手工建上相应的日志文件放在原处
(新建一个文本文件,改为相应的日志名就可以了)
SQLSelect * from v$log;
查看日志文件当前状态
SQLalter database clear logfile group N;
(N为非当前状态组号,把所有非当前状态的日志进行恢复);
(语句的作用是把该日志文件,清空为标准空日志文件)
SQLrecover database until cancel;
(恢复当前日志)
SQLalter database open resetlogs;
如果是单个日志文件损坏
SQLstartup mount;
SQLalter database clear logfile group N;
SQLalter database open;
2、归档模式
与上面操作大致一样如果
如果alter database clear logfile group N 执行不成功
就改为:alter database clear unarchived logfile group N
特别要注意的:alter database open resetlogs;
Resetlogs:
表示一个数据库逻辑生存期结束和一个数据库逻辑生存期的开始.
每次使用resetlogs 时,SCN 计数器不会被重置,oracle 会重置其它计数
器(如日志序列号),同时还会重置重做日志的内容.
如果当前日志文件损坏无法通过recover database until cancel 恢复
就用第三种方式处理。
3、当前日志文件损坏的处理办法:
SQLstartup mount;
SQLcreate pfile=’d:\orace_test\pfile.txt’ from spfile;
(8i及以前版本直接找到参数文件复制一份就可以了)
SQLshutdown immediate;
编辑生成的pfile,加入_allow_resetlogs_corruption=TRUE
美河学习在线
SQLstartup mount pfile=’d:\oracle_test\pfile.txt’;
SQLalter database open resetlogs;
数据库被打开后,马上执行一个full export
shutdown 数据库
重建库
import 并完成恢复
建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;
说明:
1、该恢复方法是没有办法之后的恢复方法,一般情况下建议不要采用,
因为该方法
可能导致数据库的不一致
2、该方法也丢失数据,未写入数据文件的已提交或未提交数据。
3、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的
发生,因为
任何数据的丢失对于生产来说都是不容许的
二、密码文件的丢失与损坏
在一些特殊情况下会改变密码文件如:重建控制文件或密码文件被修改。
c:orapwd file=’home\database\PWDSID’ password=123
三、控制文件丢失或损坏
如果控制文件只丢失或损
显示全部