刚记录了临时文件创建错位置的处理,又联想到数据文件的创建错位置的处理,一起记录下,去年处理的案例
准备做数据库启停时,db2节点上检查alert日志时发现有报错,登录sql检查发现如下问题
SQL> select tablespace_name, file_name from dba_data_files where file_id in ('26','27');
TABLESPACE_NAME FILE_NAME
-------------------- ------------------------------------------------------------
TS_ZSJ_D /u01/app/oracle/product/11.2.0/db_1/dbs/user
TS_ZSJ_D /u01/app/oracle/product/11.2.0/db_1/dbs/usern
首先断开相关的业务连接,在db1做数据库rman备份和逻辑备份,备份完成后开始操作
1、查看26、27号文件所属的表空间,将表空间offline
SQL> select tablespace_name, file_name from dba_data_files where file_id in ('26','27');
SQL> alter tablespace TS_ZSJ_D offline;
2 、连接到RMAN并copy数据文件
$ rman target /
copy datafile 26 to '+DATA';
copy datafile 27 to '+DATA';
switch datafile 26 to copy;
switch datafile 27 to copy;
3、查看结果
SQL> select file#,name from v$datafile where FILE# in ('26','27');
26 +DATA/ORCL/datafile/ts_zsj_d.342.1128606211
27 +DATA/ORCL/datafile/ts_zsj_d.343.1128505379
4.将表空间online
SQL> alter tablespace TS_ZSJ_D online;
解决该问题有多种方法,个人以为该操作最简便