案例說明:
OpenEuler系統環境,KingbaseES V8R3叢集無法啟動kingbasecluster服務,經過檢查發現,在透過指令碼啟動kingbasecluster檢測閘道器(ping 閘道器)時,系統返回中文提示,導致指令碼檢測閘道器聯通失敗,kingbasecluster服務啟動失敗。
適用版本:
KingbaseES V8R3
作業系統:
openEuler 22.03 LTS-SP3
一、問題現象
如下所示,透過kingbase_monitor.sh start啟動叢集,kingbasecluster啟動失敗,日誌檢視,watchdog啟動失敗:
二、問題分析
1、手工啟動kingbasecluster服務,仍無法啟動。
2、重啟作業系統後,叢集仍然無法啟動。
3、檢視recovery.log日誌,發現ping閘道器失敗:
4、手工執行ping 閘道器測試,閘道器網路聯通正常。
5、執行sh -x restartcluster.sh檢視kingbasecluster啟動過程
檢查發現在指令碼啟動過程,ping閘道器檢測連通性時,系統返回提示為中文“已收到”,而指令碼判斷是透過‘grep received’獲取返回資料包狀態,因此指令碼判斷閘道器聯通失敗,故kingbasecluster啟動失敗。
[kingbase@localhost R6_cluster]$ ping 10.26.14.254 -c 3
PING 10.26.14.254 (10.26.14.254 ) 56(84) bytes of data.
--- 10.26.14.254 ping 統計 ---
傳送3個包,已接收0個包, 100% packet loss, time 2000ms
如下所示,指令碼測試閘道器聯通性判斷語句:
三、問題解決
修改指令碼,在指令碼中增加,配置系統message資訊返回為英文提示:
export LANG=C