Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

mysql.rds_set_external_master_gtid

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

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

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

ssl_encryption

整数。目前未实施此选项。 默认值为 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 数据库实例之间的复制的信息,请参阅 使用 PostgreSQL、MySQL 和 MariaDB 只读副本

在调用 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);

相关主题