Amazon RDS mysqbinlog"无法在二进制日志索引文件中找到第一个日志文件名"

时间:2014-04-01 21:31:30

标签: mysql amazon-web-services rds

序言

我们在AWS上使用RDS来管理我们的MySQL数据库。我知道RDS创建用于复制的二进制日志。 我想收集这些二进制日志并将它们存储在S3上,这样我就可以随时恢复到异地数据库并重放动作。

问题:

我跨越了一个新的RDS实例,并尝试了以下内容。

root@aws_test_server:/root# mysqlbinlog -h testing.xxxxxxxx.eu-west-1.rds.amazonaws.com -u myuser -p --read-from-remote-server -t mysql-bin-changelog.000002
Enter password:
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ERROR: Got error reading packet from server: Could not find first log file name in binary log index file
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
root@aws_test_server:/root#

因此二进制日志检索正常,但请参阅二进制日志中的错误.. 这是什么意思?

我用Google搜索了大约2天,并且在任何地方都找不到这个错误。

我的问题:

  1. 这是个好主意吗? (将二进制日志备份到S3 ..)
  2. 能以更好的方式完成吗? (〜无限时间点db恢复)
  3. 我该如何处理错误?
  4. PS:生产数据库和此测试数据库正在发生这种情况

    PS2:我注意到这不是一个直接的编程问题,但是 与它有关。请不要从SO移动/关闭到像serverfault这样的地方。感谢

2 个答案:

答案 0 :(得分:3)

今天遇到同样的问题。 Amazon RDS normally purges a binary log as soon as possible,为了增加binlog保留时间,您应该运行查询

调用mysql.rds_set_configuration('binlog retention hours',24);

答案 1 :(得分:0)

我有这个完全相同的错误,但无法通过搜索或尝试其他建议的修复程序获得任何帮助。我必须得到一名AWS技术人员的帮助。解决方案是将参数“ binlog_checksum”设置为NONE。默认为CRC32。

来自技术人员:

binlog_checksum用于通过设置写入事件的校验和 binlog_checksum系统变量。从二进制读回时 日志,源默认使用事件长度,但可以设置为 通过启用master_verify_checksum使用校验和(如果可用) 系统变量。副本上的复制I / O线程 验证从源接收到的事件。您可以导致 复制SQL线程从读取时使用校验和(如果可用) 通过启用slave_sql_verify_checksum系统来中继日志 变量。

要设置参数,请转到RDS实例。导航到“配置”,然后查找它所属的“参数”组。转到参数组并搜索“ binlog_checksum”。