Bildiğiniz üzere oracle 12c ile birlikte online olarak datafile taşıyabilir hale gelmiştik. Bununla ilgili olarak ASM kullanılmadığı durumlarda bu işlemi nasıl yapabileceğimiz den aşağıdaki linkdeki yazımda bahsetmiştim. Ancak sonrasında bazı arkadaşlar dan ASM kullanıldığında bunu nasıl yapabiliriz diye sorular aldım. Buna cevaben de bu yazıyı yazmaya karar verdim ;
Testimizi oracle versiyonu 12.1.0.2 olan bir RAC test ortamımda yaptım.
Hangi pluggable database üzerinde çalışacak isek onu set ediyoruz;
1 2 |
SQL> alter session set container=PDB_RAC_CON1; Session altered. |
Diskgrouplarımıza bakalım ve örnek olarak datafile’ lerimiz den birini taşımaya karar verelim;
1 2 3 4 5 6 7 8 9 |
===> select name, free_mb from v$asm_diskgroup NAME FREE_MB ------------------------------ ---------- ARCH01_0000 50404 DATA01_0000 73251 DATA02_0000 101269 3 rows selected. |
Datafile’ lerimize bakalım hangi datafile’ imiz nerede ;
1 2 3 4 5 6 7 8 9 10 |
===> select file#, name from v$datafile FILE# NAME 4 +DATA01_0000/raccon1/undotbs01.dbf 9 +DATA01_0000/pdb_rac_con1_system.dbf 10 +DATA01_0000/pdb_rac_con1_sysaux.dbf 11 +DATA01_0000/raccon1/pdb_rac_con1_users01.dbf 17 +DATA02_0000/RACCON1/1A366DD421487F4AE053C9040892FC43/DATAFILE/dbadata.256.887023453 5 rows selected. |
+DATA01_0000 diskgroup’ uında yer alan 11 nolu datafile’ i +DATA02_0000 diskgroup’ u altına taşıyalım.
Taşıyacağımız datafile’ i offline’ a alıyoruz ;
1 2 |
SQL> Alter database datafile '+DATA01_0000/raccon1/pdb_rac_con1_users01.dbf' offline ; Database altered. |
Datafile’ in bir copyasını rman’ i kullanarak yeni lokasyona kopyalıyoruz ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[oracle@trdbaora01t raccon11]$ rman target / Recovery Manager: Release 12.1.0.2.0 - Production on Mon Aug 10 11:13:57 2015 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: RACCON1 (DBID=2164355833) RMAN> Copy datafile '+DATA01_0000/raccon1/pdb_rac_con1_users01.dbf' to '+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf'; Starting backup at 10-AUG-15 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=403 instance=raccon11 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00011 name=+DATA01_0000/raccon1/pdb_rac_con1_users01.dbf output file name=+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf tag=TAG20150810T111613 RECID=3 STAMP=887368573 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 10-AUG-15 Starting Control File and SPFILE Autobackup at 10-AUG-15 piece handle=+DATA01_0000/RACCON1/AUTOBACKUP/2015_08_10/s_887368574.303.887368575 comment=NONE Finished Control File and SPFILE Autobackup at 10-AUG-15 |
Kopyaladığımız datafile’ i rename ediyoruz;
1 2 |
RMAN> Alter database rename file '+DATA01_0000/raccon1/pdb_rac_con1_users01.dbf' to '+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf'; Statement processed |
Yine rman’ ni kullanarak yeni datafile’ imizi switch ediyoruz ;
1 2 |
RMAN> Switch datafile '+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf' to copy ; datafile 11 switched to datafile copy "+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf" |
Datafile’ imiz offline da olduğu için online’ a alabilmek için sırasıyla ;
1 2 3 4 5 6 7 8 9 |
RMAN> Recover datafile '+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf' ; Starting recover at 10-AUG-15 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 10-AUG-15 |
Online’ a alıyoruz ;
1 2 |
SQL> Alter database datafile '+DATA02_0000/raccon1/pdb_rac_con1_users01.dbf' online ; Database altered. |
Check edelim ;
1 2 3 4 5 6 7 8 9 10 |
===> select file#, name from v$datafile FILE# NAME 4 +DATA01_0000/raccon1/undotbs01.dbf 9 +DATA01_0000/pdb_rac_con1_system.dbf 10 +DATA01_0000/pdb_rac_con1_sysaux.dbf 11 +DATA02_0000/raccon1/pdb_rac_con1_users01.dbf 17 +DATA02_0000/RACCON1/1A366DD421487F4AE053C9040892FC43/DATAFILE/dbadata.256.887023453 5 rows selected. |
Böylelikle datafile’ imizi asm içerisinde farklı bir diskgroup altına taşımış olduk.
Reference;
How to move ASM database files from one diskgroup to another ? (Doc ID 330103.1)