开启原生复制功能

本文为您介绍如何开启原生复制功能、MySQL原生复制权限及使用限制。

重要

目前原生复制功能处于邀测阶段,如需体验该功能,请提交工单申请加入白名单。

原生复制权限

为提升用户体验和实例的易用性,开启原生复制功能的RDS MySQL实例的高权限账号被赋予了额外的操作权限,这些权限通常在标准RDS MySQL实例中不可用。

原生复制命令权限

原生复制功能允许高权限账号执行以下MySQL原生复制命令。

  • 配置主库(Master)与从库(Slave)进行复制同步:CHANGE MASTER TO

    具体信息,请参见CHANGE MASTER TO

  • 启动复制进程:START SLAVE;

    具体信息,请参见START SLAVE

  • 停止复制进程:STOP SLAVE;

    具体信息,请参见STOP SLAVE

  • 重置从库(Slave)的状态,以便重新开始与主库(Master)的复制过程:RESET SLAVE;

    具体信息,请参见RESET SLAVE

参数修改权限

原生复制功能允许高权限账号执行以下三个关于修改运行态参数的SQL语句。

  • 设置数据库服务器的只读模式。

    SET GLOBAL read_only = ON/OFF;

    设置为ON时,服务器进入只读模式。设置为OFF时,解除只读状态,允许读写操作。

  • 设置当前会话是否将其执行的SQL语句记录到二进制日志(Binary Log)中。

    SET SESSION sql_log_bin = ON/OFF;

    设置为ON时,会话中的SQL操作将被记录到二进制日志中。设置为OFF时,会话执行的SQL语句不会被记录到二进制日志中。

  • 设置全局事务标识符(GTID)的下一个值。

    SET SESSION GTID_NEXT = "your_gtid_value";

当实例发生跨机迁移,变配等运维操作时,原生复制命令操作权限和参数修改权限将会被临时收回,但不会影响实例的复制进程,运维任务完成后权限会再次放开。

使用限制

权限限制

  • 高权限账号限制

    原生复制功能所拥有的部分Super权限绑定在RDS MySQL实例的高权限账号上,仅高权限账号才能执行CHANGE MASTERSTART SLAVE等原生命令。

  • 复制权限限制

    原生复制功能在应用外部Binlog时,会先进行权限判断,所有超出下列权限的操作都不会被应用,并且导致复制中断。

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, 
    DROP, RELOAD, PROCESS, REFERENCES, INDEX,
    ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
    LOCK TABLES, EXECUTE, REPLICATION SLAVE,
    REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
    CREATE ROUTINE, ALTER ROUTINE, CREATE USER, 
    EVENT, TRIGGER ON *.* TO XXX; 
  • 系统库限制

    所有针对系统库的操作都会被忽略,系统库包括mysqlsysinformation_schemaperformance_schema__recyclebin__

    说明

    CREATE USER,GRANT等间接修改系统库的操作不会被忽略,但SQL语句需要遵循复制权限限制,越权操作(如GRANT super on *.* to xxx;)会中断复制。

  • GTID限制

    在MySQL原生复制配置中,要求主库与从库的GTID模式必须一致,二者均启用或均禁用GTID。RDS MySQL实例不支持关闭GTID模式,因此,若要将RDS MySQL实例作为从库与外部主库建立复制关系,该外部主库必须开启GTID模式以保持兼容。

    搭建复制关系前,需要先在外部主库执行SHOW VARIABLES LIKE 'gtid_mode';查看GTID是否开启。如果GTID未开启,执行SET GLOBAL gtid_mode=ON;开启外部主库的GTID模式。

功能限制

  • 不支持升级大版本。

  • 不支持升级产品系列(基础系列升级为高可用系列或集群版)。

  • 不支持切换专有网络VPC。

  • 不支持库表恢复。

开启原生复制功能

前提条件

开启原生复制功能的RDS MySQL实例需满足:

  • 引擎版本:MySQL 5.7

  • 产品系列:基础系列

  • 计费方式:按量付费或包年包月

  • 内核版本:大于等于20240930

说明

您可以前往实例基本信息页面查看以上信息。

操作步骤

  1. (可选)创建RDS MySQL基础版实例,具体操作请参见创建RDS MySQL实例

  2. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  3. 在实例基本信息页,单击右上方启动原生复制按钮。

  4. 启动原生复制模式的弹窗中,单击确定