当前位置: 代码网 > it编程>数据库>Mysql > mysql通过binlog定时备份数据库与恢复的方法

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

2024年12月25日 Mysql 我要评论
1.配置binlogvim /etc/my.cnfserver_id=1log-bin=mysql-bin查看指定binlog文件中的事件-- 查看指定binlog文件中的所有事件show binlo

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定时备份数据库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com