解决11g RAC环境ORA-01157 ORA-01110

节点1执行查询,得到错误提示ORA-01157 DBWR被锁定, ORA-01110提示了数据文件路径如下

ERROR at line 1:
ORA-01157: cannot identify/lock data file 24 - see DBWR  trace file
ORA-01110: data file 24:'/u01/app/oracle/product/11.2.0/db_1/dbs/D:ORACLEPRODUCT10.2.0ORADATADBFILETRD_2.DBF'

查明因为同事对TS_RPT_DATA添加数据文件误操作造成,通过查询节点2上误创建了数据文件,节点1的DBWR进程不能找到数据文件从而锁定,节点1无法进行操作 

解决11g RAC环境ORA-01157 ORA-01110


节点2将表空间Offline

su - oracle
sqlplus / as sysdba
alter tablespace TS_RPT_DATA offline;
exit

解决11g RAC环境ORA-01157 ORA-01110


查看错误创建的数据文件名

cd /u01/app/oracle/product/11.2.0/db_1/dbs/
ls

解决11g RAC环境ORA-01157 ORA-01110


进入RMAN将数据文件复制到正确的ASM中

rman target /
copy datafile '/u01/app/oracle/product/11.2.0/db_1/dbs/D:ORACLEPRODUCT10.2.0ORADATADBFILETRD_2.DBF' to '+DG_BIL_DATA';  
exit

解决11g RAC环境ORA-01157 ORA-01110

记录RMAN转换自动生成的文件名,这里名为ts_rpt_data.288.1017965509


将错误创建的数据文件重命名到ASM中 

sqlplus / as sysdba
alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/D:ORACLEPRODUCT10.2.0ORADATADBFILETRD_2.DBF' to '+DG_BIL_DATA/etlocs/datafile/ts_rpt_data.288.1017965509';

解决11g RAC环境ORA-01157 ORA-01110


将表空间Online

alter tablespace TS_RPT_DATA online;
exit

 解决11g RAC环境ORA-01157 ORA-01110


测试节点1是否已恢复正常,执行一下查询,若有正常输出即正常

select f.tablespace_name,a.total,f.free,round((f.free/a.total)*100) "% Free"
 from
 (select tablespace_name, sum(bytes/(1024*1024)) total from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
  6  order by "% Free";

解决11g RAC环境ORA-01157 ORA-01110


更新日期: 2019年09月05日
文章标签: Oracle
文章链接: https://www.vos.cn/db/348.html  
版权说明:如非注明,本站文章均为vOS原创,转载请注明出处和附带本文链接。