mysql.rds_set_external_master_gtid - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

mysql.rds_set_external_master_gtid

配置从在 Amazon RDS 外部运行的 MariaDB 实例到 MariaDB 数据库实例的基于 GTID 的复制。仅当外部 MariaDB 实例的版本为 10.0.24 或更高版本时,才支持此存储过程。在设置复制时,如果其中的一个或两个实例不支持 MariaDB 全局事务标识符 (GTID),请使用 mysql.rds_set_external_master

使用 GTID 进行复制提供了二进制日志复制无法提供的崩溃安全功能,因此,我们建议在复制实例支持 GTID 的情况下使用它。

语法

CALL mysql.rds_set_external_master_gtid( host_name , host_port , replication_user_name , replication_user_password , gtid , ssl_encryption );

参数

host_name

字符串。在 Amazon RDS 外部运行并将变为源实例的 MariaDB 实例的主机名或 IP 地址。

host_port

整数。在 Amazon RDS 外部运行的要配置为源实例的 MariaDB 实例使用的端口。如果网络配置包括转换端口号的 SSH 端口复制,则指定由 SSH 公开的端口号。

replication_user_name

字符串。在要配置为只读副本的 MariaDB 数据库实例中具有 REPLICATION SLAVE 权限的用户的 ID。

replication_user_password

字符串。在 replication_user_name 中指定的用户 ID 的密码。

gtid

字符串。应作为复制的起始点的源实例上的全局事务 ID。

如果源实例在您配置复制时已被锁定,则可以使用 @@gtid_current_pos 获取当前 GTID,以便让二进制日志在您获得 GTID 和复制开始之间的这一段时间内不会改变。

否则,如果您使用 mysqldump 版本 10.0.13 或更高版本在开始复制前填充副本实例,则可以使用 --master-data--dump-slave 选项获取输出中的 GTID 位置。如果您不使用 mysqldump 10.0.13 版或更高版本,则可以运行 SHOW MASTER STATUS 或使用这些相同的 mysqldump 选项来获取二进制日志文件名称和位置,然后通过对外部 MariaDB 实例运行 BINLOG_GTID_POS 来将这些名称和位置转换为 GTID:

SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);

有关 GTID 的 MariaDB 实施的更多信息,请参阅 MariaDB 文档中的全局事务 ID

ssl_encryption

指定是否在复制连接中使用安全套接字层(SSL)加密的值。1 表示使用 SSL 加密,0 表示不使用加密。默认值为 0。

注意

不支持 MASTER_SSL_VERIFY_SERVER_CERT 选项。此选项设置为 0,这意味着连接已加密,但未验证证书。

使用说明

mysql.rds_set_external_master_gtid 过程必须由主用户运行。它必须在 MariaDB 数据库实例(由您配置为在 Amazon RDS 外部运行的 MariaDB 实例的副本)上运行。在运行 mysql.rds_set_external_master_gtid 之前,必须将在 Amazon RDS 外部运行的 MariaDB 实例配置为源实例。有关更多信息,请参阅“将数据导入到 MariaDB 数据库实例”。

警告

请勿使用 mysql.rds_set_external_master_gtid 管理两个 Amazon RDS 数据库实例之间的复制。仅当使用在 RDS 外部运行的 MariaDB 实例进行复制时,才能使用它。有关管理 Amazon RDS 数据库实例之间的复制的信息,请参阅使用数据库实例只读副本

在调用 mysql.rds_set_external_master_gtid 将 Amazon RDS 数据库实例配置为只读副本后,可对该副本调用 mysql.rds_start_replication 开始复制过程。您可以调用 mysql.rds_reset_external_master 删除只读副本配置。

调用 mysql.rds_set_external_master_gtid 时,Amazon RDS 将时间、用户和“设置主体”的操作记录在 mysql.rds_historymysql.rds_replication_status 表中。

示例

在 MariaDB 数据库实例上运行时,以下示例将该数据库实例配置为在 Amazon RDS 外部运行的某个 MariaDB 实例的副本。

call mysql.rds_set_external_master_gtid ('Sourcedb.some.com',3306,'ReplicationUser','SomePassW0rd','0-123-456',0);