
# HBase容灾集群主备倒换
#### 操作场景
当前环境HBase已经是容灾集群，因为某些原因，需要将主备集群互换，即备集群变成主集群，主集群变成备集群。
#### 对系统的影响
主备集群互换后，原先主集群将不能再写入数据，原先备集群将变成主集群，接管上层业务。
#### 操作步骤
**确保上层业务已经停止** **。**
1. 确保上层业务已经停止，如果没有停止，先执行[HBase容灾集群业务切换指导](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1610.html)操作。
**关闭主集群写功能** **。**
2. 下载并安装HBase客户端。 
   具体请参考[安装MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2127.html)章节。
   
   
3. 在备集群HBase客户端，以**hbase** 用户执行以下命令指定备集群写数据状态关闭。
   
   1. 切换至客户端安装目录：
      ```
      cd 客户端安装目录
      ```
      
   
   2. 配置环境变量：
      ```
      source bigdata_env
      ```
      
   
   3. 认证用户，集群未启用Kerberos认证（普通模式）请跳过该操作：
      ```
      kinit hbase
      ```
      
   
   4. 登录HBase客户端：
      ```
      hbase shell
      ```
      
   
   5. 指定备集群写数据状态关闭：
      ```
      set_clusterState_standby
      ```
      界面提示以下信息表示执行成功：
      ```
      hbase(main):001:0> set_clusterState_standby
      => true
      ```
      
   
   
   
   
**检查当前主备同步是否完成** **。**
4. 执行以下命令，确保当前数据已经同步，要求SizeOfLogQueue=0，SizeOfLogToReplicate=0，如果不为零，等待，重复执行以下命令，直到等于0。 
   ```
   status 'replication'
   ```
   
   
**关闭主备集群同步** **。**
5. 查询所有的同步集群，获取*PEER_ID* 。
   
   ```
   list_peers
   ```
   
   
6. 删除所有同步集群。 
   ```
   remove_peer '备集群ID'
   ```
   例如：
   ```
   remove_peer '1'
   ```
   
   
7. 查询所有同步的表。
   
   ```
   list_replicated_tables
   ```
   
   
8. 分别**disable** [7]查询到的所有同步的表。
   
   ```
   disable_table_replication '表名'
   ```
   例如：
   ```
   disable_table_replication 't1'
   ```
   
   
**切换主备**。
9. 重新配置HBase容灾，具体操作请参考[配置HBase主备集群容灾](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1609.html)。
 
