MSHA的核心功能是切流。本文将介绍在异地中如何创建切流任务并查看切流详情。

前提条件

创建切流工单

  1. 登录AHAS控制台,然后在页面左上角选择地域
  2. 在控制台左侧导航栏中选择多活容灾
  3. 在左侧导航栏单击异地切流,并在左上角选择目标命名空间
  4. 异地切流页面右上角单击切流
  5. 切流详情页面选择以下任意一种方式完成规则调整。
    • 范围切流
      1. 选择切流方式范围
      2. 使用以下任意方式更改切流规则:
        • 更改中心单元或普通单元的流量百分比。
          说明 更改一个单元的流量百分比后,另一单元的流量百分比也随即改变。
        • 拖动中心单元或普通单元区段选择器的滑块来改变流量百分比。
          说明 中心单元与普通单元的流量百分比随滑块位置变化。
        • 单击关闭按比例调节,然后编辑中心单元和普通单元的流量区间。
          说明 中心单元的流量区间与普通单元的流量区间需连续且不重复。例如中心单元流量区间为[0,3925],则普通单元为[3926,9999]。
    • 精准切流
      1. 选择切流方式精准切流
      2. 选择单元
      3. 选择切流调整的规则。
      4. 单击单元操作列的修改,在中心单元面板中输入访问中心单元的流量名单,单击+ 添加,可添加多个要切流的精准名单。完成后单击确定
  6. 规则调整区域单击生成预览,查看切流规则。
  7. 单击生成区域的规则文本,即可对比查看切流规则前后变更详情。确认后单击执行预检查
  8. 切流检查区域查看切流检查,待所有检查项均通过后,单击确认
    说明 若有检查项检查不通过,可在该检查项右侧单击重试跳过跳过功能一般用于紧急切流场景,请谨慎使用。
  9. 单击确认,开始切流。

查看切流详情

创建切流任务后,MSHA开始进行切流工作。完成切流需要进行以下5个过程:

说明 若未启用某多活组件,则切流详情中不会有对应的步骤和展示内容。
  1. 全镜像开启。

    MSHA将自动执行所有DTS的全镜像匹配开启操作,即DTS做数据同步时,会校验目的库数据跟源库数据的前镜像是否一致,不一致则会忽略。该功能用于防止切流期间,数据同步延迟未追平的情况下跳过了数据同步延迟(禁写、禁止更新)策略的情况下,目标单元的写入不会被源单元覆盖。

    说明 若镜像开启失败,可单击批量重试进行重试。若仍开启失败,可单击批量跳过跳过该步骤。跳过后存在切流期间数据被覆盖的风险,请慎用。
  2. 单击更新规则

    MSHA使用ACM向业务系统推送切流态路由规则,业务系统中依赖的MSHA-SDK,将根据切流态路由规则进行路由。

    说明 若推送规则失败,则单击重试进行重试,MSHA将在2小时内定时自动重试,如果超时仍未成功则切流工单进入异常状态并回滚重推基线规则。
  3. 单击数据禁写

    此过程中,业务系统中依赖的MSHA-SDK会开启数据库禁写控制,以此进行单元保护,避免更新规则推送到业务系统的时间不一致、机器时钟不一致,导致各机器规则生效时间不一致出现的数据脏写问题。

  4. 各层切流。同时进行接入层和数据层切流。
    • 接入层切流。MSHA将执行各单元流量比例推送和各单元化路由规则推送。
      说明 若推送规则失败,则单击重试,MSHA将在2小时内定时自动重试,如果超时仍未成功则切流工单进入异常状态。
    • 数据层切流。MSHA自动获取数据层的实例库DTS同步延迟情况。业务系统中依赖的MSHA-SDK也会根据同步延时策略,进行相关的控制(禁写、禁更新、忽略)。当所有实例库DTS同步延迟为0s时,系统自动进入下一步骤后置任务
  5. 单击后置任务

    MSHA将进行全镜像关闭,即关闭DTS数据库同步的校验功能。并使用ACM向业务系统推送切流终态路由规则。业务系统中依赖的MSHA-SDK,将根据终态路由规则进行路由,并结束同步延时策略的相关控制(禁写、禁更新、忽略)。

    执行结果:规则推送成功后,将展示流量推送比例饼图。操作至此,证明切流成功。