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