當您計劃切換云數據庫 ClickHouse 社區兼容版集群的版本時,可以使用云數據庫ClickHouse控制臺的實例遷移功能進行數據遷移。該功能支持數據的全量遷移和增量遷移,從而保證了您數據的完整性。
前提條件
源集群和目標集群均需具備的條件:
均為社區兼容版集群。
說明如果您的需求是將社區版集群遷移至企業版集群,或者企業版集群遷移至社區版集群,請參見ClickHouse社區版集群遷移至企業版集群。
均處于運行中狀態。
均已具有數據庫賬號和密碼。
二者副本需一致。
二者冷熱分層狀態一致。
二者使用相同的VPC且在同一地域,并已將彼此的IP添加到了對方白名單中。如果不滿足此條件,請先解決網絡問題。具體操作,請參見如何解決目標集群與數據源網絡互通問題。
說明您可以通過
SELECT * FROM system.clusters;
查看云數據庫ClickHouse實例的IP地址。如何設置白名單,請參見設置白名單。
目標集群需額外滿足如下條件:
版本高于或等于源集群版本。最新版本,請參見版本發布記錄。
未使用磁盤存儲空間(不包含冷存)大于或等于源集群已使用磁盤存儲空間(不包括冷存)的1.2倍。
源集群的所有本地表都需要具有唯一的分布式表。
注意事項
遷移過程中,目標集群會暫停合并(Merge),但源集群不會。
遷移內容:
支持遷移的內容包含集群、庫、表、數據字典、物化視圖、用戶權限和集群配置。
不支持遷移Kafka和RabbitMQ引擎表。
重要為保證Kafka和RabbitMQ數據不分流,請先清理源集群的Kafka和RabbitMQ引擎表后,再在目標集群創建,或者使用不同的消費者組。
非MergeTree類型的表(例如外表、Log表等)僅支持遷移表結構。
說明當源集群存在非MergeTree類型的表時,數據遷移后,目標集群此類表只有表結構,沒有具體的業務數據。具體業務數據遷移可以使用
remote
函數進行遷移。具體操作,請參見通過remote函數進行數據遷移。
冷存數據的遷移速度相對較慢,因此建議您盡量清理冷存數據。冷存數據的容量不宜超過1TB,否則可能因遷移時間過長而導致遷移失敗。
集群影響
遷移過程中,支持對源集群的表進行讀取與寫入數據操作,但不支持DDL操作(增、刪、改庫表的元數據操作)。
為了保證遷移任務正常完成,當遷移任務達到99%進度時,且此時在源集群預設的停寫時間范圍內,源集群會主動停止寫入。
當數據全部遷移完成或超出源集群預設的停寫時間范圍,源集群會自動恢復數據寫入。
操作步驟
以下操作均在目標集群完成,而非源集群。
步驟一:創建遷移任務
在集群列表頁面,選擇社區版實例列表,單擊目標集群ID。
在左側導航欄,單擊實例遷移。
在實例遷移頁面,單擊創建遷移任務。
配置源實例與目標實例。
配置以下信息,單擊測試連接進行下一步。
說明測試連接成功后,進入下一個步驟。如果測試連接失敗,請根據提示,重新配置源實例和目標實例。
確認遷移內容。
仔細閱讀頁面中數據遷移的包含內容提示信息,單擊下一步:預檢測并啟動同步。
后臺遷移鏈路預檢測并啟動任務。
后臺會對目標實例和源實例進行實例狀態檢測、存儲空間檢測和本地表和分布式表檢測。
檢測成功:
仔細閱讀頁面遷移過程中對實例的影響提示內容。
設置停寫時間。
說明為了保證遷移的成功率,建議您停寫時間至少設置30分鐘。
遷移任務必須在任務啟動(即任務創建完成)后的5天內結束,因此,源集群停寫時間的結束日期必須小于或等于
當前日期+5
。為了降低遷移對您業務的影響,建議您設置的停寫時間范圍處于您的業務低峰時段。
單擊完成。
說明單擊完成后,任務創建完成且啟動任務。
檢測失敗:您需要按照提示信息進行操作,重新進行數據遷移。檢測內容及要求如下。
檢測項目
檢測要求
實例狀態檢測
遷移發起時,源集群和目標集群不能有正在運行的管控任務(包含擴容,升降配等)。如果當前源集群和目標集群有管控任務正在運行,則不能發起遷移任務。
存儲空間檢測
遷移進行前,進行存儲空間校驗。保證目標集群的存儲空間大于等于源集群的存儲空間的1.2倍。
本地表和分布式表檢測
如果源集群存在本地表沒有創建分布式表或者分布式表不唯一,則校驗失敗。請刪除多余的分布式表或創建唯一分布式表。
步驟二:查看遷移任務
在集群列表頁面,選擇社區版實例列表,單擊目標集群ID。
在左側導航欄,單擊實例遷移。
在實例遷移列表頁面,查看遷移任務的遷移狀態、遷移進度、停寫窗口。
說明當遷移任務達到99%進度時,且遷移狀態為遷移進行中時,會觸發源集群停寫。停寫規則如下:
觸發時間在源集群預設的停寫時間范圍內,源集群停寫。
觸發時間不在源集群預設的停寫時間范圍內,且小于或等于
任務啟動(即任務創建)日期+5
,您可通過修改停寫窗口時間,繼續遷移任務。觸發時間不在源集群預設的停寫時間范圍內,且大于
任務啟動(即任務創建)日期+5
,遷移失敗。您需取消遷移任務,并清理目標集群中已遷移的數據,重新創建遷移任務,發起遷移。
步驟三:(可選)取消遷移任務
在集群列表頁面,選擇社區版實例列表,單擊目標集群ID。
在左側導航欄,單擊實例遷移。
在目標遷移任務的操作列,單擊取消遷移。
在取消遷移對話框,單擊確定。
說明取消遷移后,任務列表不會立即更新,建議您,通過間隔刷新查看任務狀態。
任務取消后,任務的遷移狀態會變成已完成。
在您重新發起遷移之前,必須先清理目標集群中已遷移的數據,避免出現數據重復的情況。
步驟四:(可選)修改停寫窗口時間
在集群列表頁面,選擇社區版實例列表,單擊目標集群ID。
在左側導航欄,單擊實例遷移。
在目標遷移任務的操作列,單擊修改停寫窗口。
在修改停寫窗口對話框,選擇停寫時間。
說明停寫時間設置規則,與創建遷移任務中停寫時間的設置一致。
單擊確定。
相關文檔
如何從自建的ClickHouse將數據遷移至云數據庫ClickHouse,請參見將自建ClickHouse數據遷移到云ClickHouse中。