Unnamed datafile (UNNAMED00032) Orjinal İsmi ile Değiştirme

Eğer dataguard sunucumuzda aşağıdaki şekilde UNNAMED datafile şeklinde hata alıyorsak ve dataguard sunucumuzda gap oluşmaya başlamışsa, apply edilmiyorsa neler yapmamız gerekmekte onu göstereceğim.

Prod ve dataguard sunucusunda her datafile lokasyonu farklı olduğunda bu şekilde hata alınmamaktadır. Dataguardda STANDBY_FILE_MANAGEMENT değeri AUTO şeklinde yapıldığında prod veritabanına yeni bir veri dosyası eklenildiğinde veya drop edildiğinde otomatik olarak standby veritabanına da yansımakta. Primary veritabanına eklenen yeni veri dosyası, standby veritabanında DB_FILE_NAME_CONVERT parametresi ile belirtilen dizinde oluşturulmakta. Eğer DB_FILE_NAME_CONVERT parametresinde proddaki datafile lokasyonu doğru setlenmediyse bu şekilde hata alınabilmekte.

Dataguard veritabanınızda DB_FILE_NAME_CONVERT parametrenizi kontrol edin, proddaki datafile lokasyonu doğru setlenmiş mi?

HATA:

ORA-01111: name for data file 32 is unknown – rename to correct file
ORA-01110: data file 32: ‘/home/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00032’
ORA-01157: cannot identify/lock data file 32 – see DBWR trace file

SEBEP:

Prod veritabanımızda datafile eklediğimizde, stanby veritabanında datafile lokasyonu farklı olduğundan bu şekilde olmaktadır.

ÇÖZÜM:

  1. Standby veritabanımızda hata alan datafile ayrıntısına bakalım. Aşağıdaki gibi UNNAMED şeklinde görünmekte.
SQL> select file#,name from v$datafile where file#= 32;

     FILE# NAME

     32 /home/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00032

2. Standby veritabanında datafile’ların lokasyonuna bakalım:

SQL> select file#, name, status from v$datafile;

/data/standby/data_D-DBFLX_TS-FLEXCITY_FNO-93.dbf 

3. Stanby tarafa, prod veritabanında ilgili datafile boyutu ne kadar ise, stanbdy tarafta da o şekilde ekleme yapmak gerekir. Prod tarafta datafile boyutuna bir bakalım:

SQL> select tablespace_name, file_name from dba_temp_fileSQL> select (bytes)/1024/1024 as MB from v$datafile where file#=95;   

        MB
----------
      1088

4. Standy suncuda apply durdurulur

SQL> alter database recover managed standby database cancel;

Database altered.

5. standby_file_management parametresi MANUEL çekilir

SQL> alter system set standby_file_management=MANUAL;

System altered.

6. standby veritabanımda datafile oluşturma işlemi aşağıdaki gibi yapılır

SQL> alter database create datafile '/home/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00032' as '/data/syandby/data_D-DBFLX_TS-FLEXCITY_FNO-94.dbf' size 1088M;

Database altered.

7. standby_file_management parametresi geri AUTO çekilir

SQL> alter system set standby_file_management=AUTO;

System altered.

8. standby veritabanında unnamed olan datafile tekrar kontrol edelim

SQL> select file#,name from v$datafile where file#= 32;

     FILE# NAME
        
	32 /data/stanby/data_D-DBFLX_TS-FLEXCITY_FNO-94.dbf

9. standby veritabanımızda geri apply başlatalım.

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

Database altered.

Kalıcı Çözüm:

DB_FILE_NAME_CONVERT parametresini prod ve standby veritabanlarındaki datafile lokasyonuna göre setleme.

Bir cevap yazın

Kişisel Web sayfama hoş geldiniz..