# 备份ClickHouse元数据
#### 操作场景
为了确保ClickHouse集群中的元数据安全，或者集群用户需要对ClickHouse进行重大操作（如升级或迁移等）时，需要对ClickHouse集群的元数据进行备份，从而保证系统在出现异常或未达到预期结果时可以及时进行数据恢复，将对业务的影响降到最低。
用户可以通过FusionInsight Manager创建备份ClickHouse元数据任务，系统支持自动或手动进行数据备份。
MRS集群支持多种数据路径类型备份ClickHouse元数据：
- LocalDir：将备份文件保存在主管理节点的本地磁盘上，备管理节点将自动同步备份文件。 默认保存目录为"*数据存放路径*/LocalBackup/"，例如"/srv/BigData/LocalBackup"。
  
- RemoteHDFS：将备份文件保存在备集群的HDFS目录。
- OBS：将备份文件保存在OBS中。
 
#### 约束与限制
- MRS 3.1.0及之后版本支持该功能。
- MRS 3.3.0及之后版本，支持将ClickHouse元数据备份至OBS。
 
#### 前提条件
- 如果数据要备份至远端HDFS中，需满足以下条件：
  - 需要准备一个用于备份数据的备集群，认证模式需要与主集群相同。
  
  - 如果主集群部署为安全模式，且主备集群不是由同一个FusionInsight Manager管理，则必须配置系统互信，请参见[配置MRS集群间互信](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0354.html)。如果主集群部署为普通模式，则不需要配置互信。
  
  - 主备集群上的时间必须一致，而且主备集群上的NTP服务必须使用同一个时间源。
  
  - 主备集群中，需要确保ClickHouse的"HADOOP_RPC_PROTECTION"配置项的值与HDFS的"hadoop.rpc.protection"配置项的值保持一致。
  
  - 远端备份至HDFS，不支持HDFS加密目录。
   
- 如果数据要备份至OBS中，需要当前集群已对接OBS，并具有访问OBS的权限。

- 根据业务需要，规划备份的类型、周期和策略等规格，并检查主备管理节点"*数据存放路径*/LocalBackup/"是否有充足的空间。
 
#### 备份ClickHouse元数据
1. 登录MRS集群Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"运维 \> 备份恢复 \> 备份管理"。
3. 单击"创建"。
4. 在"任务名称"填写备份任务的名称。
5. 在"备份对象"选择待操作的集群。
6. 在"备份类型"选择备份任务的运行类型，"周期备份"表示按周期自动执行备份，"手动备份"表示由手工执行备份。 
   创建周期备份任务，还需要填写以下参数：
   - "开始时间"：表示任务第一次启动的时间。
   
   - "周期"：表示任务下次启动，与上一次运行的时间间隔，支持按"小时"或按"天"。
   
   - "备份策略"：只支持"每次都全量备份"。
    
   
   
7. 在"备份配置"，勾选"元数据和其它数据"下的"ClickHouse"。
8. 在"ClickHouse"的"路径类型"，选择一个备份目录的类型。 
   若备份目录的类型为RemoteHDFS，且版本为MRS 3.1.0或MRS 3.1.2，需要参考[创建ClickHouse备份任务路径选择RemoteHDFS时的环境配置]先进行环境配置。
   表1备份数据 
   | 路径类型     | 配置参数              | 参数说明                                                                                                                                                                                           |
   |:---|:---|:---|
   | LocalDir | 最大备份数              | 备份目录中可保留的备份文件集数量。                                                                                                                                                                              |
   | RemoteHDFS | 目的端NameService名称   | 备集群的NameService名称。 可在备集群HDFS服务的"管理NameService"页面获取，例如"hacluster"。                                                            |
   | RemoteHDFS | IP 模式            | 目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式，如IPv4或者IPv6。                                                                                                                                                |
   | RemoteHDFS | 目的端主NameNode IP地址 | 备集群主NameNode业务平面IP地址。登录备集群的Manager界面，选择"集群 \> 服务 \> HDFS \> 实例"，即可查看主NameNode业务平面IP地址。 仅MRS 3.2.0及之后版本需要配置该参数。                |
   | RemoteHDFS | 目的端备NameNode IP地址  | 备集群备NameNode业务平面IP地址。登录备集群的Manager界面，选择"集群 \> 服务 \> HDFS \> 实例"，即可查看备NameNode业务平面IP地址。 仅MRS 3.2.0及之后版本需要配置该参数。                 |
   | RemoteHDFS | 目的端NameNode IP地址 | 备集群NameNode业务平面IP地址，支持主节点或备节点。登录备集群的Manager界面，选择"集群 \> 服务 \> HDFS \> 实例"，即可查看NameNode业务平面IP地址。 仅MRS 3.1.0和MRS 3.1.2版本需要配置该参数。 |
   | RemoteHDFS | 目的端NameNode RPC端口  | 目的端集群HDFS基础配置"dfs.namenode.rpc.port"参数值。 仅MRS 3.2.0及之后版本需要配置该参数。                                                               |
   | RemoteHDFS | 目的端路径              | 备集群保存备份数据的HDFS目录。不支持填写HDFS中的隐藏目录，例如快照或回收站目录；也不支持默认的系统目录，例如"/hbase"或"/user/hbase/backup"。                                                                                                         |
   | RemoteHDFS | 最大备份数               | 备份目录中可保留的备份文件集数量。 仅MRS 3.1.0和MRS 3.1.2版本需要配置该参数。                                                                               |
   | OBS     | 目的端路径           | 保存备份数据的OBS目录。                                                                                                                                                                                    |
   | OBS     | 最大备份数           | 备份目录中可保留的备份文件集数量。                                                                                                                                                                              |
      
   
   
9. 单击"确定"保存。
10. 在备份任务列表中已创建任务的"操作"列，选择"更多 \> 即时备份"，开始执行备份任务。 
    备份任务执行完成后，系统自动在备份目录中为每个备份任务创建子目录，目录名为*"备份任务名_任务创建时间* "，用于保存数据源的备份文件。备份文件的名称为"*数据源_任务执行时间*.tar.gz"。
    
    
 
 #### 创建ClickHouse备份任务路径选择RemoteHDFS时的环境配置
本操作仅适用于MRS 3.1.0和MRS 3.1.2版本。
1. 登录备集群的Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HDFS"，选择"更多 \> 下载客户端"。"选择客户端类型"设置为"仅配置文件"，根据待安装客户端节点的节点类型选择正确的平台类型后（x86选择**x86_64** ，ARM选择**aarch64**）单击"确定"。
3. 等待客户端文件包生成后根据浏览器提示下载客户端到本地并解压。 
   例如，客户端文件压缩包为"FusionInsight_Cluster_1_HDFS_Client.tar"，解压后得到"FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles.tar"继续解压该文件。解压到本地PC的"D:\\FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles"目录下（路径中不能有空格）。
   
   
4. 进入客户端路径"FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles\\"，获取"hosts"文件。
5. 进入客户端路径"FusionInsight_Cluster_1_HDFS_ClientConfig_ConfigFiles\\HDFS\\config"，获取"core-site.xml"和"hdfs-site.xml"文件。
6. 登录源集群的Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
7. 选择"集群 \> 服务 \> ClickHouse"，单击"配置 \> 全部配置"，在"ClickHouse（服务）"下选择"备份"。 
   在"remote_connect_core_config_file"参数单击"上传文件"，选择[步骤 5]中准备的"core-site.xml"文件上传。
   在"remote_connect_hdfs_config_file"参数单击"上传文件"，选择[步骤 5]中准备的"hdfs-site.xml"文件上传。
   图1配置ClickHouse数据备份参数   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002460569540.png "点击放大")
   
   
8. 单击"保存"，确认提示信息，单击"确定"保存配置。保存完成后，单击"完成"。
9. 选择"集群 \> 服务 \> ClickHouse"，单击"实例"，查看"ClickHouseServer"的实例IP。
10. 以**root** 用户分别登录ClickHouseServer实例对应的主机节点，检查"/etc/hosts"文件内是否包含[步骤 4]中主机信息，如未包含，添加[步骤 4]中主机信息到"/etc/hosts"文件中。
 
#### 相关文档
在用户意外修改、删除或需要找回数据时，集群用户需要对ClickHouse进行重大操作（如升级或迁移等）后，系统数据出现异常或未达到预期结果，导致ClickHouse组件全部故障无法使用，或者迁移数据到新集群的场景中，可以恢复已备份的ClickHouse元数据，具体操作请参见[恢复ClickHouse元数据](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300066.html)。
