
Standby veritabanını kontrol ettiğimde MRP processinin çalışmadığını gördüm ve bu durum ile ilgili olarak aşağıdaki işlemleri yaptığımda ise
SQL> recover managed standby database cancel;
ORA-16136: Managed Standby Recovery not active
SQL> recover automatic standby database;
ORA-00283: recovery session canceled due to errors
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: '/u01/app/oracle/product/19.3.0.0/db/dbs/UNNAMED00007'
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: '/u01/app/oracle/product/19.3.0.0/db/dbs/UNNAMED00007'
hatası ile karşılaştım. datafile adınının standy veritabanı tarafından bilinmediğini söylüyor dosyayı tekrar isimlendirerek sorunu çözmeye çalışalım.
Öncelikle managed recovery i kapatalım, benim durumumda zaten kapalı
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Standby_file_management parametresini manuel e set edelim.
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL scope=both;
System altered.
--Eğer standby RAC ise tüm nodlar için bunu yapmalıyız yani sql sonuna sid='*' eklemeliyiz.
data dosyasının ismini değiştirelim, öncelikle doğru ismini öğrenmek için dosya numarasını standby tarafından bakalım, daha sonra primary tarafında bu dosya numarasının doğru ismini öğrenelim.
SQL> desc v$recover_file;
Name Null? Type
----------------------------------------- -------- ----------------------------
FILE# NUMBER
ONLINE VARCHAR2(7)
ONLINE_STATUS VARCHAR2(7)
ERROR VARCHAR2(18)
CHANGE# NUMBER
TIME DATE
CON_ID NUMBER
SQL> select FILE# from v$recover_file where error like '%FILE%';
FILE#
----------
7
Primary tarafta bu 7 dosyasının ismini bulalım
SQL> select NAME from v$datafile where file#=7;
NAME
--------------------------------------------------------------------------------
+DATA/RACDB/DATAFILE/tbs_frkdba.277.1061824995
Doğru ismi bulduk şimdi bozuk dosyamızın ismini doğrusu ile değiştirelim.
SQL> Alter database create datafile '/u01/app/oracle/product/19.3.0.0/db/dbs/UNNAMED00007' as '+DATA/RACDB/DATAFILE/tbs_frkdba.277.1061824995';
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
şimdi baktığımızda MRP process çalışmaya başladı ve eksik olan archive logları işleyerek standby ile primary eşitlenecek
SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;
PROCESS STATUS
--------- ------------
ARCH CONNECTED
DGRD ALLOCATED
DGRD ALLOCATED
ARCH CONNECTED
ARCH CONNECTED
ARCH CONNECTED
RFS IDLE
RFS IDLE
RFS IDLE
RFS IDLE
MRP0 APPLYING_LOG
11 rows selected.
Bir yanıt yazın