GreenPlum數據庫在gpstart過程中的錯誤及處理


報錯信息:

ExecutionError: 'non-zero rc: 255' occured.  Details: 'ssh -o 'StrictHostKeyChecking no' sdw2 ". /usr/local/greenplum-db/./greenplum_path.sh; $GPHOME/sbin/gpoperation.py"'  cmd had rc=255 completed=True halted=False
  stdout=''
  stderr='ssh: connect to host sdw2 port 22: No route to host

 

原因分析:

任意segment宕機(網絡不通狀態)后,不能執行命令gpstart(也包括gpstop -r)。已segment_name=sdw2為例,因為在執行gpstart時,數據庫需要執行"ssh -o 'StrictHostKeyChecking no' sdw2",此命令執行時報錯“ssh: connect to host sdw2 port 22: No route to host”。

     由此展開,當任意segment處於無法訪問狀態時,數據庫不能執行啟動或重啟動作,因為根本啟動不了。要啟動的前提的,必須有原數量的segment在線,即使沒安裝數據庫程序。

     再展開,當master與segment同時宕機,此時無論是master或者standbymaster都無法再次啟動,原因同上。唯一例外 是,master是網絡故障,在不停機的情況下恢復網絡連接,數據庫仍可正常工作,但也不能執行gpstart,直到segment上線。

 

解決方法:

極端情況下,segment可能需要很長時間才能恢復到位。此時,為了不影響數據庫使用,必須找一個機器,讓它充當segment的位置,即使不安裝GP服務。

     我的方法是,直接修改master上面的host文件,將故障節點的IP改為127.0.0.1,此時數據庫可恢復工作(mirror替代primary),在不影響工作的情況下,恢復segment上線,再執行gprecoverseg。

     不知道我的方法是否合適,求教更好的方法,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM