意思是刪除大於50G的表都會提示無法刪除,設置為0的就不會報告警提示。
sudo touch /data/clickhouse/flags/force_drop_table && sudo chmod 666 /data/clickhouse/flags/force_drop_table
sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data
CK會從另外壹個備份中恢復數據。這裏是CK自帶的故障恢復機制,前提是使用復制表(Replicated開頭),本質是告訴CK,強制重建數據。
問題分析:
啟動時,檢查本地文件系統中的數據集是否與預期的數據集(ZooKeeper中信息)壹致。如果存在輕微的不壹致,系統會通過與副本同步數據來解決,如果系統檢測到損壞的數據片段(如文件大小錯誤)或無法識別的片段(寫入文件系統但未記錄在ZooKeeper中的部分),則會把它們移動到 ‘detached’ 子目錄(相當於邏輯刪除),然後再從其他備份中去恢復這個數據片段。
但是註意這裏是有壹個安全機制的,即CK判斷妳損壞的片段大於壹定的值(max_suspicious_broken_parts,對應源碼圖二中的邏輯),即“本地數據集與預期數據的差異太大”,CK將會拒絕幫妳自動修復,並拋出異常、阻塞啟動,這個時候妳就必須手動執行恢復。
通過查詢配置得到,max_suspicious_broken_parts參數的默認值是10。