LINUX平臺下的10.2.0.4版本的CLUSTERWARE引入的變化-關於OPROCD程式
linux
平臺上的Oracle Clusterware 10.2.0.4和以後版本引入了一個新的Oracle Clusterware Process
Monitor Daemon
(OPROCD)程式來監控系統狀態和叢集中的每個節點的健康狀態,就象已經在不使用第三方的cluster軟體的UNIX系統中提供的那樣,下面來看看
OPROCD到底是何方神聖。
OPROCD在linux平臺上的10.2.0.4版本中和hangcheck- timer一起執行,它和hangcheck-timer模組沒有聯絡和依賴關係,它由init.ccsd程式產生出來並用root使用者執行。 OPROCD程式被鎖定在記憶體中來監控叢集中的每個它自己執行的節點,來檢測機器上的硬體或者驅動的freezes,並且提供I/O的fencing功能 (這和SCSI提供的中斷的fencing功能不同)。如果一個機器被凍結了足夠長的時間後,它被會叢集驅逐出節點,它自己需要強制重啟自己來阻止叢集從 失敗的節點上的鎖資源被重新組織後,失敗的節點仍然訪問共享的資料檔案上的有疑問的I/O操作。為了提供這樣的功能,OPROCD執行檢查,然後停止執行 (休眠),然後如果在期望的時間內不能被喚醒,OPROCD將重啟本機的節點。
注意:OPROCD在第三方實現的叢集環境中是不存在的,因為在LINUX平臺下沒有透過驗證的第三方的叢集解決方案,所以linux平臺下的0.2.0.4版本中OPROCD將總是會存在的。
OPROCD啟動的時候有兩個引數:
-t : 超時時間,預設1000,單位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000)
-m : 重啟前可接受的延遲,單位毫秒,預設500 (OPROCD_DEFAULT_MARGIN=500)
推薦設定DIAGWAIT為13來增加重啟前可接受的時間來把更多的日誌資訊寫入磁碟。
預設的話,-m的間隔為500:
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f
設定了DIAGWAIT為13會預設增加-m的時間,下面顯示設定DIAGWAIT為13後,-m引數值為10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f
OPROCD和hangcheck-timer在linux平臺下是同時執行並提供不同的檢測機制的,當他們導致節點重啟的話,在系統日誌中記錄的資訊是不同的:
oprocd導致的重啟會記錄"SysRq: resetting"
Hangcheck-timer導致的重啟會記錄"Hangcheck: hangcheck is restarting the machine"
OPROCD在linux平臺上的10.2.0.4版本中和hangcheck- timer一起執行,它和hangcheck-timer模組沒有聯絡和依賴關係,它由init.ccsd程式產生出來並用root使用者執行。 OPROCD程式被鎖定在記憶體中來監控叢集中的每個它自己執行的節點,來檢測機器上的硬體或者驅動的freezes,並且提供I/O的fencing功能 (這和SCSI提供的中斷的fencing功能不同)。如果一個機器被凍結了足夠長的時間後,它被會叢集驅逐出節點,它自己需要強制重啟自己來阻止叢集從 失敗的節點上的鎖資源被重新組織後,失敗的節點仍然訪問共享的資料檔案上的有疑問的I/O操作。為了提供這樣的功能,OPROCD執行檢查,然後停止執行 (休眠),然後如果在期望的時間內不能被喚醒,OPROCD將重啟本機的節點。
注意:OPROCD在第三方實現的叢集環境中是不存在的,因為在LINUX平臺下沒有透過驗證的第三方的叢集解決方案,所以linux平臺下的0.2.0.4版本中OPROCD將總是會存在的。
OPROCD啟動的時候有兩個引數:
-t : 超時時間,預設1000,單位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000)
-m : 重啟前可接受的延遲,單位毫秒,預設500 (OPROCD_DEFAULT_MARGIN=500)
推薦設定DIAGWAIT為13來增加重啟前可接受的時間來把更多的日誌資訊寫入磁碟。
預設的話,-m的間隔為500:
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f
設定了DIAGWAIT為13會預設增加-m的時間,下面顯示設定DIAGWAIT為13後,-m引數值為10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f
OPROCD和hangcheck-timer在linux平臺下是同時執行並提供不同的檢測機制的,當他們導致節點重啟的話,在系統日誌中記錄的資訊是不同的:
oprocd導致的重啟會記錄"SysRq: resetting"
Hangcheck-timer導致的重啟會記錄"Hangcheck: hangcheck is restarting the machine"
- 郵件: inthirties@gmail.com
- MSN: inthirties@hotmail.com
- QQ: inthirties@qq.com
- 專業論壇
- 技術部落格 http://blog.csdn.net/inthirties
- 個人站點 http://blog.inthirties.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21565006/viewspace-1031458/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux平臺由於OPROCD程式導致伺服器重啟的問題Linux伺服器
- Java平臺版本號的演變Java
- linux平臺下oracle從10.2.0.1升級到10.2.0.4LinuxOracle
- Linux系統下oprocd和hangcheck-timer的作用LinuxGC
- Clusterware 後臺程式
- 關於自動化平臺的動態選單設計
- 不同平臺下的網路優化優化
- 關於自動化平臺的動態選單設計(二)
- 關於搭建遊戲平臺的四個思考遊戲
- linux下cacti監控平臺的搭建Linux
- 關於WINDOWS平臺下RMAN備份移植Windows
- 關於跨平臺的一些認識
- 關於搭建可商用AI平臺的小感想AI
- 關於RestCloud iPaaS平臺的板塊詳解RESTCloud
- 資訊圖:社會化幫助平臺的變革
- Linux 平臺下的漏洞掃描器 VulsLinux
- 關於win平臺下,oracleservice<sid>無法正常啟動的問題Oracle
- 關於程式碼版本管理的思考和建議
- Win10 平臺下, LightGBM GPU 版本的安裝Win10GPU
- 關於aix, linux下的shell環境AILinux
- 關於Linux下的主機名(轉)Linux
- 關於測試平臺的搭建 (我們要不要搭建測試平臺)
- Linux平臺下7個實用的軟體Linux
- Linux平臺下ocfs2的安裝、配置Linux
- Android平臺下基於XMPP的IM研究(一)Android
- 關於爛程式碼的那些事(下)
- Linux下關於時間概念的C語言程式設計LinuxC語言程式設計
- OPROCD程式問題(ZT)
- oracle在linux平臺從10.2.0.1升級到10.2.0.4方法OracleLinux
- 關於PHP的切換版本PHP
- CentOS 7與之前版本的變化CentOS
- IT去中心化背後的低程式碼平臺中心化
- linux下關於網路的配置檔案(兼顧各主流發行版本)(轉)Linux
- Linux下搭建介面自動化測試平臺Linux
- 什麼是平臺化?平臺化是如何發展的?
- 關於公司引入閘道器元件的提議元件
- 關於Android平臺中OpenGLES應用的初步研究Android
- 請教一個關於執行平臺的問題