Bu yazımda bir ASM diskgroup'undan başka bir group' a datafile taşıyacağız. Test ortamımızda bulunan users tablespace'inin datafile'ı '+DATA' Diskgroupunda bulunmakta. Bu datafile'ı '+DATA2' Diskgroupuna taşıyacağız.
SQL> SELECT FILE#,TS#,NAME FROM V$DATAFILE;
Öncelikle taşınacak olan datafile'ın bulunduğu tablespace'i 'READ ONLY' moda alıyoruz.
SQL> ALTER TABLESPACE USERS READ ONLY;
Datafile'ı yeni diskgroup'a kopyalıyoruz. Eğer datafileınızın boyutu büyükse section size vererek taşıyabilirsiniz. Ancak bu işlem için DB compatibility 12.0.1 ve üzeri olması gerekiyor.
RMAN> BACKUP AS COPY DATAFILE 7 FORMAT '+DATA2';
Section Size'lı syntaxı;
RMAN> BACKUP AS COPY DATAFILE 7 FORMAT '+DATA2' SECTION SIZE 256G;
Datafile'ın kopyası kontrol edilir.
RMAN> LIST COPY OF DATAFILE 7;
Tablespace offline moda alınır.
SQL> ALTER TABLESPACE USERS OFFLINE;
Yeni Datafile ile eski datafile değiştirilir.
RMAN> SWITCH DATAFILE 7 TO COPY;
Tablespace read/write ve online moda alınır.
SQL> ALTER TABLESPACE USERS ONLINE;
SQL> ALTER TABLESPACE USERS READ WRITE;
Yer kaplamaması için eski datafile silinebilir.
RMAN> DELETE COPY OF DATAFILE 7;
Görüldüğü gibi 7 numaralı datafile +DATA diskgroupundan +DATA2 diskgroupuna taşındı.
Böylece "ORACLE ASM DISKGROUPTAN BAŞKA BIR DISKGROUP'A DATAFILE TAŞIMAK" adlı yazımın sonuna gelmiş bulunuyorum.
Gelecek yazılarımızda görüşmek üzere, sağlıcakla kalın...
Comentários