首页 > 问答 > 关键词 > MySQL最新资讯 > 正文

MySQL数据备份及恢复教程 巧用xtrabackup工具备份恢复

2020-07-06 13:53 · 稿源:数据库干货铺
文章目录

本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容。

1.  xtrabackup 工具的安装

 1.1  安装依赖包

/*xtrabackup 的使用需要安装相关的依赖包 否则使用过程中会报相关错误 */yum install -y rsync perl l perl-Digest-MD5 perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL

1.2  下载及安装

去percona官网下载对应版本的安装包 https://www.percona.com/downloads  , 因为每个版本对应的数据库版本不同,因此需要根据数据库的版本选择对应的xtrabackup的安装包.

当前测试使用的数据库为MySQL5.7  因此下载2. 4 版本https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

另外,2.4. 10 及以后版本中,对libgcrypt进行了区分,因此也需要查询自己服务器的libgcrypt版本,然后选择对应的安装包

查看libgcrypt方法:

[root@testdb ~]# yum list installed|grep libgcrypt
libgcrypt.x86_64 1.5.3-14.el7                      @anaconda

然后下载对应包

/* 二进制包 */wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.18/binary/tarball/percona-xtrabackup-2.4.18-Linux-x86_64.libgcrypt153.tar.gz/*rpm包 */wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.18/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.18-r29b4ca5-el7-x86_64-bundle.tar

二进制包解压后即可使用,rpm包下载解压后 rpm  -ivh 安装即可。操作均很简单,此处略过

xtrabackup通常使用 innobackupex命令, 可以使用 innobackupex  --help 命令查看参数及说明。

其中常用参数及说明如下:

--defaults-file 待备份mysql实例的配置文件--user=USER 备份用户,默认为当前系统用户,建议使用备份专用账号--password=PASSWD 备份用户密码--port=PORT 数据库端口,默认3306--host=HOST 需备份数据库的IP--apply-log 前滚、回滚日志,恢复前用--database指定需要备份的数据库,多个数据库之间以空格分开--copy-back 将备份数据复制到目标路径--incremental 增量备份,后面接的参数值为指定的增量备份的路径--incremental-basedir=DIRECTORY 增量备份时使用指向上一次的增量备份所在的目录--incremental-dir=DIRECTORY 增量备份还原的时候用来合并增量备份到全量,用来指定全备路径--redo-only 对增量备份进行合并--rsync                         加快本地文件传输,适用于non-InnoDB数据库引擎。不与--stream共用--no-timestamp                  生成的备份文件不以时间戳为目录

1.3 创建备份账号

备份的账号建议单独创建,并授予相关权限

mysql> CREATE USER 'backup'@'localhost' IDENTIFIED BY 'Backup@123.com';
mysql> GRANT SUPER,RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'backup'@'localhost'; 
mysql> FLUSH PRIVILEGES;

2.  全量备份

 2.1   本地全量备份,不压缩

后续会以此为基础进行增量备份

/* 创建备份结果的目录, 此步骤也可以省略 */mkdirall_backup/* 开始全量备份*//root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/app/data/mysql3306/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com' --no-timestamp    all_backup

 

 备份的结果存放在指定的目录 all_backup里,内容如下:

 注: 如果没有添加阻塞DDL操作的参数,备份过程中如有DDL操作,备份将终止。因此建议日常备份放在从库中进行。

 2.2  本地tar方式压缩备份

有时为了考虑磁盘空间问题,会在备份的时候直接压缩用以节约磁盘空间或解决磁盘空间不足以存放全量非压缩文件的问题。

/* gzip方式压缩 *//root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com' --stream=tar /tmp |gzip >all_backup.tar.gz

中间过程省略

备份后的结果是一个压缩文件,经过对比,压缩后数据约为非压缩情况下的20%,压缩比还是比较高的。

不过,压缩备份的方式速度相对较慢,且消耗CPU,该影响因素需要大家考虑到,视情况选择是否压缩。

注意: 如果有单表过大 而/tmp路径空间不足的情况备份过程中可能会报错,因此可以指定其他空间较大的目录

 2.3  本地xbstream方式压缩备份

gzip的压缩方式备份可能会有bug(案例可以自行寻找),出现如下错误:

xtrabackup: error: The transaction log file is corrupted.
xtrabackup: error: The log was not applied to the intended LSN!

 因此可以采用xbstream方式进行备份,备份命令如下:

/root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com'  /app/backup  --tmpdir=/app/backup --stream=xbstream|gzip  - > all_backup.xbstream.gz

xbstream压缩备份的过程和tar一致,就不再解释了。

2.4  远程备份到其他机器

远程备份与本地备份的相比 需要额外的配置远程主机的免密登录权限

/*在备份所在用户的主机下配置连接目标主机的免密 */ssh-keygenssh-copy-id -i user@'target_ip'

之后就可以将类似于本地备份的模式 将备份结果发送到远程机器

/root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com' --stream=tar /tmp --no-timestamp | ssh user@'target_ip' "cat - > /app/backup/remote_backup.tar"

备份过程中可以在目标机器看到对应的备份文件,完成后如下

  注:

  • 远程备份的目录需要有写入权限
  • 另外,和备份备份一样,如果存在大表或超大事务运行时不建议使用/tmp目录

3.  增量备份

3.1  第一次增量备份

可以先根据2. 1 的本地全备的基础上进行增量备份,首次增量备份脚本如下:

/root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com' --incremental /app/backup/  --incremental-basedir=/app/backup/all_backup

此时,备份的结果放在/app/backup目录下,由于没指定no-timestamp参数,备份的结果存在在已三期时间命名的目录下:

 备份的过程和全量备份很相似,但是备份结果是不一样的

  结果如下

  注: 增量备份仅能应用于InnoDB或XtraDB表等事务表,对于MyISAM表而言,执行增量备份时依旧进行全量备份

 3.2  第二次增量备份

第二次增量备份是在第一次增量备份的基础上进行,因此incremental-basedir参数内容指定为上一次增量备份的目录即可

/root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3306/etc/my.cnf     --socket=/tmp/mysql.sock  --port=3306 --user=backup --password='Backup@123.com' --incremental /app/backup/  --incremental-basedir=/app/backup/2020-03-25_14-47-37

完成后生成一个新的目录

4.  恢复

4.1  基于全量备份的恢复

4.1.1 回放日志

备份后的文件不能直接用作恢复,还需要先使用apply-log 做前滚和回滚

 /root/xtrabackup/bin/innobackupex  --defaults-file=./backup-my.cnf  --apply-log  /app/backup/all_backup

注: 回放日志的时候 defaults-file 选择备份目录里的即可

4.2.2  恢复至目标实例

本次恢复至一个新实例中(如果恢复至现有的实例需要先关闭目标实例,删除数据目录及相关日志存储的目录。不建议直接恢复至现有实例 ,除非实际需要)

/*创建新实例的相关目录 */
 mkdir -p /app/data/mysql3307/{data,logs,tmp,etc}/* 生产配置文件 ,本次直接拷贝其他实例的配置文件 修改对应端口等*/cp /app/data/mysql3306/etc/my.cnf  /app/data/mysql3307/etc/sed -i "s#3306#3307#g"my.cnf/*创建错误日志 */touch   /app/data/mysql3307/logs/mysqld.log

然后拷贝至新实例中

/root/xtrabackup/bin/innobackupex  --defaults-file=/app/data/mysql3307/etc/my.cnf --copy-back  /app/backup/all_backup

修改目标实例相关目录的权限

chown -R mysql:mysql /app/data/mysql3307

启动新实例即可

/usr/local/mysql5.7/bin/mysqld_safe  --defaults-file=/app/data/mysql3307/etc/my.cnf  &

恢复完毕

4.2  基于增量备份的恢复

如果是基于第一次增量备份的恢复,操作如下

/* 使用合并增量备份的方式进行回放日志,先进行全量备份的合并 *//root/xtrabackup/bin/innobackupex  --apply-log --redo-only /app/backup/all_backup/* 再合并第一次增量备份 */
 /root/xtrabackup/bin/innobackupex  --apply-log --redo-only /app/backup/all_backup --incremental-dir=/app/backup/2020-03-25_14-47-37

如果基于多次增量备份的恢复,则在全量备份及第一次增量备份的基础上继续合并后续的备份即可

/*基于第二次增量备份的合并 */ /root/xtrabackup/bin/innobackupex  --apply-log --redo-only /app/backup/all_backup --incremental-dir=/app/backup/2020-03-25_15-06-28

之后的操作和全量备份的恢复一样即可。

5. 小结

基于xtrabackup2. 4 版本备份MySQL5. 7 数据库的主要方法及过程常用情况均已演示,结尾处再总结一下xtrabackup的主要优点:

  • 物理备份,备份速度快
  • 热备份、无需停机
  • 恢复速度快
  • 自动会对备份文件进行验证

本文只介绍了常用操作,还是有很多情况未做介绍,比如rds上的数据备份及还原等,请各位小伙伴自行探索,也可以与我讨论。

本文转载自微信公众号【数据库干货铺】。

  • 相关推荐
  • 大家在看
  • 数据恢复大师恢复秘籍:有什么免费的硬盘数据恢复软件吗?

    有什么免费的硬盘数据恢复软件吗?相信很多的小伙伴都想知道电脑数据恢复的秘籍,因为我们大多数人在使用电脑时,经常会因为不小心误删或者磁盘格式化、损坏等原因导致重要电脑硬盘数据丢失的情况。也正是因为这样,目前市面上出现了很多的数据恢复软件。我们都知道,这些软件想要实现真正的数据恢复效果都是需要付费的!那么,电脑上最好用且免费的数据恢复软件有哪些呢?其实很简单,以下将为大家分享两款不同类型的,快来了解下

  • 硬盘坏了数据可以恢复吗?硬盘数据恢复技巧

    硬盘坏了数据可以恢复吗?硬盘是计算机中最主要的存储设备,不管是电脑上使用的硬盘还是移动硬盘,其中都存储了重要的数据文件,在长期的使用和操作下,硬盘也很容易出现损坏的情况,那么硬盘坏了数据该怎么恢复呢?接下来就为大家介绍对应的操作步骤。第一步:下载安装”嗨格式数据恢复大师“,选择主界面的”磁盘分区丢失恢复“。【嗨格式数据恢复大师】 第二步:选择要恢复的分区,然后点击搜索分区。 第三步:待查找到该分区,

  • 硬盘坏了数据可以恢复吗?硬盘数据恢复攻略分享

    硬盘坏了数据可以恢复吗?关于硬盘数据恢复方法,我想我是有发言权的,前两天不知道什么原因,电脑开机之后硬盘F盘保存的电影等大文件都找不到了,存放电影的文件夹是空,可能是我不小心误删了,然后我就疯狂找硬盘数据恢复方法想要恢复回来,经过我不懈的努力,尝试了很多恢复方法以及硬盘数据恢复软件后,终于找回了误删除的硬盘数据!一、选择一款靠谱的数据恢复软件,我一般使用的是【嗨格式数据恢复大师】这款数据恢复软件有?

  • 果师兄恢复大师:超好用的数据恢复APP,强力推荐!

    最近发现一件事:很多人都不知道手机上数据删除之后是可以恢复的。很可惜,很多人就这样错失了弥补遗憾的最佳机会。也不知道这篇文章会被多少人看到,但是希望在有限曝光几率中分享给大家一个最近发现的宝藏APP:主要是恢复误删除的数据的,软件名称:果师兄。1、苏州开心盒子软件有限公司:高新技术企业果师兄恢复大师APP是由苏州开心盒子软件有限公司研发的专业手机数据处理的服务平台,技术团队具备10多年的软件研发经验,连续?

  • 硬盘恢复数据技巧:硬盘坏了数据可以恢复吗?

    电脑硬盘是我们日常使用电脑的时候经常打交道的一个装置。电脑硬盘分为内存和外存,内存负责存储电脑系统装置和电脑中的程序运行工作,外存负责电脑文件数据存储工作,因此硬盘负载着一台电脑最重要的信息,一旦不小心格式化会造成很大的麻烦。那么电脑硬盘格式化了还能恢复吗?下面介绍的这个方法非常简单。一、硬盘格式化数据恢复方法第一步:首先我们需要一些工具类软件来协助我们恢复数据。打开浏览器搜索“嗨格式数据恢复大师

  • 腾讯微博今晚将正式停止运营 你备份数据了吗?

    今日晚 23 时 59 分,腾讯微博将正式停止运营。9 月 4 日,腾讯微博宣布由于业务调整,将停止服务和运营,届时将无法登录。目前,用户还可以通过腾讯微博官网(t.qq.com)来备份数据。备份成功后,腾讯将会把相关数据发送至用户QQ邮箱。

  • 乘云而上的数据库,在数据中寻找确定性

    数据是信息建设之基「云优先」已经成为企业信息化建设的主旋律,「新基建」定义了云计算是基础设施也是操作系统。云计算由于在降本增效和弹性扩展等方面的优越性,越发受到企业青睐。在黑天鹅频现的 2020 年,企业面对的风险与挑战愈发严峻,企业间的竞争也十分激烈,如何在这些不确定中寻找确定性?答案是:深耕数据,升值业务,在数据中寻找确定性。利用云平台作为基础支撑,以数据驱动进行精细化运营,满足用户的多元化需求。而?

  • 苹果建议对iPhone和Apple Watch执行恢复操作以解决电池消耗过快或GPS数据丢失问题

    在iOS14 和watchOS7 发布后不久,很多用户的iPhone和Apple Watch就遇到了问题。有用户发现GPS数据在活动期间没有被正确记录,这个问题似乎影响到了所有型号的苹果手表。此外,有用户反映在iOS14 和watchOS7 下,他们的Apple Watch、iPhone或两者的电池消耗过多。在支持论坛中,非官方的修复方法似乎是解除配对并恢复Apple Watch。有用户用这种方法解决了这两个问题。

  • 贝宝主营业务借贷模式:back-to-back 面临上下游两端风控

    借贷一哥贝宝金融的三亿美金借贷量,大约只有 1 亿来自客户,它自己其实是最大的客户。贝宝的杠杆率大约是3- 5 倍,借贷行业最高。高杠杆的同时是高利润,贝宝大概是同类企业利润的3- 5 倍。高利润的同时是高风险, 312 期间出现大量爆仓,贝宝对所有资金方形成事实违约,Tether将补仓时间从 48 小时延长到一个月,挽救了这家企业。早期贝宝模式的本质很简单,就是以低廉成本获取资金,再加杠杆du比特币上涨。不过它也在转型。一

  • 深度好文:用数据重建快消流通秩序——舟谱数据邹文标访谈

    据国家统计局数据显示,2020年1-6月份,社会消费品零售总额172,256亿元,6月份,社会消费品零售总额33,526亿元。庞大的市场体量之下,自然也蕴含着更多的机会与挑战。舟谱数据联合创始人邹文标在接受亿欧访谈时讲到,从中国快消行业流通现象来看,当前线下的量大于线上,线下渠道高度分散,商品从仓库到货架,尤为分散的路径就会带来效率的问题,自然也就会存在机会点:能让如此分散变得集中一些,效率就会提升。然而线下经销商物?

  • 秒级追踪+爆款预测,魔方数据成直播大数据黑马

    魔方数据(iambox)是致力于快手全领域流量追踪分析的大数据服务平台,为用户提供快手直播广场即时数据分析、直播数据动态大屏呈现、爆款视频趋势追踪、数据定制化等服务,助力快手账号运营优化,辅助流量变现、电商带货。同时为广告主、商业合作等用户提供可靠的数据支持,帮助发掘优质账号、播主、机构。 自上线以来,魔方数据持续深耕快手大数据挖掘分析,以更及时、更真实、更可靠,更多维度的数据追踪分析功能,成为快手大数据

  • 又被“大数据杀熟”了?

    这是 7 月国内跨省旅游开放后的第一个节假日,又遇上国庆中秋连休 8 天。携程数据显示,预计今年国庆中秋 8 天长假旅游人次可能达到 6 亿。

  • 天涯明月刀手游捏脸数据汇总 超火明星捏脸数据大全

    天涯明月刀手游上线了,其中进入游戏的第一件事情就是捏脸,有一个好的角色颜值对什么都重要,下面就来为大家分享一下一些当前大火的明星例如杨超越等人的捏脸数据,帮助大家捏脸。

  • iPhone12数据线接口是什么样 苹果12数据线和以前一样吗

    苹果iPhone12系列发布会上,苹果公司宣布在iPhone12系列包装盒中将不再附带充电器插头和耳机,但是会配备一条数据线,那么这条数据线和以前的是一样吗,我们来一起看下。

  • 聚数据人才,助产业腾飞——2020 CCF大数据与计算智能大赛北京起航

    10 月 13 日,中国计算机学会(CCF)主办的2020 CCF大数据与计算智能大赛(2020 CCF BDCI)在北京正式启幕。本次大赛将携手高校、名企、专家及DataFountain平台等多方力量,关注技术发展与人才培养,助力推动我国大数据技术及产业生态发展。为进一步扩大参与规模及影响力,2020 CCF BDCI联合CCF大数据专家委员会、CCF自然语言处理专业委员会、CCF数据库专业委员会、CCF高性能计算专业委员会、CCF人工智能与模式识别专业委员会、CCF

  • 天涯明月刀手游捏脸数据怎么导入 捏脸数据导入方法教程攻略

    天涯明月刀手游中捏脸是游戏的一大特色,游戏中有非常强大的捏脸功能,很多玩家还不清楚怎么导入捏脸数据,下面就来为大家分享一下捏脸数据导入方法教程攻略。

  • 知瓜数据丨分析穿搭行业TOP100 播主数据,发现10. 10 秋冬大赏爆火规律

    2020 双 10 秋冬大赏(暖冬节)已经结束,这场众多播主积极参与的秋冬服饰直播盛宴,让[时髦穿搭]行业在当日的直播观看人数达近 30 日最高。薇娅直播间更是表现极佳,获得了680W+的观看UV,带货GMV(估)达到了6. 12 亿,成为当日热门直播榜TOP1!(知瓜数据-行业流量大盘)双 10 秋冬大赏是淘宝直播S级活动,品类范围为秋冬服饰(重点包括皮衣皮草、毛呢、羊绒、羽绒、棉服等),对于[时髦穿搭]行业的播主来说十分具有参与意义。以下聚焦知

  • 医疗数据安全威胁及防护建设

    美创科技医疗行业资深技术顾问陈旭近日在“中国卫生信息技术/健康医疗大数据应用交流大会暨软硬件与健康医疗产品展览会(CHITEC 2020)”做《医疗行业数据安全防护建设方案》主题报告,全面解析了医疗在面对互联网、大数据等快速变幻的外部环境以及日益严峻的安全形势下数据安全威胁场景,并提出防护措施。美创科技陈旭演讲现场陈旭表示:医疗信息化建设发展,让原有封闭的网络环境被打破,高价值的健康医疗数据在更加开放的网络、

  • 天涯明月刀手游男性捏脸数据大全 帅气男角色捏脸数据二维码分享

    天涯明月刀手游正式开服了,大家都想在第一时间进行捏脸,很多玩家对这个捏脸很头疼,不知道有什么好看的捏脸数据二维码,下面就来为大家分享一下。目前主要分为QQ区和微信区,大家根据导入方法即可使用以下数据。QQ区捏脸数据:吴亦凡王俊凯杨洋蔡徐坤魏无羡李易峰王嘉尔吴磊唐青枫芹泽多摩雄薛之谦奶油小生橘右京

  • 万国数据拟38亿元收购北京顺义一大型数据中心项目

    万国数据服务有限公司宣布,已与中信产业投资基金管理有限公司旗下私募股权基金控股的公司达成收购协议,其企业价值为38亿元,包括其位于北京顺义区的一个数据中心项目,并命名为万国数据北京十四号数据中心。双方将在约定的排他期内签署最终交易文件,并在交割条件完成的前提下完成收购。据介绍,北京十四号数据中心净机房面积超19,000平方米,目前已被五个超大规模客户全部签约。该数据中心紧邻万国数?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议
  • 热门标签

热文

  • 3 天
  • 7天