Standby OS i/o問題導致Primary 庫不能正常歸檔問題

tolywang發表於2009-03-04
Oracle9.2.0.7  
Linux AS4.0 U5

Standby I/O 問題 (後來查了一下,初步估計可能是RAID卡記憶體問題,或者disk 問題) 導致了正式資料庫上不能歸檔 。



Mon Mar  2 12:59:09 2009
ARC1: Error 3113 Creating archive log file to 'standbyulti'
Mon Mar  2 12:59:09 2009
Errors in file /u01/product/admin/ultimus/bdump/ultimus_arc1_5007.trc:
ORA-03113: end-of-file on communication channel
Creating archive destination LOG_ARCHIVE_DEST_1: '/data/ultimus/arch/1_3166.arc'
Mon Mar  2 12:59:11 2009




trace file 中的錯誤。

Destination LOG_ARCHIVE_DEST_2 is in CLUSTER CONSISTENT mode
Destination LOG_ARCHIVE_DEST_2 is in MAXIMUM PERFORMANCE mode
*** 2009-03-02 12:59:09.720
RFS network connection lost at host 'standbyulti'
Error 3113 creating standby archive log file at host 'standbyulti'
*** 2009-03-02 12:59:09.732
ARC1: Error 3113 Creating archive log file to 'standbyulti'
*** 2009-03-02 12:59:09.732
kcrrfail: dest:2 err:3113 force:0
ORA-03113: end-of-file on communication channel  






========================



Primary , Standby設定參考:


9i/10g Primary DB:

# for oracle9i standby .
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_dest_2="service=standby optional reopen=60"  
*.log_archive_min_succeed_dest=1


-------------------


9i/10g Standby DB:

# for oracle9i standby .
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_archive_dest="/data/acer/arch"
*.db_file_name_convert=("/data/acer","/data/acer")
*.log_file_name_convert=("/u01/product/oradata/acer","/u01/product/oradata/acer")
*.log_archive_trace=0
*.log_archive_min_succeed_dest=1
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.fal_server='acer'
*.fal_client='standby'  




問題描述


當出現i/o問題的時候 ,standby系統可以ping通,  但是在primary db上 tnsping  standby 一直處於沒有返回結果的狀態 (如下範例) 。
這樣primary 資料庫可能因為沒有類似tns錯誤的返回結果,所以也一直寫standby 歸檔,不成功的話,primary上的歸檔也不能算完成 ?

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 10.16.8.84)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVIC
E_NAME = epd)))
OK(360毫秒)   ------------   這一行返回結果是沒有的,一直等待 。

Oracle是否有一個機制,當primary  tns  standby 一直出於等待standby回覆資訊的時候,有一個timeout 的時間點。
超過這個時間,standby即可返回一個錯誤給primary  .  primary 得到錯誤資訊後即可在本地建立成功(見下面的資訊)。



----------------------------------   



正常關閉Standby server , 在primary alert log 中會出現如下的錯誤 。
有返回結果,本地建立歸檔成功 。 不影響primary db 執行。

Creating archive destination LOG_ARCHIVE_DEST_2: 'standbyulti'
ARC0: Error 12560 Creating archive log file to 'standbyulti'





--------------------


初步解決方案遇到的問題 (未測試) :

目前的焦點是,primary db接到standby返回錯誤才會不管standby , 只在自己本地目錄下歸檔 。如果不能得到返回錯誤,
兩臺機器都一直等待歸檔 。   

所以, standby i/o 出現問題, 即使在standby 監聽中設定time out 時間, 但是在i/o出現問題的情況下,這種錯誤是否能返回給primary 還真是不清楚

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-561347/,如需轉載,請註明出處,否則將追究法律責任。

相關文章