云数据库ClickHouse提供集群之间的数据迁移,由目标集群发起。您可以通过该功能实现相同内核版本集群之间或低版本集群向高版本集群的数据迁移。本文介绍如何在控制台上使用数据迁移功能。

前提条件

  • 目标集群版本为20.8及以上。
  • 源集群的创建时间为2021年07月之后。
  • 源集群和目标集群已具备数据库账号和密码。
  • 将源集群的IP地址添加到目标集群的白名单中。
  • 将目标集群的IP地址添加到源集群的白名单中。
说明 您可以通过select * from system.clusters;查看云数据库ClickHouse实例的IP地址。如何设置白名单,请参见设置白名单

注意事项

  • 云数据库ClickHouse的云原生版集群不支持进行集群之间的数据迁移。
  • 源集群和目标集群的副本需一致。
  • 源集群和目标集群需在同一地域,且使用相同的VPC。
  • 源集群和目标集群的冷热分层状态需一致。
  • 迁移发起时,源集群和目标集群不能有正在运行的管控任务(包含扩容,升降配等)。
  • 目标集群的存储空间需大于等于源集群的存储空间的1.2倍。
  • 源集群的所有本地表都具有唯一的分布式表。
  • 云数据库ClickHouse集群间的数据迁移仅支持全量迁移。
  • 非MergeTree类型(如外表、Log表等)仅进行结构迁移,不进行数据迁移。

迁移影响

源集群和目标集群在迁移过程中以及迁移完成后受到的影响如下。
集群类型 迁移过程 迁移完成
源集群 可读,不可写。 支持读写。
目标集群 不支持读写。 支持读写。

操作步骤

  1. 登录ClickHouse控制台
  2. 集群列表页面,选择默认实例列表,单击目的集群ID。
  3. 单击左侧导航栏的实例迁移
  4. 实例迁移页面,单击创建迁移任务实例迁移
    说明 如果当前实例没有迁移记录,则显示没有数据
  5. 进入到任务配置环节,选择源实例ID,并分别填写源集群和目标集群的数据库账号数据库密码选择源及目标实例
  6. 单击测试连接以进行下一步,进行集群的连通性校验。
    • 测试连接成功,进行下一步。
    • 测试连接失败。如果提示源实例或者目的实例账号密码认证失败,请重新填写数据库账号数据库密码
  7. 测试连接成功后,进入迁移内容确认环节。单击下一步:预检测并启动同步迁移内容配置
    说明 源集群可迁移内容包含:集群、库、表、数据字典、物化视图、用户权限和集群配置迁移。
  8. 迁移任务配置完成后,后台进行迁移链路预监测和任务启动。
    • 校验成功,单击完成预检测成功
    • 校验失败,您需要按照提示信息进行操作,重新进行数据迁移。检测项目及要求如下。
      检测项目 检测要求
      实例状态检测 迁移发起时,源集群和目标集群不能有正在运行的管控任务(包含扩容,升降配等)。如果当前源实例和目的实例有管控任务正在运行,则不能发起迁移任务。
      副本一致性检测 保持源集群和目标集群的副本一致。副本不一致,会导致参数缺失,无法进行副本的配置。
      存储空间检测 迁移同步进行前,进行存储空间校验。保证目标集群的存储空间大于等于源集群的存储空间的1.2倍。
      本地表和分布式表检测 如果存在本地表没有创建分布式表或者分布式表不唯一,则校验失败。请删除多余的分布式表。
  9. 迁移任务完成后您可以在实例迁移页面查看迁移任务。迁移任务管理

相关文档

如何从自建的ClickHouse将数据迁移到云数据库ClickHouse上,请参见从自建ClickHouse迁移上云