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