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;