当你需要恢复MySQL时,也会需要使用到二进制日志文件。
mysqlbinlog 命令,以用户可视的方式展示出二进制日志中的内容。同时,也可以将其中的内容读取出来,供其他MySQL实用程序使用。
在此示例中,我们将会涉及以下内容:
- 获取当前二进制日志列表
- mysqlbinlog默认行为
- 获取特定数据库条目
- 禁止恢复过程产生日志
- 在输出中控制base-64 BINLOG
- mysqlbinlog输出调试信息
- 跳过前N个条目
- 保存输出到文件
- 从一个特定位置提取条目
- 将条目截止到一个特定的位置
- 刷新日志以清除Binlog输出
- 在输出中只显示语句
- 查看特定开始时间的条目
- 查看特定结束时间的条目
- 从远程服务器获取二进制日志
1 获取当前二进制日志列表
2 mysqlbinlog 默认行为
3 获取特定数据库条目
4 禁止恢复过程产生日志
当使用-to-last-log选项时,这个选项也会有所帮助。另外,请记住,该命令需要root权限来执行。
5 在输出中控制base-64 BINLOG
- never
- always
- decode-rows
- auto(默认)
MySQL主从复制异常,定位具体的SQL
show binlog events 找到对应的position:
MySQL bin_log 日志row格式,如何转换为SQL:
show binlog events in 'mysql-bin.007064' from 0 limit 165000, 100;
可以看到一个语句跨越了四段position:
| mysql-bin.007064 | 309483688 | Query | 1 | 309483760 | BEGIN |
| mysql-bin.007064 | 309483760 | Table_map | 1 | 309483828 | table_id: 71 (guba.guba_threads_all) |
| mysql-bin.007064 | 309483828 | Delete_rows | 1 | 309483892 | table_id: 71 flags: STMT_END_F |
| mysql-bin.007064 | 309483892 | Xid | 1 | 309483923 | COMMIT / xid=2760796538 /
通过mysqlbinlog 来分析下具体执行的SQL语句内容:
/usr/local/mysql/bin/mysqlbinlog -v --base64-output=DECODE-ROWS --start-position=309483688 --stop-position=309483923 mysql-bin.007064
DELETE FROM
guba
.guba_threads_all
WHERE
@1=16923125 / INT meta=0 nullable=0 is_null=0 /
@2='zp' / VARSTRING(90) meta=90 nullable=0 is_null=0 /
6 mysqlbinlog输出调试信息
7 跳过前N个条目
下面将跳过指定的mysql bin日志中的前10个条目。
8 保存输出到文件
9 从一个特定位置提取条目
10 将条目截止到一个特定的位置
11 刷新日志以清除Binlog输出
12 在输出中只显示语句
也可以使用 --short-form 选项,效果相同。
13 查看特定开始时间的条目
14 查看特定结束时间的条目
15 从远程服务器获取二进制日志
此处使用-R选项。-R选项与-read-from-remote-server相同。
- -R 选项指示mysqlbinlog命令从远程服务器读取日志文件
- -h 指定远程服务器的ip地址
- -p 将提示输入密码。默认情况下,它将使用“root”作为用户名。也可以使用 -u 选项指定用户名。
- mysqld-bin.000001 这是在这里读到的远程服务器的二进制日志文件的名称。
下面命令与上面的命令完全相同:
1 | $ mysqlbinlog -R --host=192.168.101.2 -u root -p mysqld-bin.000001<span style="text-indent: 2em; |
上篇:
Mycat学习实战-Mycat读写分离
下篇:
mysqladmin命令用法
1 从 0 到 1:使用 Loki + Promtail + Grafana 搭建日... 2 Kubernetes集群日志-使用Loki实现高效日志分析和查询 3 AI大模型中 .safetensors 文件、.ckpt文件、.gguf和.pt... 4 Oracle SQL Developer - Oracle优化教程 5 做了这12件事,你的接口就固若金汤 6 VMware安装VMware Tools及启用共享文件夹 7 win10使用Bat脚本自动化定时备份文件、删除特定文件和文件夹 8 使用OBD白屏部署OceanBase数据库 9 OceanBase 集群高可用部署方案简介 10 php 增加 拓展 oci8 - 支持oracle数据库 11 如何利用 Graylog 进行容器化应用日志管理 12 Docker安装MS SQL Server并使用Navicat远程连接-