通过Binlog恢复数据

如题所述

第1个回答  2022-06-24

MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等), 以事件形式记录 ,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。binlog 的主要目的是 复制和恢复

找到mysql的配置文件,如:我的mysql配置文件在 /etc/mysql/mysql.conf.d/mysqld.cnf

然后需要重启mysql,我的是 sudo service mysql restart

binlog什么时候写入磁盘更 sync_binlog 参数有关,改参数可以设置为0或者大于0的数

sync_binlog 设置为1是最安全的,每次只会丢失一个事务的更新

Binlog日志有三种格式,分别为:

个人建议: binlog_format 设置为 STATEMENT ,因为在迁移某张表的数据时,在迁移过程中产生的增删改都会以sql语句的形式记录在日志文件中,可以根据自己的需求对binlog文件进行过滤

binlog文件中的内容是以二进制格式写入的,如果想要以文本格式显示内容,需要用的mysqlbinlog命令

如果想要把数据迁移过程中的新产生的增删改同步到新的数据表