Oracle Dataguard Datafile Taşıma

Oracle Dataguard Datafile Taşıma

Bu yazımda sizlere Dataguard ortamı kurulu olan veritabanımızdaki, dataguard veritabanından temp datafile’ları taşıma yönteminden bahsedeceğim.

Kontrol edilecekler:

  • Aşağıdaki sorgu ile taşımak istediğimiz datafile’ın disk üzerindeki lokasyonunu öğrenelim.
SQL> select tablespace_name, file_name from dba_temp_files;

TABLESPACE_NAME FILE_NAME

TEMP /u01/app/oracle/oradata/orcl/temp01.dbf
TEMP1 /u01/app/oracle/oradata/orcl/temp1_02.dbf

Not: Biz temp datafile’ları taşıyacağımız için bu şekilde baktık. Diğer datafile’ları listelemek için aşağıdaki sorguyu kullanabilirsiniz.

select name from v$datafile;
  • STANDBY_FILE_MANAGEMENT parametresinin değerine bakalım.
SQL> show parameter STANDBY_FILE_MANAGEMENT

NAME TYPE VALUE
 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — 
standby_file_management string AUTO

STANDBY_FILE_MANAGEMENT : Bu parameterenin değeri AUTO yapıldığında primary veritabanına yeni bir datafile eklendiğinde ve silindiginde otomatik olarak standby veritabanına da yansır.

NOT: Taşımak istediğimiz datafile boyutunu kontrol edelim ve taşıyacağımız diskte yeterli yerin olduğundan emin olalım.

İŞLEM ADIMLARI:

Şimdi gerekli kontrolleri gerçekleştirdiğimize göre datafile taşıma işlem adımlarına geçebiliriz.

  1. Öncelikle dataguard üzerindeki apply işlemini durduralım
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2. STANDBY_FILE_MANAGEMENT parametremizi “MANUEL” olarak setleyelim.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;

3. Dataguard veritabanımızı kapatalım.

SQL> shutdown immediate

4. Her ihtimale karşı önce taşımak istediğimiz datafile’ı yeni dizine kopyalayalım. Başarılı şekilde kopyalandıktan sonra silebiliriz. Burada direk mv ile taşıma yapmamakta fayda var.

$ cp /u01/app/oracle/oradata/orcl/temp01.dbf   /u03/oradata/orcl/temp01.dbf

$ cp /u01/app/oracle/oradata/orcl/temp1_03.dbf   /u03/oradata/orcl/temp1_02.dbf

5. Taşıdığımız datafile’ların eski dizinindeki ismini değiştirelim

$ mv /u01/app/oracle/oradata/orcl/temp01.dbf   /u01/app/oracle/oradata/orcl/temp01.dbf_org

$ mv /u01/app/oracle/oradata/orcl/temp1_02.dbf   /u01/app/oracle/oradata/orcl/temp1_02.dbf_org

6. Veitabanımızı mount modda açalım

SQL> startup mount;

7. Taşıma işlemi tamamlandıktan sonra sqlplus ile bağlanıp datafileyi rename etmemiz gerekmekte.

SQL> alter database rename file '/u01/app/oracle/oradata/orcl/temp1_03.dbf' to '/u03/oradata/orcl/temp1_03.dbf';

SQL> alter database rename file '/u01/app/oracle/oradata/orcl/temp01.dbf' to '/u03/oradata/orcl/temp01.dbf';

8. STANDBY_FILE_MANAGEMENT parametremizi “AUTO” olarak setleyelim.

SQL> alter system set standby_file_management=AUTO;

9. Dataguard veritabanımızda apply başlatalım

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

10. Aşağıdaki sorgu ile prod ve dataguard verittabanı sync mi kontrol edelim

SQL> select name,value,time_computed from v$dataguard_stats;

11. Sync oldugunda eski dizindeki datafile’larımızı artık silebiliriz.

[root@dbyedek orcl]# rm -rf *.dbf_org

Eveet dataguard veritabanımızdaki temp datafile’larımızı başarılı şekilde taşımış olduk. Diğer yazılarımda görüşmek üzere..

Kişisel Web sayfama hoş geldiniz..