表空间报错ORA-01157,ORA-01110

来源:这里教程网 时间:2026-03-03 13:57:55 作者:

今天同事添加表空间误将数据文件添加到本地,写成了/oracle/app/oracle/product/11.2.0/db_1/dbs/=DATA,进入到数据中查询表空间的时候报以下错误 ERROR:  ORA-01157: cannot identify/lock data file 284 - see DBWR trace file  ORA-01110: data file 284: '/oracle/app/oracle/product/11.2.0/db_1/dbs/=DATA'。并且alert告警日志中报这样的错误。 环境是AIX系统,数据库版本是11.2.0.4.0 解决方案的具体步骤如下:

1、将表空间offline

alter tablespace ceshi   offline; 

2、进入rman,复制数据文件至asm下

rman> copy datafile ' /u01/app/oracle/product/12.1.0/dbhome_1/dbs/=DATA ' to '+DATA'; 

3、将误创的数据文件重命名到asm下

SQL> alter database rename file ' /u01/app/oracle/product/12.1.0/dbhome_1/dbs/=DATA ' to '+DATA/dzfp/datafile/ceshi..xxxxxxxx'; 

--lvsksk_t_m_1906.xxxxxxxx为rman转换自动生成的文件

4、将表空间online

alter tablespace ceshi    online; 1、准备测试表   1.1、查询表空间为ceshi下的表名   select owner,table_name,tablespace_name from dba_tables where tablespace_name=' CESHI ';   1.2、在yang用户下创建ceshi表并插入一条数据 create table yang . ceshi (id int,name char(10)); insert into yang . ceshi    values(1,' CESHI '); commit;   1.3、查询数据: select * from yang . CESHI ;   2、添加误创的表空间   2.1、查询数据文件路径   SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=' CESHI ';   2.2、添加错误的表空间   2.3、分别在二节点查询数据文件: SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=' CESHI ';     二节点报错   2.3、在测试表 插入数据   1节点对表执行数据插入:    insert into yang.CESHI values(2,'itpux02'); insert into yang.CESHI values(3,'itpux03'); insert into yang.CESHI values(4,'itpux04'); insert into yang.CESHI values(5,'itpux05'); insert into yang.CESHI values(6,'itpux06'); insert into yang.CESHI values(7,'itpux07'); insert into yang.CESHI values(8,'itpux08'); insert into yang.CESHI values(9,'itpux09'); insert into yang.CESHI values(10,'itpux10'); commit;   一节点查询表的数据 SELECT * FROM yang . CESHI ;   二节点查询表的数据   SELECT * FROM yang . CESHI ;     开始转移数据文件 (在节点一上执行) sql "ALTER TABLESPACE CESHI  OFFLINE"; rman> copy datafile ' /u01/app/oracle/product/12.1.0/dbhome_1/dbs/=DATA ' to '+ DATA ;     alter database rename file ' /u01/app/oracle/product/12.1.0/dbhome_1/dbs/=DATA ' to ' +DATA/orcl/datafile/ceshi.269.1011525879 ';   alter tablespace CESHI  online;     验证数据: 分别在两节点执行:   SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=' CESHI ';   节点 1:   节点 2:     验证数据:   select * from yang . CESHI ; 节点 1:     节点 2:     数据一致。

相关推荐