Binary Log

 

 

 

MySQL Binary Log主要用于记录对MySQL数据库真正执行更改的所有操作即DML语句,不包含那些没有修改任何数据的语句,像`select`、`show`这样的语句就不会被记录;如需记录那么需要开启全量日志功能 [^2]。 大部分Binary Log的介绍都适用于Replication Server中的Relay Log(中继日志),因为Relay Log的format和Binary Log一致 [^1]。 查看Binary Log的格式可以使用以下命令: ```sql show variables like '%format%'; ``` 示例输出如下: ```plaintext +--------------------------+-------------------+ | Variable_name | Value | +--------------------------+-------------------+ | binlog_format | ROW | +--------------------------+-------------------+ ``` 这里显示`binlog_format`的值为`ROW` [^4]。 开启全量日志功能的方法有两种: #### 永久开启 通过修改配置文件,修改完之后需要重启服务。在`my.cnf`里的`[mysqld]`添加以下(0 - 关闭,1 - 开启): ```plaintext general-log = 1 general-log-file = /GENERAL/LOG/PATH ``` 注意,有时候可能重启之后不会生效,可以执行`flush privileges`再试试 [^2]。 #### 临时开启 临时生效,不用重启: ```sql set global general_log=ON; set global general_log_file=/GENERAL/LOG/PATH; ``` 开启`general log`会将所有到达MySQL Server的SQL语句记录下来。一般不会开启此功能,因为log的量会非常庞大;这个日志对于操作频繁的库,产生的数据量会很快增长,出于对硬盘的保护,可以设置其他存放路径。开启`general log`会耗费数据库5% - 10%的性能,没有什么特殊需求一般不建议打开;个别情况下可能会临时的开一会儿`general log`以供排障使用 [^2]。 使用`mysqlbinlog`命令进行恢复操作时,必须是编号小的先恢复,例如`atguigu-bin.000001`必须在`atguigu-bin.000002`之前恢复。`flush logs`可以生成新的binLog文件,不然这个文件边恢复边变大是不行的。`show binary logs`可以显示有哪些binLog文件 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值