通用方案:专有云环境中AnalyticDB产品的ECU扩缩容方法

通用方案:专有云环境中AnalyticDB产品的ECU扩缩容方法

更新时间:2020-06-09 10:26:53

1. 概述

本文主要介绍在专有云环境中,AnalyticDB产品的ECU扩缩容方法。

1.1. 适用范围

  • 专有云V2,AnalyticDB
  • 专有云V3,AnalyticDB

说明ECU扩缩容方案白屏操作在2.10.X以上版本被禁用,需要通过方案中的黑屏操作方式实施。

  • 在专有云V3.9以上版本,产品版本为2.10.1,白屏操作被禁用。
  • 专有云V3.6.2 、V3.7.1、V3.8.1部分项目产品版本为2.10.1,白屏操作被禁用。

1.2. 风险说明

  • 扩缩容过程中AnalyticDB内部会停止数据上线,期间上线任务会有延迟,实例数据量越大扩缩容时间越长,建议变更时间申请至少两小时以上。
  • 扩缩容期间在启动BN节点时,新建表会失败,启动BN节点预计15分钟左右。
  • 扩缩容期间,实时写入和查询不受影响。

1.3. 用户告知

环境检查步骤一定要仔细检查,避免online影响扩缩容。

2. 问题描述

当实例遇到存储瓶颈或其他问题时,需要对实例进行ECU扩缩容。

3. 解决方案

3.1. 环境检查

停止数据上线

默认使用方法一停止所有数据上线,如果只有部分库需要停止数据上线,则采用方法二单独停止部分库的数据上线。

方法一

登录Garuda Console,依次选择配置管理>高级,找到global/taskmanager/config,将submitOnlineTaskDisabled修改为true。

方法二
  1. 登录天基控制台,在左侧Project框中搜索ads,单击ads-A-XXXXXX集群右侧的Dashboard
  2. 在集群Dashboard页面找到集群资源模块,在name列过滤ads_meta,在Type列过滤db,在Result中选择显示更多,查看ads_meta数据库的信息。
  3. 登录ads_meta数据库,执行以下SQL语句,插入数据。
    replace into db_resource_config
    values('[$Cluster_Name]','[$DB_Name]','dbDataOperationDisabled','[$DB_ID]','true', now(), now());
    说明
    • [$Cluster_Name]为集群名。
    • [$DB_Name]为数据库名。
    • [$DB_ID]为数据库ID。

检查ads_meta库是否存在RUNNING的online任务

执行以下SQL语句,检查ads_meta库是否存在RUNNING的online任务。确认没有为RUNNING状态的online任务,再进行扩缩容操作。

select table_schema,
       table_name,
       data_version,
       state,
       create_time,
       error_msg
from table_data_request
where table_schema='[$DB_Name]'
  and state='RUNNING'
order by create_time desc
limit 20;

数据一致性检查

  1. 登录Garuda Console,选择配置管理>高级,在dbmg/service目录下存在2个节点,依次单击节点,查看节点记录信息,节点记录信息中存在master为true的主rm,通过主rm的IP登录主rm机器。
  2. 执行以下命令,确认返回为ok。
    curl -d "sql=ALTER SYSTEM CHECK DATA IN DATABASE [$DB_Name] PROPERTIES(databaseId=[$DB_ID])" [$Rm_IP]:17000/api/command
    说明:[$Rm_IP]为主rm的IP。

3.2. 实施步骤

在DMS控制台上操作扩缩容

登录DMS控制台,依次单击实例管理>DB容量管理,指定ECU类型,单击容量变更,然后根据实际情况指定扩缩容后的ECU总数量。

注意:当遇到特殊情况需要手动扩缩容时,请登录ads_ag容器,执行以下命令即可,[$ECU_Type]为ECU的类型,[$ECU_Count]为ECU的数量。

curl -d "sql=ALTER DATABASE [$DB_Name] PROPERTIES (databaseId=[$DB_ID]) ADD RESOURCE OPTIONS(resourceType='ecu',ecu_type='[$ECU_Type]',ecu_count=[$ECU_Count])" [$Rm_IP]:9999/api/command

查看扩缩容进度

登录ads_meta数据库,依次执行以下SQL语句,查看扩缩容进度,确认RUNNING状态变成SUCCEEDED状态,即为扩缩容成功。

select table_schema,
       request_type,
       resource_count,
       state,
       create_time
from resource_request
order by create_time desc
limit 10;
select table_schema,
       request_type,
       state,
       create_time
from sys_data_request
order by create_time desc
limit 10;

扩缩容成功后打开上线开关

  1. 登录Garuda Console,打开集群级别的上线开关,依次单击配置管理>高级,找到global/taskmanager/config,将submitOnlineTaskDisabled修改为false。
  2. 登录ads_meta数据库,执行以下SQL语句,打开库级别的上线开关。
    replace into db_resource_config
    values('[$Cluster_Name]','[$DB_Name]','dbDataOperationDisabled','[$DB_ID]','false', now(), now());

3.3. 结果验证

  1. 在DMS控制台上确认ECU的类型和ECU个数符合预期。
  2. 登录RMUI控制台,确认CN节点数量符合预期。
    注意:RMUI控制台的登录地址为http://[$Gallardo_IP]:8315/index,其中[$Gallardo_IP]为gallardo_ag容器的IP地址。
  3. 登录Garuda Console,依次单击配置管理>高级,找到lnmg/[$DB_Name]/service,确认节点数量符合预期。

4. 回滚方案

登录DMS控制台,依次单击实例管理>DB容量管理,指定ECU类型,单击容量变更,根据实际情况指定扩缩容前的ECU总数量。