问题描述:
在Oracle RAC+ASM架构中,误将数据文件添加到本地文件系统,在不停机的情况下将数据文件移动到ASM中。
SQL> select * from v$dbfile where name not like '+DATA%';
FILE# NAME
---------- ------------------------------------------------------------------------------------------
771 /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/E:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF
772 /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/E:APPADMINISTRATORORADATAORCLPM_BETA.DBF
处理步骤:
- 数据文件OFFLINE
SQL> alter database datafile 771 offline;
Database altered.
SQL> alter database datafile 772 offline;
Database altered.
- RMAN COPY DATAFILE
[oracle@dm01db01 dbs]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Fri Oct 9 18:48:01 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: BJSF1 (DBID=4214314765)
RMAN> backup as copy datafile 771 format '+DATA/bjsf1/EXAMPLE01.DBF';
Starting backup at 09-OCT-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=51 instance=bjsf11 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00771 name=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/E:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF
output file name=+DATA/bjsf1/example01.dbf tag=TAG20201009T184933 RECID=1 STAMP=1053370173
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 09-OCT-20
RMAN> backup as copy datafile 772 format '+DATA/bjsf1/PM_BETA.DBF';
Starting backup at 09-OCT-20
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00771 name=/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/E:APPADMINISTRATORORADATAORCLPM_BETA.DBF
output file name=+DATA/bjsf1/pm_beta.dbf tag=TAG20201009T184934 RECID=2 STAMP=1053370174
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 09-OCT-20
- SWITCH DATAFILE TO COPY
RMAN> switch datafile 771 to copy;
datafile 771 switched to datafile copy "+DATA/bjsf1/example01.dbf"
RMAN> switch datafile 772 to copy;
datafile 772 switched to datafile copy "+DATA/bjsf1/pm_beta.dbf"
- RECOVER DATAFILE
SQL> recover datafile 771;
ORA-00279: change 2626257808 generated at 10/08/2020 22:00:45 needed for thread
ORA-00289: suggestion : +RECO/bjsf1/archlog/2_8006_899051085.dbf
ORA-00280: change 2626257808 for thread 2 is in sequence #8006
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
Media recovery complete.
SQL> recover datafile 772;
ORA-00279: change 2626257808 generated at 10/08/2020 22:00:45 needed for thread 2
ORA-00289: suggestion : +RECO/bjsf1/archlog/2_8006_899051085.dbf
ORA-00280: change 2626257808 for thread 2 is in sequence #8006
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
Media recovery complete.
- ONLINE DATAFILE
SQL> alter database datafile 771 online;
Database altered.
SQL> alter database datafile 772 online;
Database altered.
SQL> col file_name for a35
SQL> col tablespace for a20
SQL> select file_id,file_name,tablespace_name,status,online_status from dba_data_files where file_id in (771,772);
FILE_ID FILE_NAME TABLESPACE_NAME STATUS ONLINE_
---------- ----------------------------------- ------------------------------ --------- -------
771 +DATA/bjsf1/example01.dbf EXAMPLE AVAILABLE ONLINE
772 +DATA/bjsf1/pm_beta.dbf PM_BETA AVAILABLE ONLINE
SQL> alter system checkpoint;
System altered.
SQL> alter system archive log current;
System altered.
- 检查数据库alert日志,确定无报错信息