mysql binlog基础知识

本文介绍了MySQL的二进制日志(binlog)功能,包括如何列出、查看、关闭和开启binlog,以及如何利用binlog进行数据库的备份、恢复和主从复制。还详细阐述了如何通过命令行操作binlog文件,如导出、筛选和导入特定内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、介绍

binlog是二进制日志,记录了mysql上所有的改变,并以二进制的方式保存在磁盘中,binlog日志可以查询数据库的变更历史、可以作为增量备份文件、可以用作数据恢复、还可作为主从的复制

二、binlog的实际操作(数据库内)

2.1列出所有binlog日志文件

show master logs;

show binary logs;

2.2查看当前使用的binlog日志文件

show master status;

2.3查看binlog日志文件的内容

show binlog events in 'mysql-bin.000001';

2.4关闭binlog日志功能

set sql_log_bin=0

2.5开启binlog日志功能

set sql_log_bin=1

2.6查看binlog状态

show variables like 'log_%';

2.7生成新的binlog日志文件

flush logs;

2.8清空所有binlog日志

reset master;

三、binlog实际操作(命令方式,以下binlog文件均需指定路径)

3.1binlog日志文件导出指定的库内容

mysqlbinlog -d test mysql-bin.000001 > /opt/test.sql

3.2binlog日志文件导出所有内容

mysqlbinlog mysql-bin.000001 > /opt/bin001.sql

3.3查看binlog内容

mysqlbinlog mysql-bin.000001

3.4筛选binlog内容(可通过此定位出需要恢复的pos位置)

mysqlbinlog mysql-bin.000001 |grep -i -A 3 -B 8 drop #-A为输出drop内容之后3行 -B为输出drop内容之前8行

3.5截取binlog日志导出(pos点方式,适用于一个binlog文件)

mysqlbinlog --start-position=918 --stop-position=2801 mysql-bin.000001 > /opt/test.sql

3.6涉及到多个binlog日志导出(时间戳方式,适用于多个binlog文件)

mysqlbinlog --start-datetime="2020-05-08 17:11:23" --stop-datetime="2020-05-11 17:14:01" mysql-bin.000005 mysql-bin.000006 mysql-bin.000007 mysql-bin.000008 > /opt/test.sql

3.7导入binlog区间指定库内容到数据库

mysqlbinlog --start-position=934 --stop-position=2063 --database=数据库 mysql-bin.000002 | mysql -uroot -p密码 -v数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值