您好,欢迎访问一九零五行业门户网

Oracle数据库中出现ORA-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磁盘组中,将数据移回原表空间中。
--------------------------------------------------------------------------------
linux-6-64下安装oracle 12c笔记
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
--------------------------------------------------------------------------------
本文永久更新链接地址:
其它类似信息

推荐信息