一次RAC節點當機的解決過程
1. 情況介紹
海哥反饋大連某院的Oracle 10g RAC平均每個月都要當機一次,一個節點自動重啟,奇怪的是故障的時間沒有規律,有時還發生在基本上沒有業務的凌晨。醫院目前使用的Windows 2003 Server(32 Bit),資料庫版本是10.2.0.3。另外海哥還反映系統還伴有Ora-04031錯誤。
2. 問題的診斷過程。
由於同時出現了down機和ora-04031錯誤,首先判斷是不是由於記憶體耗盡,導致的一個節點down機,之前在32bit系統中遇到過類似錯誤;但由於down機也可能發生在系統壓力很小的凌晨,這一判斷首先被推翻。
向海哥索取了兩個節點的alertSID.log日誌和CRS日誌,開始了分析。
節點1:
----------------------------------------------------------------------------------------------------
IPC Send timeout detected. Receiver ospid 5012
Tue Sep 29 06:18:31 2009 --這個時間檢測到2號節點的IPC超時
Errors in file d:oracleproduct10.2.0adminora10bdumpora101_lms3_5012.trc:
Tue Sep 29 06:19:28 2009
Restarting dead background process DIAG --重啟檢測程式進行檢測
DIAG started with pid=3, OS id=68680
Tue Sep 29 06:20:13 2009
Waiting for clusterware split-brain resolution --等待“腦裂”方案實施
Tue Sep 29 06:24:26 2009
IPC Send timeout detected. Receiver ospid 4768
Tue Sep 29 06:24:26 2009
Errors in file d:oracleproduct10.2.0adminora10bdumpora101_lmd0_4768.trc:
Tue Sep 29 06:25:29 2009
Restarting dead background process DIAG
DIAG started with pid=3, OS id=71060
Tue Sep 29 06:30:13 2009
Evicting instance 2 from cluster --1號節點將2號節點驅逐出叢集,開始重新配置
Tue Sep 29 06:30:29 2009
Reconfiguration started (old inc 56, new inc 60)
………………省略部分日誌……………………….
Tue Sep 29 07:26:30 2009
Submitted all GCS remote-cache requests
Post SMON to start 1st pass IR
Fix write in gcs resources
Reconfiguration complete --重新配置完成
節點2:
-------------------------------------------------------------------------------------------------------------------------------
Tue Sep 29 06:18:30 2009
IPC Send timeout detected.Sender: ospid 2112 --檢測到發生了IPC超時
Receiver: inst 1 binc 86089 ospid 5012
Tue Sep 29 06:18:32 2009
Errors in file d:oracleproduct10.2.0adminora10bdumpora102_lms1_2112.trc:
ORA-27508: 傳送資訊時發生 IPC 錯誤
ORA-27300: OS 系統相關操作: IPCSOCK_Send 失敗, 狀態為: 10055
ORA-27301: OS 故障訊息: 由於系統緩衝區空間不足或佇列已滿,不能執行套接字上的操作。
ORA-27302: 錯誤發生在: send_3
Tue Sep 29 06:18:32 2009
IPC Send timeout to 0.4 inc 56 for msg type 65521 from opid 8
Tue Sep 29 06:18:32 2009
Communications reconfiguration: instance_number 1
Tue Sep 29 06:18:32 2009
Trace dumping is performing id=[cdmp_20090929061832]
Tue Sep 29 06:20:13 2009
Waiting for clusterware split-brain resolution --等待“腦裂”方案實施
Tue Sep 29 06:24:25 2009
IPC Send timeout detected.Sender: ospid 2116
Receiver: inst 1 binc 86087 ospid 4768
Tue Sep 29 06:24:27 2009
Errors in file d:oracleproduct10.2.0adminora10bdumpora102_lmd0_2116.trc: --這裡是具體的IPC錯誤原因
ORA-27508: 傳送資訊時發生 IPC 錯誤
ORA-27300: OS 系統相關操作: IPCSOCK_Send 失敗, 狀態為: 10055
ORA-27301: OS 故障訊息: 由於系統緩衝區空間不足或佇列已滿,不能執行套接字上的操作。
ORA-27302: 錯誤發生在: send_3
Tue Sep 29 06:24:27 2009
IPC Send timeout to 0.0 inc 56 for msg type 65521 from opid 6
Tue Sep 29 06:30:13 2009
Errors in file d:oracleproduct10.2.0adminora10bdumpora102_lmon_4008.trc:
ORA-29740: 已被成員 1 逐出, 組原型 58 --檢測到自已經被節點1驅逐
Tue Sep 29 06:30:13 2009
LMON: terminating instance due to error 29740
Tue Sep 29 06:30:13 2009
Errors in file d:oracleproduct10.2.0adminora10bdumpora102_lms0_4284.trc:
ORA-29740: 已被成員 逐出, 組原型
分析完了日誌,基本可以確定是由於IPC包傳送失敗導致CRS認為心跳失敗,為了避免“腦裂”現象,節點1主動驅逐了節點2;另外的幾次down情況類似。在一個共享儲存的叢集中,當叢集中hearbeat丟失時,如果各節點還是同時對共享儲存去進行操作,那麼在這種情況下所引發的情況是災難的。ORACLE RAC採用投票演算法來解決這個問題,思想是這樣的:每個節點都有一票,考慮有A,B,C三個節點的叢集情形,當A節點由於各種原因不能與B,C節點通訊時,那麼這叢集分成了兩個DOMAIN,A節點成為一個DOMAIN,擁有一票;B,C節點成為一個DOMAIN擁有兩票,那麼這種情況B,C節點擁有對叢集的控制權,從而把A節點踢出叢集,對要是通IO FENCING來實現。如果是兩節點叢集,則引入了仲裁磁碟,當兩個節點不能通訊時,請求最先到達仲裁磁碟的節點擁用對叢集的控制權。
在網路正常的情況下,IPC包傳送超時,首先想到是不是遇到了bug, 到Metalink上查了查,發現一個bug與我們的現象吻合。Bug編號為: 6782276,在10.2.0.4中得到了修復。接下來就是按部就班的打補丁了。
[@more@]Bug 6782276 Win: ORA-27508 from RAC IPC
This note gives a brief overview of bug 6782276.
The content was last updated on: 03-APR-2009
Click for details of each of the sections below.
Affects:
Product (Component) | Oracle Server (Rdbms) |
Range of versions believed to be affected | Versions < 11.2 |
Versions confirmed as being affected | |
Platforms affected |
|
Fixed:
This issue is fixed in | ||||
Symptoms: | Related To: | |||
| ||||
Description
RAC instance on Windows may get failures such as:
ORA-27508: IPC error sending a message
ORA-27300: OS system dependent operation:IPCSOCK_Send failed with status: 10055
ORA-27301: OS failure message: An operation on a socket could not be performed ...
ORA-27302: failure occurred at: send_3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7839206/viewspace-1029461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DRM特性引起的RAC節點當機
- AIX RAC9I 節點當機測試AI
- 一次難忘的協助解決Oracle RAC恢復過程Oracle
- Windows 7安裝過程當機的解決辦法Windows
- 11g兩個節點RAC搭建單例項DG過程問題以及解決方法單例
- Oracle RAC節點時間差過大解決方法Oracle
- 11G RAC 一節點當機後修改監聽相關配置使通過當機節點VIP連線資料庫的客戶端可以連線資料庫客戶端
- 一次線上問題的排查解決過程
- 一次sqlldr匯入慢的解決過程SQL
- 搭建Solana驗證者節點(全節點)的過程
- oracle 11.2.0.4 rac節點異常當機之ORA-07445Oracle
- asm例項自動dismount導致rac一個節點當機ASM
- RAC一個節點記憶體故障當機,無法訪問記憶體
- 一次Oracle 10g RAC 非正常DOWN後,CRS起不來一次解決過程Oracle 10g
- RAC刪除節點失敗重啟大法解決
- 記一次 Composer 問題的解決過程!!
- 一次library cache pin故障的解決過程
- 重起oracle rac三節點中rac02主機以解決鏈路noname問題Oracle
- 10G RAC節點2當機通過修改listener.ora實現客戶端通過節點2VIP連線到資料庫客戶端資料庫
- 【原創】cache buffer chains的一次解決過程AI
- Oracle9204 RAC 節點2當機後5小時重新啟動找不到節點1上例項Oracle
- ORACLE 11.2.0.4 rac for linux 鏈路宕導致的單節點異常當機OracleLinux
- RAC系統當中,job在哪個節點執行?
- RAC中通過nkmod解決各個節點碟符不一致問題
- 記錄一次排查解決伺服器卡死的過程伺服器
- 一次詳細的RAC 節點例項驅逐分析文件
- 【故障處理】一次RAC故障處理過程
- RAC 雙節點 轉單節點流程
- rac當機分析
- 記一次bug解決過程(數字轉化成中文)
- Oracle RAC之--安裝過程中碰到的問題及解決方法Oracle
- 用虛擬機器做RAC的全過程虛擬機
- 記一次透過Memory Analyzer分析記憶體洩漏的解決過程記憶體
- 記一次RAC Brain Split腦裂分析過程AI
- 檢視oracle rac的節點Oracle
- Oracle RAC新增節點Oracle
- Oracle RAC 新增節點Oracle
- 詳細記錄一次npm i canvas報錯的解決過程NPMCanvas