ASM disk grubundaki bir veri dosyasının farklı bir disk gruba taşınması
ASM disk grubundaki bir veri dosyasını , system tablo alanına ait değilse , veritabanı açıkken , farklı bir disk gruba yada aynı disk gruptaki farklı bir dizine taşımak mümkündür.
Aynı disk grubunda farklı bir dizine taşımak için önce veritabanının db_unique_name parametresinin yeni dizin olarak şekilde değiştirilmesi gerekmektedir. Hedef disk grubu olarak da mevcut disk grup verilmelidir. Bu makalede farklı bir disk gruba taşıma adımları anlatılmaktadır.
Öncelikle datafile ismini belirleyelim.
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES where tablespace_name='USERS'; FILE_NAME -------------------------------------------------------------------------------- +DATA/orcl/datafile/users.526.799775723
Taşınacak datafile’ı offline duruma getirelim.
SQL> alter database datafile '+DATA/orcl/datafile/users.526.799775723' offline; Database altered.
Rman üzerinden kopyalama işlemini yapalım.
RMAN> copy datafile '+DATA/orcl/datafile/users.526.799775723' to '+DATA01'; Starting backup at 14-SEP-17 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=3185 instance=orcl2 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=5690 instance=orcl2 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=+DATA/orcl/datafile/users.526.799775723 output file name=+DATA01/orcl/datafile/users.522.954674461 tag=TAG20170914T112059 RECID=2 STAMP=954674494 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35 Finished backup at 14-SEP-17 Starting Control File and SPFILE Autobackup at 14-SEP-17 piece handle=+RECO/orcl/autobackup/c-3629146145-20170914-00 comment=NONE Finished Control File and SPFILE Autobackup at 14-SEP-17
Kopyalama işlemi , farklı bir isimle dosyayı oluşturmaktadır. Bu yüzden ilgili dafafile isminin değiştirilmesi gerekmektedir. Aşağıdaki şekilde datafile ismi değiştirilebilir. Rename yapıldığında , otomatik olarak eski dosya ASM diskgrubundan silinecektir. Alert.log dosyasında silme işlemini görebilirsiniz.
SQL> ALTER DATABASE RENAME FILE '+DATA/orcl/datafile/users.526.799775723' TO '+DATA01/orcl/datafile/users.522.954674461'; Database altered.
Yeni dosyanın recover edilmesi gerekmektedir.
SQL> RECOVER DATAFILE '+DATA01/orcl/datafile/users.522.954674461'; Media recovery complete.
Son olarak yeni dosyayı online duruma getirelim.
SQL> ALTER DATABASE DATAFILE '+DATA01/orcl/datafile/users.522.954674461' ONLINE; Database altered.
Kontrol ettiğimizde artık mevcut datafile numarası ile yeni dosya adı görülecektir.
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES where tablespace_name='USERS'; FILE_NAME -------------------------------------------------------------------------------- +DATA01/orcl/datafile/users.522.954674461