云數(shù)據(jù)庫GaussDB集群搭建
云數(shù)據(jù)庫GaussDB集群搭建
云數(shù)據(jù)庫GaussDB集群啟停問題常見案例
1.整節(jié)點(diǎn)未啟動,om_monitor進(jìn)程不存在
問題現(xiàn)象:啟動集群時整節(jié)點(diǎn)未啟動,對應(yīng)節(jié)點(diǎn)上om_monitor進(jìn)程不存在
定位過程:
omm用戶登錄到到未啟動的節(jié)點(diǎn),使用以下命令確認(rèn)om_monitor進(jìn)程不存在:
ps –eaf | grep om_monitor
1.1 Om_monitor定時任務(wù)未掛載
場景描述:使用如下命令查看啟動om_monitor的定時任務(wù)是否掛載到cron服務(wù)上,如果未掛載上,則是安裝失敗或定時任務(wù)被刪除。通過 crontab服務(wù)可以看到如下命令,代表om_monitor服務(wù)掛載成功。
crontal -l
解決方法:參照正常節(jié)點(diǎn)將om_monitor定時任務(wù)服務(wù)添加到omm用戶的定時任務(wù)中。
1.2 Omm用戶密碼超期
場景描述:使用如下命令檢查是否設(shè)置了omm用戶密碼超期時間且密碼已過期,如果密碼超期會導(dǎo)致omm用戶定時任務(wù)無權(quán)限查看,進(jìn)而導(dǎo)致無法拉起om_monitor進(jìn)程。
chage -l omm
解決方法:使用如下命令將omm用戶密碼超期時間設(shè)置為永不過期
chage -M 99999 omm
2. 整節(jié)點(diǎn)未啟動,cm_agent進(jìn)程不存在
問題現(xiàn)象:整節(jié)點(diǎn)未啟動,om_monitor進(jìn)程存在,但cm_agent進(jìn)程不存在
定位過程:
omm用戶登錄到未啟動的節(jié)點(diǎn),使用以下命令確認(rèn)cm_agent進(jìn)程不存在:
ps –eaf | grep cm_agent
2.1 啟停標(biāo)志文件存在
場景描述:檢查om_monitor日志中是否有如下格式的日志打印,如果有說明cgroup未掛載成功,導(dǎo)致CMA拉起異常
can't get the *cgroup*
解決方法:重新掛載cgroup。
2.2 啟停標(biāo)志文件存在
場景描述:檢查bin目錄下啟停標(biāo)志文件是否存在,如果存在說明FIM界面啟動命令未下發(fā)到后端
ll /opt/huawei/Bigdata/mppdb/core/bin/cluster_manual_start
解決方法:
1)刪除此文件即可從后臺自動拉起該節(jié)點(diǎn)實(shí)例;
2) FIM界面啟動命令未下發(fā)到內(nèi)核原因可排查分析該節(jié)點(diǎn)上如下兩個日志文件中的報錯信息來確認(rèn)
/var/log/Bigdata/mpp/scriptlog/prestart.log
/var/log/Bigdata/mpp/scriptlog/start.log
2.3 Python版本過高
場景描述:檢查節(jié)點(diǎn)上python版本為3.x,與數(shù)據(jù)庫默認(rèn)的2.7不符,F(xiàn)IM界面啟動時start.log日志中有如下報錯,則說明是python版本過高導(dǎo)致啟動異常
解決方法:
與現(xiàn)場人員確認(rèn)是否手動升級過python版本或安裝了多個版本的python,并讓現(xiàn)場人員將節(jié)點(diǎn)上默認(rèn)python版本恢復(fù)為2.7版本。
2.4 環(huán)境變量文件為空
場景描述:檢查/opt/huawei/Bigdata/mppdb/.mppdbgs_profile環(huán)境變量文件為空,則說明環(huán)境變量文件為空導(dǎo)致FIM界面啟動命令未下發(fā)到內(nèi)核
解決方法:從正常節(jié)點(diǎn)拷貝一份過來即可。
2.5 啟停標(biāo)志文件不存在
場景描述:檢查bin目錄下啟停標(biāo)志文件不存在,說明是其它原因?qū)е耾m_monitor未能啟動cm_agent
解決方法:收集節(jié)點(diǎn)上om_monitor和cm_agent日志進(jìn)一步分析。
3. 節(jié)點(diǎn)內(nèi)部分實(shí)例未啟動,cn/dn/gtm/cm_server進(jìn)程不存在
問題現(xiàn)象:節(jié)點(diǎn)內(nèi)部分實(shí)例未啟動,未啟動的cn/dn/gtm/cm_server實(shí)例進(jìn)程不存在
定位過程:
omm用戶登錄到實(shí)例未啟動的節(jié)點(diǎn),使用以下命令確認(rèn)相應(yīng)實(shí)例進(jìn)程不存在:
ps –eaf | grep gaussdb
ps –eaf | grep gs_gtm
ps –eaf | grep cm_server
3.1 信號量不足導(dǎo)致cn/dn啟動異常
場景描述: 檢查對應(yīng)cn/dn實(shí)例的pg_log日志,如果有如下報錯,則說明是信號量不足導(dǎo)致cn/dn啟動異常
解決方法:
1)使用root用戶執(zhí)行如下命令可以將節(jié)點(diǎn)上os參數(shù)配置為預(yù)期值;
/opt/huawei/Bigdata/mppdb/wisequery/script/gs_checkos -i B1 --detail
2)建議使用巡檢工具對集群進(jìn)行全面巡檢和整改。
3.2 postgresql.conf配置文件存在無效GUC參數(shù)
場景描述:檢查對應(yīng)節(jié)點(diǎn)上cm_agent和systemcall日志中如果有如下報錯,則說明cn/dn的postgresql.conf配置文件中存在無效參數(shù)配置
/var/log/Bigdata/mpp/omm/cm/cm_agent/cm_agent-YYYY-MM-DD_hhmmss-current.log
/var/log/Bigdata/mpp/omm/cm/cm_agent/system_call-YYYY-MM-DD_hhmmss-current.log
解決方法:
刪除postgresql.conf配置文件中無效參數(shù)即可。
3.3 端口號被占
場景描述:檢查對應(yīng)節(jié)點(diǎn)上cm_agent和systemcall日志中如果有如下報錯,則說明cn/dn/cm_server/gtm的端口號被占
/var/log/Bigdata/mpp/omm/cm/cm_agent/cm_agent-YYYY-MM-DD_hhmmss-current.log
/var/log/Bigdata/mpp/omm/cm/cm_agent/system_call-YYYY-MM-DD_hhmmss-current.log
Port 25308 is used, run 'netstat -anop|grep 25308' or 'lsof -i:25308'(need root) to see who is using this port.
解決方法:
1)使用如下命令找到占用端口的進(jìn)程
netstat -anop|grep port
lsof -i:port (root執(zhí)行)
2) kill -9清理掉占用端口的進(jìn)程,然后重新啟動。
3.4 Lvs虛擬ip未掛載
場景描述:cn的listen_addresses參數(shù)中配置了lvs虛擬ip,但cn節(jié)點(diǎn)上lvs虛擬ip未正常掛載,則也會導(dǎo)致cn啟動不了
檢查cn實(shí)例listen_addresses配置命令:
cat /srv/BigData/mppdb/data1/coordinator/postgresql.conf|grep listen_addresses
查看節(jié)點(diǎn)上ip信息命令:/sbin/ifconfig
解決方法:使用如下命令重新掛載lvs虛擬ip
sh /etc/init.d/gs_vip start
3.5 進(jìn)程listen端口號鎖文件殘留
場景描述:機(jī)器異常掉電重啟等情況下可能會導(dǎo)致進(jìn)程listen端口號鎖文件殘留,這樣當(dāng)重新啟動時會因鎖文件已存在而無法啟動。
檢查鎖文件命令:
ls -la /opt/huawei/Bigdata/mppdb/mppdb_tmp
檢查查出來的鎖文件產(chǎn)生時間是否是在啟動時間之前,如果是則說明是之前殘留的。
解決方法:將殘留的鎖文件刪除。
3.6 Cn/dn的listen_addresses中存在無效ip
場景描述:cn/dn的postgresql.conf配置文件的listen_addresses參數(shù)存在無效ip時會導(dǎo)致cn/dn無法正常啟動,system_call日志中會有如下報錯:FATAL: could not create listen socket for "100.185.180.62"
/var/log/Bigdata/mpp/omm/cm/cm_agent/system_call-YYYY-MM-DD_hhmmss-current.log
檢查cn實(shí)例listen_addresses配置命令:
cat /srv/BigData/mppdb/data1/coordinator/postgresql.conf|grep listen_addresses
解決方法:將listen_addresses參數(shù)中的無效ip刪除。
3.7 數(shù)據(jù)目錄無權(quán)限
場景描述:cn/dn/gtm/cm_server的數(shù)據(jù)目錄權(quán)限預(yù)期是700,當(dāng)權(quán)限不足時cm_agent日志中會有如下報錯:
data path disc writable test failed, /srv/BigData/mppdb/data3/slave1
解決方法:根據(jù)報錯提示修復(fù)cn/dn/gtm/cm_server數(shù)據(jù)目錄的權(quán)限。
3.8 磁盤滿
場景描述:節(jié)點(diǎn)上數(shù)據(jù)盤、日志盤等滿均會導(dǎo)致cn/dn/gtm/cm_server進(jìn)程啟動異常。
磁盤使用率檢查命令:df -lh
解決方法:清理釋放磁盤空間,消除磁盤滿。
4. 節(jié)點(diǎn)內(nèi)部分實(shí)例未啟動,查看狀態(tài)CN、DN、GTM實(shí)例狀態(tài)為down或者unknown
啟動集群失敗,后臺查看集群狀態(tài),發(fā)現(xiàn)CN、DN、GTM實(shí)例顯示down或者unknown。
4.1 當(dāng)前節(jié)點(diǎn)與主cm_server節(jié)點(diǎn)網(wǎng)絡(luò)不通
場景描述:當(dāng)節(jié)點(diǎn)與主cm_server節(jié)點(diǎn)網(wǎng)絡(luò)不通時,當(dāng)前節(jié)點(diǎn)cm_agent無法將實(shí)例狀態(tài)上報給cm_server,導(dǎo)致實(shí)例狀態(tài)顯示為down或unknown。
檢查當(dāng)前節(jié)點(diǎn)與主cm_server節(jié)點(diǎn)網(wǎng)絡(luò)命令:在當(dāng)前節(jié)點(diǎn)上ping 主cm_server節(jié)點(diǎn)ip,如果不能ping通則說明網(wǎng)絡(luò)異常。
解決方法:聯(lián)系網(wǎng)絡(luò)側(cè)人員解決網(wǎng)絡(luò)問題。
4.2 Cm_server無主
場景描述:當(dāng)集群中兩個cm_server實(shí)例均為pending狀態(tài),沒有選出主時,無法對DN狀態(tài)進(jìn)行仲裁,導(dǎo)致DN狀態(tài)均顯示為down或unknown。
檢查當(dāng)前集群cm_server狀態(tài)命令:
cm_ctl query -vCd|grep cm_server
解決方法:收集主備cm_server日志并聯(lián)系研發(fā)人員處理。
4.3 節(jié)點(diǎn)上存在多個om_monitor進(jìn)程
場景描述:當(dāng)節(jié)點(diǎn)上存在多個om_monitor進(jìn)程時,會導(dǎo)致cm_agent進(jìn)程反復(fù)被殺,無法持續(xù)向cm_server上報實(shí)例狀態(tài),進(jìn)而導(dǎo)致節(jié)點(diǎn)上實(shí)例狀態(tài)顯示為down或unknown。
檢查當(dāng)前節(jié)點(diǎn)om_monitor個數(shù)命令:
ps -ef|grep om_monitor|grep -v grep
解決方法:kill掉當(dāng)前所有om_monitor進(jìn)程待起自動重新拉起。