Hurriyet

21 Ağustos 2013 Çarşamba

Oracle Veritabanı: Datafile'ların Yerlerini Değiştirilmesi - Datafile Switch

Datafile Switch işlemini diskimiz bozulduğunda veya datafile'ların bir disk veya dizinden başka bir disk veya dizine taşınması gerektiğinde gerçekleştirebiliriz.

Bunun için aşağıdaki işlemi rman'de çalıştırmamız gerekir. Aşağıda göstereceğimiz işlemi datafileswitch.sql olarak bir dosyaya kaydedip rman'den çalıştırabiliriz.

İşlemler sırasında datafile'larımızın offline olması gerekmektedir. Yani işlemimizi Mount modda yapmamız gerekir. Bunun dışunda mutlaka datafile'larımızı restore edebileceğimiz bir backup'ın alınmış olması gerekir. Bir  felaket anında zaten hazırda olan bir backup'ımızı kullanırız; ancak disk değiştireceksek bunun için önce backup almamız gerekir.

 Shutdown immediate;  
   
 startup mount;  

Backup alınması için  rman'e bağlanırız.

 rman target /  

Backup için aşağıdaki komutumuzu çalıştırırız.

 backup database plus archivelog; 

Hazır rman'e geçmişken rman'de çalıştıracağımız sql dosyasını oluşturmaya başlayabiliriz. Bunun için çalıştıracağımız datafileswitch.sql dosyası içinde run komutumuzu oluştururuz.

run{   
  set newname for datafile '/u01/app/oracle/oradata/berke/users01.dbf' to '/home/users/oracle/Desktop/database/users01.dbf'   
   
 restore database;  
  switch datafile all;  
 recover database;   
  } 

Bu dosyayı oluşturup kaydettikten, dosyanın bulunduğu path'i rman'e vererek çalıştırırız.

@/home/users/oracle/Desktop/datafileswitch.sql  

Bu komutumuzu çalıştırdıktan sonra datafile'larımızın yerini değiştirmiş oluruz. Aynı zamanda datafile recovery de yapmış oluruz. Database bundan sonra RESETLOG'lar açılır.

alter database open resetlogs;  

 Bu işlemlerden sonra "best practice" olarak log file switch yaparız. Archive log'lama sürecini başlatırız. En sonunda bir backup daha alınır.

 alter system switch logfile;  
   
 alter system archive log all;  


 rman target /  
   
 backup database plus archivelog;  

Tek Bir Tablespacedeki Dosyaların İsmini veya Lokasyonunu Değiştirmek İstersek:

Not:Bu örneğimizdeki tablespace'imizin adı USERS'dır. Buradaki durumumuz datafile ismini değiştirmeye veya datafile'ların yerini değiştirmeye uygundur.

1-Tek bir tablespacede değiştirme işlemini yapacaksak önce tablespace'imizi offline mode'a alırız.

 ALTER TABLESPACE users OFFLINE NORMAL;  

2-Sonrasında datafileları işletim sistemi komutları kullanarak yer değiştirtiriz.

cp /u01/app/oracle/product/oradata/users01.dbf /home/users/oracle/users01.dbf 

3-Değiştirdiğimiz datafile'ları sisteme belirtmek için de aşağıdaki komutları uygularız.

 Alter tablespace users rename datafile '/u01/app/oracle/product/oradata/users01.dbf' to '/home/users/oracle/users01.dbf'

4-Bu işlemin ertesinde tablespace'imizi tekrar online mode'a alırız. Online mode'a aldıktan sonra backup alınması tavsiye edilir.

 Alter tablespace users online

Not: Bütün veritabanı datafile'larının yeri değişecekse veritabanını mount mode'a getiririz. Sonrasında "Alter database rename file ..... to ...." şeklinde komutumuz çalıştırırız.

Referans:

http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm#ADMIN11434

Hiç yorum yok:

Yorum Gönder