linux oracle 01157,Oracle数据库中出现ORA-01157: 无法标识/锁定数据文件

环境:SLES 11 sp1 + RAC 11.2.0.3.7

马上要休假了,对数据库做了个检查,结果发现计费billingdb数据库的节点2出现如下错误:

Fri Apr 25 21:51:13 2014

Errors in file /Oracle/app/oracle/diag/rdbms/ispace/ispace2/trace/ispace2_m000_15002.trc:

ORA-01157: 无法标识/锁定数据文件 54 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 54: '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/DATADG'

Fri Apr 25 22:01:14 2014

Errors in file /oracle/app/oracle/diag/rdbms/ispace/ispace2/trace/ispace2_m000_30469.trc:

ORA-01157: 无法标识/锁定数据文件 54 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 54: '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/DATADG'

于是检查数据文件的状态,结果发现这个数据文件在节点2上查不到的。

再到节点1检查时,发现这个数据文件被创建在本地目录中了:

TABLESPACE_NAME  FILE_ID FILE_NAME

MB STATUS    AUT

----------------------- ---------- ----------------------------------------------------------- ---------- --------- ---

SRPTSP  54 /oracle/app/oracle/product/11.2.0/dbhome_1/dbs/DATADG

32500 AVAILABLE NO

SRPTSP  55 +DATADG/ispace/datafile/srptsp.4718.845812309

32500 AVAILABLE NO

郁闷,怎么会把数据文件创建在本地目录中呢?

经检查,发现是有一个新来的DBA创建数据文件时将"+DATADG"错误写成了"DATADG",相当于漏掉了"+",数据库根据OMF格式,默认将数据文件创建在本地目录的$ORACLE_HOME/dbs下面。更重要的是,刚刚好监控系统出现了故障,不然这个问题有就有警告了。幸好,这个是存放转存的历史数据,对业务没有产生影响,真是不幸中的万幸呀....

解决办法:

再创建一个表空间,然后将54号数据文件上的所有对象move到新的表空间中,索引rebuild到新的表空间中,最后再:

alter table xxxx move tablespace yyyyy;

alter tablesapce SRPTSP drop datafile 54;

再重新加数据文件到DATADG磁盘组中,将数据移回原表空间中。

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值