问题描述
如何访问 RDS for MySQL binlog(二进制) 日志
问题分析
MySQL 原生客户端工具 mysqlbinlog 可以进行分析 binlog,以用于查看 MySQL 二进制日志文件的内容,也可以将二进制日志文件转换成文本格式
解决方案
- 查看实例上有那些 binlog 日志
mysql> show binary logs;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| binlog.001634 | 1041950 |
| binlog.001635 | 1041660 |
| binlog.001636 | 1041950 |
binlog 日志文件序号都是顺序增长的,获取到文件名之后,可以使用 mysqlbinlog 功能,先将日志从实例上拉取下来,然后通过解析binlog,获取到最新的 binlog event 事件信息
- 使用 mysqlbinlog 工具将日志拉取到本地
mysqlbinlog \
--read-from-remote-server \
--host=***mysql**.ivolce.com\
--port=3306 \
--user ReplUser \
--password \
--raw \
--result-file=/tmp/ \
binlog.001609
- 解析 binlog 日志
mysqlbinlog --no-defaults -v -v /tmp/binlog.001609
会显示如下信息:通过回显的信息,我们可以看到 binlog event 具体的信息,在某些场景下对问题分析很有帮助
会有如下显示:BEGIN
/*!*/;
# at 302
#211028 15:23:32 server id 28703306 end_log_pos 417 CRC32 0xec215743 Query thread_id=17 exec_time=0 error_code=0
use `rudonx`/*!*/;
参考文档