Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql binlog定时备份数据库

mysql通过binlog定时备份数据库与恢复的方法

作者:另类程序员132

这篇文章主要介绍了mysql通过binlog定时备份数据库与恢复的方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1.配置binlog

vim /etc/my.cnf
server_id=1
log-bin=mysql-bin

查看指定binlog文件中的事件

-- 查看指定binlog文件中的所有事件
show binlog events in 'binlog.000001'
-- 查看指定binlog文件中从指定位置(position)开始的所有事件
show binlog events in 'binlog.000001' from 32556;
-- 分页查询
show binlog events in 'binlog.000001' from 32556 limit 10;

2.编写shell脚本

1.正常安装
mysqldump -uroot -proot --databases test --master-data=2 --flush-logs > /backup/`date +%F-%H`-mysql-vending-machine.sql
2.通过docker部署
docker exec e2c326627ed5 sh -c 'exec mysqldump --databases test -u root -p"root" --master-data=2 --flush-logs' > /opt/backup/`date +%F-%H`-mysql-vending-machine.sql
注: --databases后面是数据库名,master-data=2 注释掉日志记录
1.mkdir /opt/backup
2.vim backup.sh
3.#!/bin/bash
#mysqldump -uroot -proot --databases test --master-data=2 --flush-logs > /backup/`date +%F-%H`-mysql-test.sql

3.查看备份好的数据库.sql脚本

CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

4.创建定时任务

crontab -e   // 创建定时任务,从凌晨2点开始执行
0 2 * * * /opt/backup/backup.sh
crontab -l   // 查看定时任务

5.恢复数据

1.删除数据执行备份好的sql脚本: /backup/date-mysql-test.sql
2.查看date-mysql-test.sql里的CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;记录mysql-bin.000001与154,执行binlog从mysql-bin.000001文件的154开始恢复
3.开始通过binlog恢复数据
mysqlbinlog mysql-bin.000001 --start-position=154 --stop-position=71012  | mysql -uroot -p'root'
注: --start-position:开始恢复的位置
--stop-position:结束的位置,如果需要执行到最后这个参数可以不写

到此这篇关于mysql通过binlog定时备份数据库与恢复的文章就介绍到这了,更多相关mysql binlog定时备份数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文