范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

MySQL库很大,如何进行数据备份与恢复

  上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具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-MySQL1.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 本地全量备份,不压缩
  后续会以此为基础进行增量备份/* 创建备份结果的目录, 此步骤也可以省略 */ mkdir  all_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-keygen ssh-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上的数据备份及还原等,请各位小伙伴自行探索,也可以与我讨论。关注我的公众号"数据库干货铺"及时解锁新文章,感谢。

窗外风云凭窗望远天,白云连片迁。疾风从西北,匆匆赴东南。昨天,躺在床上,望着窗外的天空,一大片一大片的云朵自西北向东南匆匆而过,让我明显感觉到了风之大。我在室内只能看见窗外有限的一片天,但为什么人越长大,越喜欢沉默?在网上看到一个问题为什么人越长大,越喜欢沉默?IsawaquestionontheInternetWhydopeoplelikesilencemorewhentheygrowup?弘一法师睡前原谅一切,醒来便是重生弘一法师解读人生,有这样一句话睡前原谅一切,醒来便是重生,世间万般皆苦,唯有自渡,真正的强者,是夜深人静把心掏出来,自己缝缝补补。人生的修行,其实就是一场自我的博弈。当你沉浸在世俗星云大师几句话改变你对一切的看法在日常的学习工作生活中,许多人对一些广为流传的语录都不陌生吧,语录一般具有语句简短流畅通俗明了诙谐机智的特点。那些被广泛运用的语录都是什么样子的呢?以下是精心整理的星云大师哲理语录有时别人对你无端的恶意,仅仅说明了ta们自己狐狸漫画策划脚本Ivan卢舫插画always编辑KY主创们弗吉尼亚伍尔夫说归根结底,一个人对于别人的看法,有一半是荒唐的。这种看法完全出于一个人自己的个人动机。如果有人无缘无故来贬低嘲笑你厉害的人,往往厉害在这几件事上相信大家都听过一句话,选择比努力更重要。的确,在这个时代,最不缺的就是努力的人,纯努力是很难让自己脱颖而出的。有些人看起来忙忙碌碌,早起晨读,挑灯工作,很努力却没什么效果而有些人看魅族20明显是冲着小米13来的!屏幕边框更窄,仅为1。57mm魅族20绝对是今年最沉得住气的,别人家的骁龙8Gen2旗舰早早就在去年发布了,甚至是不止一款,而魅族20系列却给我们吊了大半年的胃口。现在终于在2月底,官方开始了象征性的预热,但就iPhoneSE4将采用6。1英寸OLED屏幕,换芯版iPhone13在去年11月份的时候,RossYoung表示苹果尚未最终确定其计划中的2024年iPhoneSE4的屏幕。据称苹果正在考虑6。1英寸OLED显示屏和LCD屏幕,以及5。7英寸的LC重磅!恒生旗舰指数大调整美团比亚迪小鹏等被纳入,腾讯权重下降,这些个股遭剔除点蓝字关注,不迷路2月24日盘后,恒生指数公司公布了2022年第四季度恒指系列检讨结果,调整范围包括恒生国企恒生科技等港股主要旗舰指数,以及与港股通可投资范围直接相关的恒生综合指数坐实全球第二后,直面列强的海信电视会往哪走中国第一世界第二!几个月前,在卡塔尔世界杯赛场上,来自海信的这一广告语引发广泛关注并数度登上热搜。近日,最新的统计数据再度证实,海信的这句广告语不仅精炼而且精准。权威市场研究机构O市场寒流引发电视价格战75英寸跌至2799元,85英寸仅售5299元都说2022年是消费电子产品的寒冬,电视作为消费电子产品中的一员,自然也不逃不过这波寒流,根据多家机构给出的数据显示,整个2022年,电视出货量同比下降15左右,而进入2023年,
平了强队就沾沾自喜?扬科维奇主帅一席话,让土帅李铁自惭形秽好的教练能让球员心情澎湃,求胜欲高昂。不好的教练未战先怯,比赛还没踢,就让球员就觉得自己已经输了。这可能是洋帅跟土帅最大的区别!很多人想知道,为何短短3天,国足选拔队就跟换了一支球男篮如何重返奥运会?周鹏公开发声拒绝归化中国球员要走出去北京时间7月25日,中国男篮前队长周鹏接受国内媒体的报道,谈到本次男篮亚洲杯的失利,他表示竞技体育直讲成绩,不讲困难。外界好的批评都会虚心接受,而球队想要提升成绩,需要一批球员去成罕见!女子100米栏预赛出现罕见场景,单独重赛到底合不合规则尤金田径世锦赛在女子100米栏预赛后,出现了罕见的场景。甚至可以认为是从罕见开始,到罕见结束。比利时田协认为自己的队员扎格雷在比赛中受到干扰,要求独自重赛,结果世界田联答应了。这让CBA三消息辽宁放弃内线强援,张镇麟暂不回归,阿拉基想回北控爱国篮,爱CBA,我是洛姐,小伙伴们看完记得点赞!辽宁队这个赛季拥有一名内线球员朱荣振,他是被山东队租借到辽宁队打球的球员,在辽宁队的两个赛季,朱荣振的表现只能算中规中矩,辽宁队主马竞球迷粗暴侮辱罗纳尔多,并抵制他的转会最近几天,欧洲媒体一直在积极讨论将葡萄牙前锋克里斯蒂亚诺罗纳尔多转会到马德里竞技的可能性。床单军团的球迷们对这一消息感到愤慨,球迷们不想在球队中看到一名前锋,他长期为马竞最大的敌人糯米不要包粽子了,老保姆你新做法,出锅孩子抢着吃,营养又解馋三餐美味,四季幸福,大家好!说起糯米,很多人马上就想起清香的粽子和香甜软糯的年糕,真的是非常经典的糯米食品。不过,糯米还可以用来制作很多其他美食,今天,我要个大家分享一个糯米好吃的推荐8道家常菜,非常适合老人孩子吃,简单又营养,上桌就吃光推荐八道家常菜,非常适合老人孩子吃,简单又营养,上桌就吃光,老少皆宜,做法简单,营养美味,学会了在家做一下吧!干煸四季豆做法1。首先,我们准备四季豆一把,掐去头尾和老筋,切成长段,无花果怎么吃,无花果的吃法技巧教程无花果是一种营养价值极高的生果,重要生产在中国新疆甘肃等地,它成熟后味道甘甜,果香诱人尤其好吃,但无花果在许多人眼中是一种可以直接吃的生果,对付无花果的其他服法人们相识并不多,实在苹果快捷键大全,说明书版教程在刚刚使用苹果手机ipadiwatch平板,都无法正确的使用快捷功能,用对了快捷功能让你工作效率提高,还能够节省时间,小编接下来为大家分享苹果快捷键大全,(小编刚开始使用ipad的Windows11安装教程2021年10月5日,微软发行了Windows11操作系统。在Windows11中,有了许多新功能,而且更美观,当然,对硬件的要求也越来越高。比如TPM2。0,这便使很多正在运行W教你做正宗的水煮肉片,味道麻辣鲜香,鲜嫩好吃下饭,做法超简单大家好,我叫晓晴。今天晓晴花30块钱买了一斤优质里脊肉。让我们用里脊肉做水煮猪肉。首先,我们将里脊肉切成薄片。切好后撒点盐,再倒入少许料酒,再倒入淀粉。用手均匀地抓住它。抓住粘性后