通用方案:专有云环境中RDS备库的重新搭建

1. 概述

本文主要介绍RDS实例的备库重搭(重新搭建)方案。

1.1. 适用范围

  • 专有云V2,RDS
  • 专有云V3,RDS,MiniRDS
    说明
    • 本方案只适用于一主一从的RDS实例。
    • 本方案只适用MySQL引擎的MiniRDS实例。

1.2. 风险说明

无。

1.3. 用户告知

  • RDS备库的重搭适用于三台及以上服务器环境。
  • 对于专有云V3环境中的MiniRDS实例,直接在本机本地进行备库的重搭。

2. 问题描述

在专有云环境中,如果RDS实例出现下面几种情况,需要参考本文,进行备库的重搭。

  • 因为产品缺陷,V2RDS的备库slave-relay日志,无法自动清理。
  • 备库连接不上,主库上查看备库信息无返回。
  • 主备RDS实例中出现通道断开现象,同时属于如下的情况,无法重新修复主备通道。
  • 主备库报错“Error 'Unknown column'”。
  • 主备库报错“Error 'Table'mysql.__ms_cons_tmp_\\w+' doesn't exist' on query.*”。
  • 备库报“1236”的错误。
  • 备库报错“but the master has purgedbinary logs containing GTIDs that the slave requires”。
  • 备库报错需要跳出当前的GTID,但是跳出后仍然无效。
    说明:GTID指一个数据库事务,每一个对应的数据库事务都有一个对应的UUID号,如果正在处理的数据库事务出错,将会根据对应的UUID号跳到下一个数据库事务。

3. 解决方案

3.1. 环境检查

实例实际指向IP与杜康上的Master实例IP对比检查

  1. 登录杜康控制台,单击实例管理,进入实列列表页面。单击需要备库重搭的用户实例名

  2. 基本信息页面,找到主机信息,查看并记录Master实例机器名的IP地址。
  3. 基本信息页面,找到网络信息,查看并记录该实例的链路类型
    说明
    • 如果链路类型为“DNS”,则实例类型为MiniRDS。
    • 如果链路类型为“LVS”或者“proxy”,则实例类型为RDS。
  4. 参考如下步骤,根据实例的链路类型确认其指向的IP地址,并与步骤2中记录的Master实例机器名进行对比。
    • DNS链路类型
      登录OPS服务器,执行如下命令,查看ANSWER SECTION的指向IP,确认其与步骤2中记录的Master实例机器名的IP地址一致。如果不一致,请停止操作并联系阿里云技术支持。
      dig rds-perl.mysql.rds.[$Domain].com
      说明:[$Domain]指MiniRDS实例的域名。
      系统显示类似如下。
    • LVS链路类型
      • 专有云V2环境
        1. 登录到天目管理控制台,单击视图切换>实例清单
        2. 在服务列表中找到实例slb-ag,单击容器信息
        3. 在容器信息中查看并记录 实例 的IP。
        4. 登录slb-ag容器,关于如何登录该容器,请参考专有云V2环境中如何登录容器
        5. 执行cli命令,查看docker版本。输入“1”然后回车。
        6. 执行如下命令,查看实例的VIP,确认其与步骤2中记录的 Master实例机器名 的IP地址一致。如果不一致,请停止操作并联系阿里云技术支持。
          info admin eip_or_lb address_or_lb_id [$Container_ID]
          说明:[$Container_ID]指实例容器的ID。
          系统返回类似如下。

          说明:RealServer的IP即为提供服务的主库IP。
      • 专有云V3环境
        • 登录杜康控制台,单击实例管理,进入实例列表页面,在实例列表页面,选择对应实例。

        • 基本信息页面单击查看,确定机房信息IP,确认其与步骤2中记录的Master实例机器名的IP地址一致。如果不一致,请停止操作并联系阿里云技术支持。

    • proxy链路类型
      1. 登录杜康控制台,在主机信息页面,找到PROXY连接信息,单击查看
      2. 在弹出的PROXY信息页面,找到MASTER IP的IP地址,确认其与步骤2中记录的Master实例机器名的IP地址一致。如果不一致,请停止操作并联系阿里云技术支持。

主备库read_only参数检查

  1. 基本信息页面,单击实例诊断>执行SQL,执行如下SQL语句,确认备库的read_only参数的值为“ON”。如果不是“ON”,请停止操作并联系阿里云技术支持。

    show variables like '%read_only%';

    返回结果类似如下,符合预期。

  1. 单击主库。执行如下SQL语句,确认主库的read_only参数的值为“OFF”。如果不是“OFF”,请停止操作并联系阿里云技术支持。

    show variables like '%read_only%';

    返回结果类似如下,符合预期。

3.2. 实施步骤

  1. 登录杜康控制台,单击实例管理,进入实例列表界面,单击对应的用户实例名

  2. 实例管理页面,单击备份策略>创建临时策略,将会弹出如下窗口,单击FULL>主库物理备份>点击查看>确定
    说明:单击点击查看,如果存在MyISAM表,请停止操作并联系阿里云技术支持。
  3. 实例管理页面,单击备份恢复,确认能够看到主库最新的临时备份,说明已经完成。

    说明:临时备份18小时之内有效。

    • 如果是RDS实例,在基本信息页面,单击备份重搭(new),选择对应的主机。
    • 如果是MiniRDS实例,在基本信息页面,单击备库重搭,将弹出备库重搭 页面,单击是否强制主库备份>确定
  4. 在杜康控制台,单击任务管理>正在跑的任务,观察任务进度,直到任务完成。如果在失败的任务发现失败步骤,联系阿里云技术支持。

3.3. 结果验证

  1. 登录杜康控制台,单击实例管理,进入实例列表页面。在实例列表页面,单击重搭的用户实例名

  2. 进入基本信息页面,单击实例诊断>执行SQL>备库
  3. 执行如下SQL语句,将返回结果发送给阿里云技术支持进行分析,确认实例的主库和备库是同步的

    show slave status\G

    返回结果类似如下。


4.回滚方案

本方案属于备库重搭,无法回滚。