Mysql 二进制日志备份还原

一、开启二进制日志

1、进入配置文件[mysqld]下添加配置

方案一

vim /etc/my.cnf 

log-bin = /usr/local/mysql/logs/mysql_bin
max_binlog_size = 100M

方案二

vim /etc/my.cnf.d/server.cnf

log_bin='二进制日志名称'

2、重启服务

systemctl restart mysqld

3、进入mysql查看二进制日志开启状态

show variables like 'log_bin';

二、命令使用


  • # 查看二进制日志启动状态
  • show variables like 'log_bin';

  • # 查看二进制日志正在使用的日志
  • show master status;

  • # 查看所有二进制日志
  • show master logs;

  • # 直观查看二进制文件内容
  • show binlog events in 'mysql_bin.000001';

  • # 查看二进制文件内容 # at 678 为position值 # 1321312 3:44:14 为时间值
  • mysqlbinlog --stop-position=795 /xxx/mysql_bin.000001 >/xxx/mysql_bin_001.sql
  • cat /xxx/mysql_bin_001.sql

  • # 根据position进行恢复
  • mysqlbinlog --start-position=1 --stop-position=795 /xxx/mysql_bin.000001 | mysql -uroot -p123123

  • # 根据时间点位置进行恢复;-d指定数据库,选项-h指定主机
  • mysqlbinlog --start-date="2010-09-29 18:00:00" --stop-date="2010-09-29 23:00:00" -d 库名 -h 地址 /xxx/mysql_bin.000001 |mysql -uroot -p123123

  • # 将二进制日志文件中所有的数据记录全部恢复
  • mysqlbinlog /xxx/mysql_bin.000001 |mysql -uroot -p123123

  • # 重新建立新的二进制文件日志
  • flush logs;

  • #清空所有二进制文件日志
  • reset master;