全部產品
Search
文件中心

ApsaraDB for ClickHouse:升級為多可用性區域部署

更新時間:Dec 11, 2025

為提升雲資料庫ClickHouse叢集高可用性,您可以將叢集的單可用性區域升級為多可用性區域,或者將雲資料庫 ClickHouse 社區相容版叢集單副本升級為雙副本。本文為您介紹升級的操作步驟。

前提條件

  • 叢集狀態為運行中。

  • 叢集沒有未完成支付的續約訂單。

    說明

    您可以登入雲資料庫ClickHouse控制台,在頁面右上方,選擇費用 > 費用與成本在左側導覽列,單擊訂單管理,完成訂單支付或作廢該訂單。

使用限制

雲資料庫 ClickHouse 企業版叢集:

  • 不支援美國(矽谷)和美國(維吉尼亞)地區。

  • 不支援切換主可用性區域。

  • 多可用性區域叢集遷移可用性區域時,不支援僅變更專用網路交換器。

注意事項

  • 雲資料庫 ClickHouse 社區相容版叢集

    • MergeTree類型引擎表在叢集升級為多可用性區域部署後,會將原有歷史資料移轉寫入新的叢集中並自動完成重分布。

      支援遷移的內容:

      • 庫、資料字典、物化視圖。

      • 表結構:除了Kafka和RabbitMQ引擎表以外的所有表結構。

      • 資料:增量遷移MergeTree族表的資料。

      不支援遷移的內容:

      • Kafka和RabbitMQ引擎表的表以及資料。

        重要

        配置變更時會遷移資料到建立執行個體,並最終切流到建立執行個體。為保證Kafka和RabbitMQ資料不分流,請先清理源叢集的Kafka和RabbitMQ引擎表,待變更完成後再重新建立。

      • 非MergeTree類型表(例如外表、Log表等)的資料。

      重要

      以上不支援的內容,在升級過程中,您需根據操作步驟,手動處理。

    • 升級為多可用性區域部署過程中,禁止DDL操作。如不遵循,升級最後,可能會出現資料校正不通過的現象,進而導致升級失敗。

    • 升級為多可用性區域部署過程中,叢集CPU和記憶體使用量率會升高,預計單節點佔用資源小於5核20GB。

    • 升級為多可用性區域部署後,內部節點IP會發生變化,如果依賴節點IP資料寫入和訪問,需重新擷取叢集的VPC網段IP

    • 變更集群配置後,會持續一段時間高頻merge操作,這會導致IO使用率上升,從而引起業務請求的延遲增加。建議您提前規劃以應對業務請求延遲的潛在影響。具體merge操作時間的計算方法,請參見計算遷移結束後的merge時間

  • 雲資料庫 ClickHouse 企業版叢集:可能會出現秒級閃斷或者秒級唯讀情況。

費用

變更集群配置後,費用將會發生變化,具體費用請以控制台為準。更多資訊,請參見變更配置計費說明

操作步驟

社區相容版

步驟一:處理Kafka和RabbitMQ引擎表

Kafka/RabbitMQ引擎表不支援遷移,您需自主處理此類表。

  1. 登入叢集,通過以下語句,查詢需要處理的表。如何登入叢集,請參見通過DMS串連ClickHouse

    SELECT * FROM  `system`.`tables` WHERE engine IN ('RabbitMQ', 'Kafka');
  2. 查看目標表的建表語句並備份。

    SHOW CREATE TABLE <aim_table_name>;
  3. 刪除Kafka和RabbitMQ引擎的表。

    重要

    刪除Kafka時,需同時刪除引用Kafka表的物化視圖,否則導致擴縮容失敗。

步驟二:備份非MergeTree類型表的業務資料

  1. 登入叢集,通過以下語句,查看需要遷移資料的非MergeTree類型的表。

    SELECT
        `database` AS database_name,
        `name` AS table_name,
        `engine`
    FROM `system`.`tables`
    WHERE (`engine` NOT LIKE '%MergeTree%') AND (`engine` != 'Distributed') AND (`engine` != 'MaterializedView') AND (`engine` NOT IN ('Kafka', 'RabbitMQ')) AND (`database` NOT IN ('system', 'INFORMATION_SCHEMA', 'information_schema')) AND (`database` NOT IN (
        SELECT `name`
        FROM `system`.`databases`
        WHERE `engine` IN ('MySQL', 'MaterializedMySQL', 'MaterializeMySQL', 'Lazy', 'PostgreSQL', 'MaterializedPostgreSQL', 'SQLite')
    ))
  2. 備份資料。

    您需將以上非MergeTree類型的業務資料進行備份。具體操作,請參見備份資料至OSS

步驟三:控制台升級操作

  1. 登入雲資料庫ClickHouse控制台,在頁面左上方,選擇叢集所在地區,然後在集群清單頁面,單擊默認實例列表頁簽。

  2. 在目的地組群所在行的操作列,單擊變更配置

  3. 變更配置彈窗中,選擇升级为多可用区部署,單擊確定

  4. 在彈出的升級為多可用性區域部署檢測視窗,查看檢測狀態。

    • 檢測成功:單擊下一步

    • 檢測失敗:根據頁面提示進行相應修改,修改完成後單擊重試檢測。檢測成功後,單擊下一步

      在升級為多可用性區域部署的過程中,檢測失敗的原因主要有以下幾種。

      • 缺失唯一的分布式表:表示本地表沒有建立分布式表,需要再建立一個對應的分布式表。

      • 對應的分布式表不唯一:表示本地表有不止一個分布式表,請刪除多餘的分布式表,僅保留一個即可。

      • Kafka/RabbitMQ引擎表不支援:表示存在Kafka/RabbitMQ引擎表,請刪除。

      • 多副本執行個體存在非Replicated的*MergeTree表:表示資料在多副本之間不一致,擴縮容在遷移資料期間會出現異常。

      • 分布式表和本地表的列不一致:表示需要您修改分布式表和本地表的列一致,否則擴縮容在遷移資料期間會出現異常。

      • 該表在部分節點缺失:您需要在不同分區建立同名的表。針對物化視圖inner表,建議重新命名inner表,然後重建物化視圖,指向重新命名後的inner表。具體操作,請參見物化視圖inner表在不同分區不一致

  5. 變更配置頁面,根據您的業務需求,配置部署方案、可用性區域、專有網交換器以及停寫時間。

    說明

    升級為多可用性區域部署會發生資料移轉,為了保證遷移的成功率,停寫時間有以下要求:

    • 建議將停寫時間至少設定為30分鐘。

    • 升級必須在配置變更建立後的5天內結束,因此,結束停寫時間的日期必須小於或等於當前日期+5

    • 為了降低遷移對您業務的影響,建議您設定的停寫時間範圍處於您的業務低峰時段。

  6. 單擊立即購買,並根據頁面提示完成支付。

說明

升級為多可用性區域部署預計等待30分鐘以上,等待時間長度和資料量相關。具體任務以控制台顯示的叢集狀態為準,當叢集狀態由水平變配中轉變為运行中時,表示升級完成。

步驟四:建立Kafka和RabbitMQ引擎表

登入叢集,執行步驟一:處理Kafka和RabbitMQ引擎表備份的建表語句。如何登入目的地組群,請參見通過DMS串連ClickHouse

步驟五:遷移非MergeTree類型表的業務資料

登入叢集,通過OSS遷移步驟二:備份非MergeTree類型表的業務資料備份的資料。具體操作,請參見從OSS匯入資料

企業版

  1. 登入雲資料庫ClickHouse控制台,在頁面左上方,選擇叢集所在地區,然後在集群清單頁面,單擊企业版实例列表頁簽。

  2. 單擊目的地組群的執行個體ID,進入叢集詳情頁。

  3. 單擊左側導覽列的集群資訊,在集群屬性地區下,單擊部署模式後方的升級到多可用性區域部署

  4. 升級到多可用性區域部署彈窗中,配置可用區升级时间,然後單擊確定

說明

升級為多可用性區域部署預計等待20分鐘以上,等待時間長度和資料量相關。具體任務執行狀態以控制台顯示的叢集狀態為準,當叢集狀態由变配中轉變為运行中時,表示升級完成。