备份ClickHouse业务数据
操作场景
为了确保ClickHouse日常用户的业务数据安全,或者集群用户需要对ClickHouse进行重大操作(如升级或迁移等),需要对ClickHouse数据进行备份,从而保证系统在出现异常或未达到预期结果时可以及时进行数据恢复,将对业务的影响降到最低。
集群用户可以通过FusionInsight Manager创建备份ClickHouse任务。支持创建任务自动或手动备份数据。
该功能仅MRS 3.1.0及之后版本支持。
前提条件
- 如果数据要备份至远端HDFS中,需满足以下条件:
- 需要准备一个用于备份数据的备集群,认证模式需要与主集群相同。
- 如果主集群部署为安全模式,且主备集群不是由同一个FusionInsight Manager管理,则必须配置系统互信,请参见配置MRS集群间互信。如果主集群部署为普通模式,则不需要配置互信。
- 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。
- 检查备集群HDFS是否有充足的空间,备份文件保存的目录建议使用用户自定义的目录。
- 主备集群中,需要确保ClickHouse的“HADOOP_RPC_PROTECTION”配置项的值与HDFS的“hadoop.rpc.protection”配置项的值保持一致。
- 根据业务需要,规划备份任务的类型、周期、备份对象、备份目录等策略规格。
备份ClickHouse业务数据
- 在FusionInsight Manager,选择“运维 > 备份恢复 > 备份管理”。
- 单击“创建”。
- 在“任务名称”填写备份任务的名称。
- 在“备份对象”选择待操作的集群。
- 在“备份类型”选择备份任务的运行类型。
“周期备份”表示按周期自动执行备份,“手动备份”表示由手工执行备份。
表1 周期备份参数 参数名称
描述
开始时间
任务第一次启动的时间。
周期
任务下次启动,与上一次运行的时间间隔,支持按“小时”或按“天”。
备份策略
- 首次全量备份,后续增量备份
- 每次都全量备份
- 每n次进行一次全量备份
说明:备份Manager数据和组件元数据时不支持增量备份,仅支持“每次都全量备份”。
- 在“备份配置”,勾选“业务数据”下的“ClickHouse”。
- 在“ClickHouse”的“路径类型”,选择一个备份目录的类型。
备份目录当前仅支持RemoteHDFS类型:
“RemoteHDFS”:表示将备份文件保存在备集群的HDFS目录。
MRS 3.1.0和MRS 3.1.2版本选择此参数值,需要参考创建ClickHouse备份任务路径选择RemoteHDFS时的环境配置先进行环境配置。
MRS 3.2.0及之后版本还需要配置以下参数:- “目的端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”。
MRS 3.1.0和MRS 3.1.2版本还需要配置以下参数:- “目的端NameService名称”:填写备集群的NameService名称。可在备集群HDFS服务的“管理NameService”页面获取,例如“hacluster”。
- “IP 模式”:目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式,如IPv4或者IPv6。
- “目的端NameNode IP地址”:填写备集群NameNode业务平面IP地址,支持主节点或备节点。
- “目的端路径”:填写备集群保存备份数据的HDFS目录。不支持填写HDFS中的隐藏目录,例如快照或回收站目录;也不支持默认的系统目录,例如“/hbase”或“/user/hbase/backup”。
- “最大备份数”:填写备份目录中可保留的备份文件集数量。
- “最大map数”:填写执行MapReduce任务的最大map数,默认值为“20”。
- “单个map的最大带宽(MB/s)”:填写单个map最大带宽,默认值为“100”。
- 在“最大恢复点个数”填写备份任务在本集群中备份可保留的快照数量。
- 在“备份内容”中,选择一个或多个需要备份的ClickHouse表。
支持两种方式选择备份数据:
- 添加备份数据文件
单击导航中某个数据库的名称,将展开显示此数据库中的所有表,勾选指定的表。
MRS 3.2.0及之后版本:
- 单击“添加”。
- 在“文件目录”框内选择要备份的表,单击“添加”添加到“备份文件”框内。
- 单击“确定”添加备份数据文件。
- MRS 3.2.0及之后版本:正则表达式筛选
- 单击“正则表达式输入”。
- 根据界面提示,在第一个输入框填入ClickHouse表所在的逻辑集群和数据库,需要与当前存在的逻辑集群和数据库完全匹配,例如“/default_cluster/database”。
- 在第二个框输入正则表达式,支持标准正则表达式。例如要筛选数据库中包含test关键字的所有的表,输入“test.*”。
- 单击“刷新”,在“目录名称”查看筛选的表。
- 单击“同步”保存筛选结果。
- 输入正则表达式时,可以使用和增加或删除一条表达式。
- 如果已选择的表或目录不正确,可以单击“清除选中节点”清除勾选。
- MRS 3.2.0之前版本:正则表达式筛选
- 单击“正则表达式输入”。
- 根据界面提示,在第一个输入框填写ClickHouse表所在的数据库,需要与当前存在的数据库完全匹配。例如“default”。
- 在第二个输入框输入正则表达式,支持标准正则表达式。例如要筛选数据库中所有的表,输入“([\s\S]*?)”。例如要筛选命名规则为字母数字组合的表,如tb1可输入“tb\d*”。
- 单击“刷新”,在“目录名称”查看筛选的表。
- 单击“同步”保存筛选结果。
- 输入正则表达式时,可以使用和增加或删除一条表达式。
- 如果已选择的表或目录不正确,可以单击“清除选中节点”清除勾选。
- 添加备份数据文件
- 单击“校验”查看备份任务的配置是否正确。
校验失败可能存在以下原因:
- 目的端NameNode IP地址不正确。
- 待备份的目录或表不存在。
- NameService名称不正确。
- 单击“确定”保存。
- 在备份任务列表中已创建任务的“操作”列,选择“更多 > 即时备份”,开始执行备份任务。
备份任务执行完成后,系统自动在备集群的备份路径中为每个备份任务创建子目录,目录名为“数据源_任务创建时间”,数据源每次备份的最新备份文件保存在此目录中。
创建ClickHouse备份任务路径选择RemoteHDFS时的环境配置
本操作仅适用于MRS 3.1.0和MRS 3.1.2版本。
- 登录备集群的FusionInsight Manager。
- 选择“集群 > 服务 > HDFS”,选择“更多 > 下载客户端”。“选择客户端类型”设置为“仅配置文件”,根据待安装客户端节点的节点类型选择正确的平台类型后(x86选择x86_64,ARM选择aarch64)单击“确定”。
- 等待客户端文件包生成后根据浏览器提示下载客户端到本地并解压。
例如,客户端文件压缩包为“FusionInsight_Cluster_1_HDFS_Client.tar”,解压后得到“FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles.tar”继续解压该文件。解压到本地PC的“D:\FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles”目录下(路径中不能有空格)。
- 进入客户端路径“FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles\”,获取“hosts”文件。
- 进入客户端路径“FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles\HDFS\config”,获取“core-site.xml”和“hdfs-site.xml”文件。
- 登录源集群的FusionInsight Manager。
- 选择“集群 > 服务 > ClickHouse”,单击“配置 > 全部配置”,在“ClickHouse(服务)”下选择“备份”。
在“remote_connect_core_config_file”参数单击“上传文件”,选择5中准备的“core-site.xml”文件上传。
在“remote_connect_hdfs_config_file”参数单击“上传文件”,选择5中准备的“hdfs-site.xml”文件上传。
图1 配置CLickHouse数据备份参数
- 单击“保存”,确认提示信息,单击“确定”保存配置。保存完成后,单击“完成”。
- 选择“集群 > 服务 > ClickHouse”,单击“实例”,查看“ClickHouseServer”的实例IP。
- 以root用户分别登录ClickHouseServer实例对应的主机节点,检查“/etc/hosts”文件内是否包含4中主机信息,如未包含,添加4中主机信息到“/etc/hosts”文件中。