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

mysql.rds_next_master_log

在主节点上将复制主体日志位置更改为下一个二进制日志开头。只有在只读副本上收到复制 I/O 错误 1236 时,才能使用此过程。

语法

CALL mysql.rds_next_master_log( curr_master_log );

参数

curr_master_log

当前主日志文件的索引。例如,如果当前文件名为 mysql-bin-changelog.012345,则索引为 12345。若要确定当前主日志文件名,请运行 SHOW SLAVE STATUS 命令并查看 Master_Log_File 字段。

使用说明

mysql.rds_next_master_log 过程必须由主用户运行。

警告

仅在对作为复制源的多可用区数据库实例进行故障转移后复制失败,并且 SHOW SLAVE STATUSLast_IO_Errno 字段报告 I/O 错误 1236 时调用 mysql.rds_next_master_log

如果在发生故障转移事件之前,源实例中的事务未写入到磁盘上的二进制日志,则调用 mysql.rds_next_master_log 会导致只读副本丢失数据。通过配置源实例参数 sync_binlog = 1 和 innodb_support_xa = 1 可以降低发生此状况的概率,但这可能会降低性能。有关更多信息,请参阅 使用 PostgreSQL、MySQL 和 MariaDB 只读副本

mysql.rds_next_master_log 过程在以下版本的 Amazon RDS MySQL 中可用:

  • MySQL 5.5

  • MySQL 5.6

  • MySQL 5.7

示例

假定 Amazon RDS 只读副本中的复制失败。对副本运行 SHOW SLAVE STATUS\G 会返回以下结果:

*************************** 1. row *************************** Slave_IO_State: Master_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Master_User: MasterUser Master_Port: 3306 Connect_Retry: 10 Master_Log_File: mysql-bin-changelog.012345 Read_Master_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Master_Log_File: mysql-bin-changelog.012345 Slave_IO_Running: No Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 67285976

Last_IO_Errno 字段显示该实例收到 I/O 错误 1236。Master_Log_File 字段显示文件名为 mysql-bin-changelog.012345,这意味着日志文件索引为 12345。要纠正此错误,您可以使用以下参数调用 mysql.rds_next_master_log

CALL mysql.rds_next_master_log(12345);

本页内容: