mysql binlog 机制_Mysql Binlog

本文介绍了MySQL的二进制日志(binlog)机制,包括其作用、记录模式、文件结构和写入机制。通过示例展示了如何查看binlog状态、启用binlog功能,并详细解释了如何使用`mysqlbinlog`工具恢复数据。此外,还提及了binlog的自动删除策略。
摘要由CSDN通过智能技术生成

目录

Binlog日志介绍

二进制log,别于数据库引擎的redo log。

binlog记录记录DML DDL 。

1dc8a9b2dd9ceacaa2a8dcad5a74e93f.png

Binlog的记录模式

22fd6513ff0ab2a1059e66777a378ab6.png

statement 有点像redis的 rdb持久化。

Binlog的文件结构

e746c1a354596443fb9b919d2743a1e4.png

e285be56141abdc01b9cd02f5410a143.png

这个log的格式了解即可,查看log时再来查询。

Binlog的写入机制

fb792376fd97d7428ab63e7d9af2b8f5.png

Binlog 文件操作

如何做到删库而不跑路..............

binlog状态查看 & 开启binlog功能

windows 的mysql配置文件是my.ini .

linux下的mysql配置文件是 my.cnf。

72c2d1ec854dcdd08e00ae31257d5dcf.png

查看binlog是否开启、binlog目录、

mysql> show variables like '%log_bin%'

-> ;

+---------------------------------+--------------------------------+

| Variable_name | Value |

+---------------------------------+--------------------------------+

| log_bin | ON |

| log_bin_basename | /var/lib/mysql/mysql-bin |

| log_bin_index | /var/lib/mysql/mysql-bin.index |

| log_bin_trust_function_creators | OFF |

| log_bin_use_v1_row_events | OFF |

| sql_log_bin | ON |

+---------------------------------+--------------------------------+

6 rows in set (0.00 sec)

查看binlog命令

24aca51c1ecfaafc88b1a87f8207571d.png

mysql> show binary logs;

+------------------+------------+

| Log_name | File_size |

+------------------+------------+

| mysql-bin.000343 | 1073742436 |

| mysql-bin.000344 | 1073829002 |

| mysql-bin.000345 | 1073742690 |

| mysql-bin.000346 | 1073747797 |

| mysql-bin.000347 | 1073742425 |

| mysql-bin.000348 | 1073755538 |

| mysql-bin.000349 | 326803210 |

+------------------+------------+

7 rows in set (0.00 sec)

mysql> show master logs;

+------------------+------------+

| Log_name | File_size |

+------------------+------------+

| mysql-bin.000343 | 1073742436 |

| mysql-bin.000344 | 1073829002 |

| mysql-bin.000345 | 1073742690 |

| mysql-bin.000346 | 1073747797 |

| mysql-bin.000347 | 1073742425 |

| mysql-bin.000348 | 1073755538 |

| mysql-bin.000349 | 326804487 |

+------------------+------------+

7 rows in set (0.00 sec)

使用mysq lbinlog恢复数据

使用mysqlbinlog 把sql文本dump出来直接用编辑器打开。

5fba9058f61cb606676840847a6bc1c6.png

~]# locate mysql-bin.000348

/var/lib/mysql/mysql-bin.000348

~]# mysqlbinlog /var/lib/mysql/mysql-bin.000348 > /opt/0103.sql

~]# ll /opt/ |grep 0103

-rw-r--r-- 1 root root 1296229905 Jan 3 00:34 0103.sql

~]# ll -ths /opt/ |grep 0103

1.3G -rw-r--r-- 1 root root 1.3G Jan 3 00:34 0103.sql

默认大小是1.3G.

ffd1f850126786c7c38befad079d136d.png

删库了,该跑路了。不用,冷静思考不要慌。

先确认一下binlog在不在,现存哪些日志。

1、show master logs;

查看binlog内容

2、show binlog events in  '';

红色框的位置就是恢复的开始和结束位置。

c934c8c117adbaaca0d5468cd52c4a55.png

60a58f1785e13db813073b7020dac5cb.png

3、使用mysqlbinlog恢复

mysqlbinlog

28cbbd0ce7477f3cee43ae934d4fc1d1.png

f7a163cd4fd4c6cfa4cc9d1f79389e81.png

mysqldump: 定期全部备份数据库,mysqlbinlog可以做增量备份和数据恢复

删除binlog

18b1b87904412123a853b11dc8a7a985.png

binlog超过几天自动删除:

mysql> show variables like '%expire_logs%'

-> ;

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| expire_logs_days | 7 |

+------------------+-------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值