解决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无法进行操作
节点2将表空间Offline
su - oracle sqlplus / as sysdba alter tablespace TS_RPT_DATA offline; exit
查看错误创建的数据文件名
cd /u01/app/oracle/product/11.2.0/db_1/dbs/ ls
进入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
记录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';
将表空间Online
alter tablespace TS_RPT_DATA online; exit
测试节点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";
本站所有文章均可随意转载,转载时请保留原文链接及作者。