Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >MySQL实时增量备份

MySQL实时增量备份

作者头像
星哥玩云
发布于 2022-08-18 08:35:55
发布于 2022-08-18 08:35:55
2.8K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

MySQL实时增量备份,采用binlog日志的好处   掌控所有更改操作,必要时可用于恢复数据 数据库主从复制的必要条件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost~]# vim  /etc/my.cnf
[mysqld]
.. ..
log-bin=mysql-bin                              //启用二进制日志,并指定前缀
.. ..
[root@dbsvr1 ~]# service mysqld restart

确认binlog日志文件 新启用binlog后,每次启动MySQl服务都会新生成一份日志文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost~]# ls /var/lib/mysql/mysql-bin.*
/var/lib/mysql/mysql-bin.000001  /var/lib/mysql/mysql-bin.index

清除binlog日志   删除早前指定版本的binlog日志     RURGE MASTER LOGS TO "binlog日志"   删除所有binlog日志,重新新建日志     RESET MASTETR

分析binlog日志   使用mysqlbinlog工具     格式:mysqlbinlog [选项] 日志文件   常用选项     --start-datatime="YYYY-mm-dd HH:MM:SS"     --stop-datatime="YYYY-mm-dd HH:MM:SS"     --start-position=起止位置     --stop-positon=结束位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002
[root@localhost ~]# mysqlbinlog --start-datetime="2018-10-20 23:30" /var/lib/mysql/mysql-bin.000002

利用binlog恢复数据   基本方法     使用mysqlbinlog提取历史SQL操作     通过管道交给mysql命令重做   案例     重做第一份binlog所记录的更改操作 执行指定Pos节点范围内的sql命令恢复数据 根据上述日志分析,只要恢复从2018-10-12 20:40:50到2018-10-20 23:15:50之间的操作即可。可通过mysqlbinlog指定时间范围输出,结合管道交给msyql命令执行导入重做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@loclahost ~]# mysqlbinlog \
    --start-datetime="2018-10-12 20:40:50" \ 
    --stop-datetime="2018-10-20 23:15:50" \
    /var/lib/mysql/mysql-bin.000002 | mysql -u root -p
Enter password:
若是全部重做
[root@loclahost ~]# mysqlbinlog  /var/lib/mysql/mysql-bin.000002 | mysql -u root -p
Enter password:

mysql备份工具   mysqlhotcopy不足     仅适用于MyISAM引擎的数据库     备份过程中,数据插入和更新操作都会被挂起   mysqldump不足     效率较低,备份和还原速度慢     备份过程中,数据插入和更新操作会被挂起   XtraBackup工具     在线热备份工具     备份过程中不锁表,适合生产环境适用     支持整体备份和增量备份     组件一xtrabackup:C程序,支持InnoDB和XtraDB     组件二innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM

xtrabackup基本选项

基本选项

解释

--backup

执行备份操作

--target-dir

备份到目标文件夹

--datadir

备份的原始文件夹(Mysql库的位置)

--prepare

准备恢复数据

--increamental-basedir

增量备份时,指定参照的完整备份路径

--incremental-dir

准备恢复目录时,指定增量备份的路径

 1)使用XtraBackup执行数据库备份

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost~]# mkdir -p /backup/mysql
[root@localhost~]# xtrabackup_56 –backup --datadir=/var/lib/mysql/ --target-dir=/backup/mysql/

2)确认备份好的文件数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@loclahost~]# ls /backup/mysql/

3)做一个增量备份(基于前一步的完整备份)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# xtrabackup_56  --backup \        #xtrabackup_55 是5.5版本,xtrabackup_56是5.6版本
    --datadir=/var/lib/mysql/ \
    --target-dir=/backup/inc01/ \
    --incremental-basedir=/backup/mysql/

确认备份好的文件数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost~]# ls /backup/inc01/

对比完整备份、增量备份的大小:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost~]# du -sh /backup/mysql/ /backup/inc01/
11M     /backup/mysql/                                  //完整备份的大小
264K    /backup/inc01/  

准备用于恢复的数据库目录 以/backup/mysql/可用来重建MySQL服务器。这种情况下,官方建议连做两次--prepare,以确保数据一致性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/ 
[root@localhost ~]# xtrabackup_56 --prepare --target-dir=/backup/mysql/ 

准备恢复“完整备份+增量备份”

以/backup/mysql/用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据: 先准备完整备份目录,添加--apply-log-only仅应用日志:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@loclahost ~]# xtrabackup_56  --prepare --target-dir=/backup/mysql --apply-log-only

然后整合增量备份的数据,通过--incremental-dir选项指定增量位置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# xtrabackup_56  --prepare \
    --target-dir=/backup/mysql --apply-log-only \
    --incremental-dir=/backup/inc01

至此,数据库已经包含增量备份。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL备份与恢复 (转载非原创)
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000003 > /opt/mysql_bin003.txt
wxilejun
2022/08/09
5490
利用Xtrabackup进行mysql增量备份和全量备份
现在xtrabackup版本升级到了8.0,但是只对mysql8.0才有支持, 我们这还是使用2.4, 但是2.4相比之前的2.1有了比较大的变化:innobackupex 功能全部集成到 xtrabackup 里面,只有一个 binary,另外为了使用上的兼容考虑,innobackupex 作为 xtrabackup 的一个软链,即 xtrabackup 现在支持非Innodb表备份,并且 Innobackupex 在下一版本中移除(8.0已经移除了),建议通过xtrabackup替换innobackupex。还有其他的一些新特性,更多的说明可以看xtrabackup新版详细说明。
憧憬博客
2020/07/21
1.5K0
MySQL数据库备份实操
当前xtrabackup的8.0.13已经支持 mysql 8.0.20版本(8.0.20版本对innodb的数据文件模式进行了修改)
技术路漫漫
2020/07/20
1K0
使用XtraBackup备份MySQL 8.0 Part 7 对增量备份进行恢复
大体上差不多,不过8.0版本移除了innobackupex命令且只能备份8.0版本的MySQL
bsbforever
2020/08/18
1.7K0
MySQL基于Percona XtraBackup 实现全备&增量备份与恢复
Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQL(Oracle)、Percona Server 和 MariaDB,并且全部开源。
Power
2025/03/01
970
删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库
一、mysqldump备份方式是采用逻辑备份。最大的缺陷就是备份和恢复的速度都慢,对于一个50G的数据库而言,这个速度还是可以接受的,但是如果数据库非常大,那在使用mysqdump备份就不是太合适了。。
双面人
2019/04/10
6440
删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库
xtrabackup 实现MySQL数据库备份
mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的 数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。 这时就 需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup。 Xtrabackup实现是 物理备份,而且是物理热备 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup;ibbackup是商 业软件,需要授权,非常昂贵。而xtrabackup功能比ibbackup还要强大,但却是开源的。因此我们这里就来介 绍xtrabackup的使用。 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的 数据; innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令即可以实现备 份InnoDB,也可以备份MyISAM引擎的对象。
小手冰凉
2020/06/18
3.3K0
xtrabackup 实现MySQL数据库备份
MySQL 备份与恢复详解
物理备份是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库
星哥玩云
2022/08/17
1.2K0
MySQL 备份与恢复详解
mysql数据库备份方法_oracle数据库备份文件格式
2、备库执行 start slave 命令,备库启动两个线程:I/O thread 和 SQL thread
全栈程序员站长
2022/11/15
7920
mysql数据库备份方法_oracle数据库备份文件格式
[MYSQL] mysql备份方案
我们之前讲过在没有备份的时候怎么恢复数据,从ibd数据文件恢复, 从binlog日志恢复, 甚至从xfs文件系统恢复. 但这些都不能保证一定能恢复成功. 所以每次都会提到备份, 却发现我还没讲过mysql备份相关的文章. 啊! 这?
大大刺猬
2024/12/16
4810
[MYSQL]  mysql备份方案
如何备份你的MySQL数据库
数据库通常会在存储一些有价值的信息。因此,在发生事故或硬件故障时,必须具有可靠的备份以防止数据丢失。
圣人惠好可爱
2018/07/20
17.1K0
mysqldump全量备份+mysqlbinlog二进制日志增量备份
日常的数据备份及恢复测试,是DBA工作重中之重的事情,所以要做好备份及测试,日常的备份常见有mysqldump+binlog备份、xtrabackup+binlog备份,无论那一种,几乎都少不了对binlog的备份,说明了binlog在数据恢复中的重要性,下面做个小测试,是工作中不少运维或者新人DBA容易犯的错。
大龄老码农-昊然
2021/04/22
1.3K0
mysqldump全量备份+mysqlbinlog二进制日志增量备份
(7) MySQL数据库备份详解
比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据可能也已经被删除了, 我们不能使用从数据库上的数据来恢复主数据库上的数据,只能通过备份进行误删除数据的恢复
用户1214487
2019/05/25
1K0
使用Xtrabackup实现MySQL数据库的增量备份
接上一篇文章使用Xtrabackup备份MySQL数据库,下面介绍使用Xtrabackup实现MySQL数据库的增量备份
yuanfan2012
2019/09/17
1.6K0
使用Xtrabackup实现MySQL数据库的增量备份
Mysql备份与还原——xtrabackup
上次我们介绍了采用逻辑备份mysqldump 备份方式,其最大的缺陷就是备份和恢复速度都慢,但如果数据库非常大,那再使用 mysqldump 备份就不太适合了。这时就需要一种好用又高效的工具,xtrabackup 就是其中一款,号称免费版的 InnoDB HotBackup。(mysqldump备份请到L宝宝聊IT公众号中找“mysql备份与还原——mysqldump结合binlog”文章)
L宝宝聊IT
2018/09/29
5.6K0
Mysql备份与还原——xtrabackup
深度解析:Percona XtraBackup8 MySql备份工具!
Percona XtraBackup 是一款开源的备份工具,专为 MySQL 及其分支(如 Percona Server 和 MariaDB)数据库设计。它允许在不中断数据库操作的情况下执行热备份,确保数据的一致性和可恢复性,支持全量与增量,流式备份等。
DBA实战
2024/09/06
3970
深度解析:Percona XtraBackup8 MySql备份工具!
数据库备份和还原详解
问题:会导致备份的数据时间点可能不一致,恢复后的数据时间点不一致,还有可能造成mysql拒绝恢复
dogfei
2020/07/31
1.9K0
xtrabackup实现热备
innobackupex --user=root --password /fullback
风起--追风
2023/07/13
2780
03 . MysSQL权限和备份
恢复时间点之前首先将全量备份恢复之后,在此基础上回放增加的binlog直至指定的时间点
iginkgo18
2020/09/27
7850
MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]
背景 最近一直涉猎 MySQL 数据库的操作、集群部署知识 注意到,为保证数据安全,掌握数据备份是极为重要的 相比小型服务的冷备份而言 在此推荐并整理,更受推崇的 XtraBackup 下的热备份技巧 ☞ 概念了解 [XtraBackup] XtraBackup 是一种物理备份工具,通过协议连接到 MySQL 服务端,然后读取并复制底层的文件,完成物理备份 优势 XtraBackup 备份过程中加读锁,数据可读,但是不可写(分以下情况) Innodb 引擎的备份是无阻塞的备份,不会影响表的
泥豆芽儿 MT
2021/02/02
3.3K0
相关推荐
MySQL备份与恢复 (转载非原创)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验