MySQL备份恢复方法之一:binlog日志

2025-11-25 18:46:57

1、开启bin_log

MySQL8版本后,默认就是开启的。在以前的老版本中,要开启的话,需要在my.cnf中的[mysqld]中开启

[mysqld]

log_bin=binlog

MySQL备份恢复方法之一:binlog日志

2、先使用mysqldump备份数据库

可以参考“MySQL备份恢复方法之一:mysqldump”

因为要结合binlog来进行恢复,所以使用mysqldump备份时,一定要记得加上“–flush-logs”来滚动日志,这样会刷新出新日志,方便以后使用binlog来进行恢复。

3、我们先查看当前binlog日志的数量

可以查看binlog.index这个文件,里面包含了当前有效的binlog日志文件索引

可以看到,最新的日志是binlog.000015

MySQL备份恢复方法之一:binlog日志

4、带上 --flush-logs参数备份

# mysqldump --events --master-data=2 --all-databases --lock-all-tables --flush-logs -uroot -p > all_bak.sql

MySQL备份恢复方法之一:binlog日志

5、备份完成后,我们可以看看binlog.index文件

可以发现,多了一个日志文件binlog.000016

MySQL备份恢复方法之一:binlog日志

6、现在如果要备份这整个数据库,只需要备份all_bak.sql文件和binlog.000016以及之后的binlog日志文件就可以了。

1、可以参考“MySQL备份恢复方法之一:mysqldump”

2、先使用mysqldump备份的sql文件进行恢复

先暂时关闭session级别的二进制日志使得,恢复内容不记录日志

mysql> set session sql_log_bin='OFF'; 

mysql> source all_bak.sql;

3、然后再使用mysqlbinlog读取日志文件恢复日志文件

# mysqlbinlog binlog.000016 | mysql -uroot -p

MySQL备份恢复方法之一:binlog日志

4、还可以针对日志文件,选择时间或者位置来进行恢复。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢