ITPub博客

首页 > 数据库 > Oracle > 解決ORA-01110問題

解決ORA-01110問題

原创 Oracle 作者:wuhuizhong 时间:2007-07-25 09:07:24 0 删除 编辑

ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/data2/PMS_DATA.dbf'

問題解決如下:

[@more@]

[oracle@Pyzs-DB-Test3 oracle]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.6.0 - Production on Wed Jul 25 08:53:17 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 370218364 bytes
Fixed Size 451964 bytes
Variable Size 150994944 bytes
Database Buffers 218103808 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/data2/PMS_DATA.dbf'


SQL> alter database create datafile '/data2/PMS_DATA.dbf';

Database altered.

SQL> alter database datafile '/data2/PMS_DATA.dbf' offline drop;

Database altered.

SQL> alter database open;

Database altered.

一、查找报错文件号(Fill#)所在的表空间

svrmgrl> startup mount

svrmgrl> SELECT Fill#,TS#,NAME FROM V$DATAFILE WHERE FILL#=报错的数据文件号;

svrmgrl>SELECT TS#,NAME FROM V$TABLESPACE WHERE TS#=上语句检索的ts#;



二、检查一下该数据文件所在的卷组是否处于非激活状态,如是将其激活,否则转下一步即该数据文件发生损坏。



三、根据数据文件所在运行模式及所归属的表空间的类型作相应的处理

一)数据库处于ARCHIVELOG模式下

1、使用recover database 或使用recover datafile命令进行数据库恢复

2、以alter database open resetlogs 命令打开数据库

二)数据库处于NOARCHIVELOG模式下

1、损坏的数据文件属于system表空间

如无物理级备份则须重建数据库

2、损坏的数据文件属于temp表空间,此时可以不丢失数据完成恢复

因临时表空间不包含数据,所以可以将临时表空间Drop掉,重建即可

3、损失的是控制文件

1、如并非所有的控制文件都损坏的话,可以将损坏的文件从init.ora中去掉,启动数据库即可

2、如所有控制文件皆损坏,可使用dd命令进行控制文件恢复。

4、损坏的数据文件属于用户表空间,有以下两种解决方案:

a.用户的表空间可以被轻易地重建,重建表空间以及所有的对象.

svrmgrl> startup mount

svrmgrl> alter database datafile filename offline drop;

svrmgrl> alter database open;

svrmgrl> drop tablespace tablespace_name including contents;

重建表空间及所有对象.

b.用户的表空间不能够被轻易地重建

如无备份则用户数据数据会全丢失

5、损坏的数据文件属于回滚表空间

1)确认数据库完全关闭

2)修改init.ora文件,注释"rollback-segment"

2)svrmgrl> startup restrict mount

3)svrmgrl> alter database datafile filename offline drop;

4)svrmgrl> alter database open;

基于出现的结果: "statement processed" 转7),"ORA-00604,ORA-00376,ORA-01110"转6)

6)svrmgrl> shutdown immediate

修改init.ora文件,增加如下一行:

_corrupted_rollback_segments = (,...)

svrmgrl> startup restrict

7) svrmgrl> drop tablespace tablespace_name including contents;

8) 重建表空间及回滚段

9) svrmgrl> alter system disable restricted session;

10) 修改init.ora文件

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

请登录后发表评论 登录
全部评论
  • 博文量
    18
  • 访问量
    180049