Selamlar, bu yazımda ASM disklerimizde ki datafile’larımızı farklı bir ASM diskgroup üzerine taşımayı ele aldım.
Öncelikle asmca aracı ile bir diskgroup oluşturalım, manuel olarak sql ifadesi ile de oluşturabilirsiniz. Terminalden ASM enviroment’ına girelim.
. oraenv +ASM asmca
Halihazır da DATA isimli bir diskgroup’umuz mevcut ve içinde bir ASM disk mevcut. Yeni bir disk oluşturalım ve bunu yeni diskgroup’umuza atayalım.
oracleasm createdisk NEW_ASM /dev/sdd1 oracleasm scandisks
Diskgroup’umuzun ismi NEW ve yeni ASM diskimizi bu grubun içine ekledik. Artık taşıma için hazırız.
Öncelikle veri dosyalarımızın nerede olduğuna bakalım
Örnek olarak user.259 ile başlayan datafile’ımızı NEW isimli asmgroup üzerine taşıyalım. Taşıyacağımız tablespace’i offline moda almalıyız.
SQL>ALTER DATABASE DATAFILE '+DATA/testdb/datafile/users.259.1004572059' OFFLINE;
Şimdi veri dosyamızı kopyalama işlemine başlayalım.Bu işlemi iki şekilde gerçekleştirebiliriz;
- RMAN üzerinden
- DBMS_FILE_TRANSFER paketini kullanarak.
Ben rman üzerinden örneği gerçekleyeceğim, RMAN’ e bağlanalım.
rman target/ COPY DATAFILE '+DATA/testdb/datafile/users.259.1004572059' TO '+NEW';
Yeni veridosyamız için yeniden adlandırma yapmalıyız.
run {set newname for datafile '+DATA/testdb/datafile/users.259.1004572059' to '+NEW/testdb/datafile/users.256.1005683335'; switch datafile all;}
veridosyamızı kurtarma işlemini gerçekleştirelim
SQL> RECOVER DATAFILE '+NEW/testdb/datafile/users.256.1005683335';
Artık veridosyamızı online duruma alabiliriz.
SQL> ALTER DATABASE DATAFILE '+NEW/testdb/datafile/users.256.1005683335' ONLINE;
Tekrardan veri dosyalarımızın yerini sorgulayalım.
SELECT FILE_NAME FROM DBA_DATA_FILES;
users.256 ile başlayan dosyamız yeni asmgroup’a taşındı, eski yerindeki dosyayı silebiliriz. ASMCMD ile bağlanıp dosyayı silelim.
ASMCMD> rm -rf USERS.259.1004572059
Taşıma işlemlerimiz bitti, hoşçakalın..