09 MYSQL 二进制日志的分析和使用
说明:如下操作只包含简单的binglog相关的操作,目的是方便快速对binlog 进行操作,详细的介绍和说明请参见:
常用的操作:
1.查看当前的二进制位置:
show master logs;
2.使用命令flush logs切换二进制日志,如下所示:
flush logs;
3.二进制日志的删除可以通过命令手工删除,也可以设置自动清理。下面简单介绍一下,如何删除二进制日志。
purge binary logs to 'mysqlbin.000002';
以上命令可以删除mysqlbin.000002以前的日志。
清除某个时间点以前的二进制日志文件。
mysql> purge binary logs before '2017-03-10 10:10:00'; Query OK, 0 rows affected (0.00 sec)
清除7天前的二进制日志文件
mysql> purge master logs before date_sub( now( ), interval 7 day); Query OK, 0 rows affected (0.00 sec)
清除所有的二进制日志文件(当前不存在主从复制关系)
reset master; 设置expire_logs_days参数,设置自动清理,其默认值为0,表示不启用过期自动删除功能 mysql> show variables like 'expire_logs_days';
一、对于较小的二进制日志文件,我们可以直接使用如下方式查看:
mysql> show binlog events in 'mysql-bin.000025'; +------------------+-----+-------------+-----------+-------------+---------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+-------------+-----------+-------------+---------------------------------------+ | mysql-bin.000025 | 4 | Format_desc | 1 | 120 | Server ver: 5.6.31-log, Binlog ver: 4 | | mysql-bin.000025 | 120 | Query | 1 | 188 | BEGIN | | mysql-bin.000025 | 188 | Table_map | 1 | 236 | table_id: 79 (test.t1) | | mysql-bin.000025 | 236 | Write_rows | 1 | 278 | table_id: 79 flags: STMT_END_F | | mysql-bin.000025 | 278 | Xid | 1 | 309 | COMMIT /* xid=175 */ | +------------------+-----+-------------+-----------+-------------+---------------------------------------+
二、指定查看的二进制的起始位点信息:
mysqlbinlog -vv /var/lib/mysql/mysql-bin.000003 --start-position=475;
三、将二进制日志内容导出到指定的文件中:
1.使用如下语法将二进制日志导出到指定的文件:
mysqlbinlog mysql-bin.xxx -vv --base64-output=decode-rows --start-position=a --stop-position=b>/tmp/test.log
2.执行如下语句将日志中的事务导入数据库(应用部分日志):
mysqlbinlog --skip-gtids --start-position=362945607 --stop-position=363101485 mysql-bin000333 |mysql -utest -p -h ip
对于较大的二进制日志文件可以使用more 查看其详细内容
cat mysqlbin-xxxx|more
四、实例:
这里进行一个实例测试,目的是为了模拟主库上日志没有传入到备库时,而出现的部分日志没有应用到备库,而导致的备库不一致问题。
主库执行如下语句:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战