您的位置:首页 > 数据库

DBA手记之:数据库启动报ORA-01157和ORA-01110错误

2012-12-05 11:48 603 查看
前记:前一段时间运维人员反映oracle数据库无法启动,最多只能启动到mount状态,启动到open的时候就会报ORA-01157和ORA-01110错误。报错信息类似如下:

ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data 4 10: 'dev/vg01/rlv_tts_default_01'

原因:导致这种错误的可能原因为

1、在磁盘上对'dev/vg01/rlv_tts_default_01'进行了物理删除或者移动.数据库在进行启动时通过参数文件将数据库启动到nomount;然后根据参数文件中记录的控制文件地址,定位并加载控制文件使数据库启动到mount状态,控制文件记录了数据库的物理结构,如有哪些数据文件,在哪些目录等等。此后是数据库会根据控制文件中记录的信息检测各个数据文件,进行实例恢复等工作,完成后数据库就启动到open了。但是此时对数据库进行了屋里文件删除,数据库日志里并没有记载,数据库会根据原计划会寻找那个数据文件,但是该文件不存在了,所以数据库会启动不起来。

2、运维反应存在'dev/vg00/rlv_tts_default_01'文件,猜测为有人将对应的TBS_DEFAULT表空间的数据文件路径从 'dev/vg00/rlv_tts_default_01'修改到了'dev/vg01/rlv_tts_default_01'。这种情况还不太确定,待以后做实验。

解决办法:

1、在mount状态下执行

SQL> alter database datafile 'dev/vg01/rlv_tts_default_01' offline drop

2、SQL>alter database open

这时数据库是可以启动的,当然'dev/vg01/rlv_tts_default_01' 被offline drop掉将不能访问里面的数据

3、因为原来该表空间是没有数据库的,所以只用给该表空间再新加一个数据文件即可。

SQL> alter tablespace tbs_default add datafile 'dev/vg01/rlv_tts_default_02' size XXX M

参考文献:

1、http://smallslow.blog.sohu.com/2465752.html ora-01157和ora-01110错误

2、http://blog.itpub.net/post/11594/313523 解決ORA-01110問題

3、http://www.net527.cn/shujukuguanli/Oracle/2012/0728/24037.html offline drop 与 offline
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: