MySQL增量数据备份

本文详细介绍了MySQL数据库的增量备份方法,通过mysql-binlog日志记录用户操作的SQL语句,实现增量数据备份。同时,提供了数据库全量备份、增量备份的命令示例,以及数据恢复的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL增量数据备份

MySQL数据库的增量备份的实现需要借助mysql-binlog日志。
mysql-binlog日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。
从而对日志的备份以达到增量备份的功能。

mysql-binlog日志配置开启

在MySQL配置文件my.cnf文件中的mysqld节中添加下面的配置文件:

[mysqld]
#设置日志格式
binlog_format = mixed
#设置日志路径,注意路经需要mysql用户有权限写
log-bin = /data/mysql/logs/mysql-bin
#设置binlog清理时间
expire_logs_days = 7
#binlog每个日志文件大小
max_binlog_size = 100m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m

重启MySQL生效,如果不方便重启服务,也可以直接修改对应的变量即可。
上诉的具体内容配置可以根据实际项目需求进行相关的调整

数据库全量备份

mysqldump -uroot -ppassword --all-databases --flush-logs --delete-master-logs --single-transaction | gzip >> /data/backup/mysql/2020_04_02/all_dbs_2020_04_02.sql.gz

增量的备份将mysqlbinlog文件备份

rsync -avy /data/mysqlData/log/mysql-bin* /data/backup/mysql/binlog/ 

数据的恢复

找到出现问题时间点 将之前全量备份的数据导入数据库再将日志文件执行到需要恢复的时间点

mysqlbinlog -d xjtm --start-datetime="2020-01-12 15:00:19" --stop-datetime="2020-04-02 14:20:19"  mysql-bin.000001 mysql-bin.000002  | mysql -uroot -ppasswod

查看日志中的相关sql

mysqlbinlog -d xjtm mysql-bin.000001  | more

将指定内容 导出成sql

mysqlbinlog -d xjtm --start-datetime="2020-01-12 15:00:19" --stop-datetime="2020-04-02 14:20:19"  mysql-bin.000001 mysql-bin.000002 > mysql.sql

再执行sql文件

备份都是基于定时任务中 详细的定时任务请查询相关crontab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值