Explaining how to move datafile from one ASM DG to another.
Note: Database must be in archivelog mode before doing this activity.
1. Find the name of the datafile that you're going to migrate
SQL> SELECT file_name FROM dba_data_files;
FILE_NAME
----------------------------------------------
+DATA/mydb/datafile/system.312.825938943
+DATA/mydb/datafile/sysaux.313.825938957
+DATA/mydb/datafile/undotbs1.314.825938971
+DATA/mydb/datafile/undotbs2.315.825938991
+DATA/mydb/datafile/users.317.825939005
+DATA/mydb/datafile/mydb01.dbf
+RECO/mydb/datafile/mydb_tbs.7665.836338453 <Moving this file from +RECO to +DATA
7 rows selected.
2. Take the datafile offline
SQL> Alter database datafile '+RECO/mydb/datafile/mydb_tbs.7665.836338453' offline;
Database altered.
RMAN> COPY datafile '+RECO/mydb/datafile/mydb_tbs.7665.836338453' to '+DATA';
Starting backup at 18-FEB-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=493 instance=mydb device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00012 name=+RECO/mydb/datafile/mydb_tbs.7665.836338453
output file name=+DATA/mydb/datafile/mydb_tbs.385.839852436 tag=TAG20140218T122054 RECID=5 STAMP=839852676
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:03:45
Finished backup at 18-FEB-14
4. Change datafile's name to the new name to update data dictionary
SQL> Alter database rename file '+RECO/mydb/datafile/mydb_tbs.7665.836338453' to '+DATA/mydb/datafile/mydb_tbs.385.839852436';
Database altered.
5. Rename the datafile using RMAN to update ASM. This command is equivalent of "alter database rename file":
RMAN> SWITCH DATAFILE '+DATA/mydb/datafile/mydb_tbs.385.839852436' to copy;
using target database control file instead of recovery catalog
datafile 12 switched to datafile copy "+DATA/mydb/datafile/mydb_tbs.385.839852436"
6. Recover the new datafile:
RMAN> RECOVER DATAFILE '+DATA/mydb/datafile/mydb_tbs.385.839852436';
Media recovery complete.
7. Bring it online
SQL> ALTER DATABASE DATAFILE '+DATA/mydb/datafile/mydb_tbs.385.839852436' ONLINE;
Database altered.
Database altered.
8. Now check datafile name
SQL> SELECT file_name FROM dba_data_files;
FILE_NAME
----------------------------------------------
+DATA/mydb/datafile/system.314.825938943
+DATA/mydb/datafile/sysaux.315.825938957
+DATA/mydb/datafile/undotbs1.316.825938971
+DATA/mydb/datafile/undotbs2.318.825938991
+DATA/mydb/datafile/users.319.825939005
+DATA/mydb/datafile/mydb01.dbf
+DATA/mydb/datafile/mydb_tbs.385.839852436 <<<< Datafile Name Changed in new DG
7 rows selected.
No comments:
Post a Comment