測試環境的vertica是單節點的,無法做到故障自動恢復,需要手工處理。案例如下:
發現5433埠連線不上,vertica掛了,手工執行admintools,重新啟動vertica,仍然失敗,提示:
*** Starting database: bigdata ***
Starting nodes:
v_bigdata_node0001 (172.16.105.41)
Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while to initialize.
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Node Status: v_bigdata_node0001: (DOWN)
Found these errors in startup.logs on hosts:
host ['172.16.105.41'] report: Startup Failed, ASR Required
Do you want to continue waiting? (yes/no) [yes]
出現這種錯誤,通常是由於斷電等特殊原因造成的,解決方案是,恢復到最近一個成功的事務。
【總結】
1. 只有一個節點的Vertica資料庫沒有高可用,至少得3個節點。3個節點以上的Vertica叢集,宕掉一個節點資料庫還可以繼續工作。
2. 批次處理的業務,DML語句和COPY語句最好都加上DIRECT 選項或hint、或者把表的預設載入策略設定為DIRECT,強制資料直接寫磁碟,可以避免這個ASR的情況。