更新时间:2024-11-29 GMT+08:00

备份ClickHouse业务数据

操作场景

为了确保ClickHouse日常用户的业务数据安全,或者集群用户需要对ClickHouse进行重大操作(如升级或迁移等),需要对ClickHouse数据进行备份,从而保证系统在出现异常或未达到预期结果时可以及时进行数据恢复,将对业务的影响降到最低。

集群用户可以通过FusionInsight Manager创建备份ClickHouse任务。支持创建任务自动或手动备份数据。

前提条件

  • 如果数据要备份至远端HDFS中,需要准备一个用于备份数据的备集群,认证模式需要与主集群相同。其他备份方式不需要准备备集群。
  • 如果主备集群部署为安全模式,且主备集群不是由同一个FusionInsight Manager管理,则必须配置系统互信,请参见配置跨Manager集群互信。如果主备集群部署为普通模式,则不需要配置互信。
  • 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。
  • 根据业务需要,规划备份任务的类型、周期、备份对象、备份目录等策略规格。
  • 检查备集群HDFS是否有充足的空间,备份文件保存的目录建议使用用户自定义的目录。
  • 主备集群中,远端备份至HDFS,需要确保ClickHouse的HADOOP_RPC_PROTECTION配置项与HDFS的hadoop.rpc.protection配置项保持一致。
  • 远端备份至HDFS,不支持HDFS加密目录。
  • 如果数据要备份至OBS中,需要当前集群已对接OBS,并具有访问OBS的权限。

操作步骤

  1. 在FusionInsight Manager,选择“运维 > 备份恢复 > 备份管理”。
  2. 单击“创建”。
  3. 在“任务名称”填写备份任务的名称。
  4. 在“备份对象”选择待操作的集群。
  5. 在“备份类型”选择备份任务的运行类型。

    “周期备份”表示按周期自动执行备份,“手动备份”表示由手工执行备份。

    表1 周期备份参数

    参数名称

    描述

    开始时间

    任务第一次启动的时间。

    周期

    任务下次启动,与上一次运行的时间间隔,支持按“小时”或按“天”。

    备份策略

    • 首次全量备份,后续增量备份
    • 每次都全量备份
    • 每n次进行一次全量备份
    说明:
    • 备份Manager数据和组件元数据时不支持增量备份,仅支持“每次都全量备份”。

  6. 在“备份配置”,勾选“业务数据”下的“ClickHouse > ClickHouse”。
  7. 在“ClickHouse”的“路径类型”,选择一个备份目录的类型。

    表2 备份数据

    路径类型

    参数说明

    RemoteHDFS

    表示将备份文件保存在备集群的HDFS目录。只能保留最新的一份备份文件,历史备份文件将被覆盖。

    还需要配置以下参数:
    • “目的端NameService名称”:填写备集群的NameService名称。可在备集群HDFS服务的“管理NameService”页面获取,例如“hacluster”。
    • “IP 模式”:目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式,如IPv4或者IPv6。
    • “目的端主NameNode IP地址”:填写备集群主NameNode业务平面IP地址。
    • “目的端备NameNode IP地址”:填写备集群备NameNode业务平面IP地址。
    • “目的端NameNode RPC端口”:填写目的端集群HDFS基础配置“dfs.namenode.rpc.port”参数值。
    • “目的端路径”:填写备集群保存备份数据的HDFS目录。不支持填写HDFS中的隐藏目录,例如快照或回收站目录;也不支持默认的系统目录,例如“/hbase”或“/user/hbase/backup”。

    OBS

    表示将备份文件保存在OBS目录中。

    • “目的端路径”:填写保存备份数据的OBS目录。
    • “最大备份数”:填写备份目录中可保留的备份文件集数量。

  8. ClickHouse未使用“最大恢复点个数”参数,此参数可以填写1~1000范围内的任意值。
  9. 在“备份内容”中,选择一个或多个需要备份的ClickHouse表。

    支持两种方式选择备份数据:

    • 添加备份数据文件
      1. 单击“添加”。
      2. 在“文件目录”框内选择要备份的表,单击“添加”添加到“备份文件”框内。
      3. 单击“确定”添加备份数据文件。
    • 正则表达式筛选
      1. 单击“正则表达式输入”。
      2. 根据界面提示,在第一个输入框填入ClickHouse表所在的逻辑集群和数据库,需要与当前存在的逻辑集群和数据库完全匹配,例如“/default_cluster/database”。
      3. 在第二个框输入正则表达式,支持标准正则表达式。例如要筛选数据库中包含test关键字的所有的表,输入“test.*”。
      4. 单击“刷新”,在“目录名称”查看筛选的表。
      5. 单击“同步”保存筛选结果。
      • 输入正则表达式时,可以使用增加或删除一条表达式。
      • 如果已选择的表或目录不正确,可以单击“清除选中节点”清除勾选。

  10. 单击“校验”查看备份任务的配置是否正确。

    校验失败可能存在以下原因:

    • 目的端NameNode IP地址不正确。
    • 待备份的目录或表不存在。
    • NameService名称不正确。

  11. 单击“确定”保存。
  12. 在备份任务列表中已创建任务的“操作”列,选择“更多 > 即时备份”,开始执行备份任务。

    备份任务执行完成后,系统自动在备集群的备份路径中为每个备份任务创建子目录,目录名为数据源_任务创建时间”,数据源每次备份的最新备份文件保存在此目录中。