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

今天同事添加表空间误将数据文件添加到本地,写成了/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:

 

 

数据一致。




请使用浏览器的分享功能分享到微信等