mysql数据库备份之percona Xtrabackup

项目准备上线,第一件事恐怕就是需要做好数据容灾处理,就算不做异地容灾,但是不同服务器的数据备份得赶紧安排上。不然数据库出问题那就啥啥啥都没了。今天我们整理的是一个高效,并且可以热备的工具。

Percona XtraBackup 工具提供了一种再系统运行时执行MySql数据热备份的方法。
本文讲述的是在Linux环境下的Mysql 5.7的数据库整库备份,是作为我们去年数据库备份工具。

一、为什么选择XtraBackup

公司组建开发团队,以前公司系统外包出去。去年年初到了现在的公司,一顿检查吓了一大跳。线上数据库未做备份,询问了未做备份的原因是每天放在凌晨开始备份,但是备份需要10多个小时,到了工作时间会影响正常系统使用!!!我当时就想问问,如果数据库服务器崩溃了咋个办呢?仔细看了下使用mysqldump进行数据库备份,但是由于数据库较大,所以每次备份较慢。
去年线上数据库使用的是mysql 5.7版本,数据库文件基本在250G左右。最大的业务表已经上亿,如果我们接着使用mysqldump进行数据库备份同样无法及时备份完成。调研后我们决定采用XtraBackup进行数据库备份,而决定使用它的原因如下:

  1. 支持热备份(虽然备份时业务操作同样会卡顿,但是还是能够支持正常使用)
  2. 可以进行增量备份(虽然我们都是整备)
  3. 备份速度较快
  4. 恢复速度较快
  5. 对我来说是个新东西,值得学习

二、下载XtraBackup

官网下载地址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST/
根据不同的服务器环境及数据库环境选择不同的安装包,下载完成后直接进行安装即可。(本文使用的版本是2.4版本)


三、使用XtraBackup备份数据库

使用XtraBackup进行备份有两种语法,一种是直接使用xtrabackup,另外一中是innobackupex。两种语法都可以实现备份功能,只是innobackupex是对xtrabackup语法的封装,在本文中是使用innobackupex进行操作,官方文档中是使用xtrabackup进行说明。

全部备份数据库语法:

innobackupex --defaults-file=数据库配置文件 --user=数据库用户 -password='数据库密码' --parallel=线程数 备份目的目录 --no-timestamp

eg:

innobackupex --defaults-file=/etc/my.cnf --user=copy --password='123456' --parallel=4 /home/data/backup --no-timestamp
在上面的语句中我们可以看出我们新建了一个密码123456的账户copy来进行数据库备份。数据库的配置文件地址在/etc/my.cnf,且我们使用4个并发线程将数据库备份到/home/data/backup下。

我们可以通过下面参数指定数据库已经压缩备份文件

--database='数据库名称'

--stream=tar ./|gzip -> test.tar.gz (将备份文件压缩)

四、还原数据库

注意:恢复数据库备份之前,mysql数据库的data目录必须唯恐,而且在执行以下语句前需要关闭数据库。

准备恢复备份

在使用xtrabackup进行数据库备份时,因为程序运行在不同的时间进行复制,在此过程中可能时间被修改,导致数据库文件会出现奔溃问题。而当前
这个步骤是让InnoDB使用复制的日志文件对复制的数据库文件执行检测算坏以及修复数据文件奔溃。

语法

innobackupex --defaults-file=数据库配置文件 --apply-log 备份文件

eg

innobackupex --defaults-file=/etc/my.cnf --apply-log /home/data/backup/

开始恢复备份

语法

innobackupex --defaults-file=数据库配置文件 --copy-back 备份文件

eg

innobackupex --defaults-file=/etc/my.cnf --copy-back /home/data/backup/

当两个依次执行完毕,并且都输出了“innobackupex: completed OK!”时说明备份已经完成了。

小技巧
由于我们的数据库比较大,恢复时间也在20-30分钟左右,有时候时间久了可能远程工具连接失败了。在这里教大家一个将执行过程放到后台的方法,放到后台后就算关闭远程工具也不影响。

ctrl+z --暂停命令(按键)  

bg 1 --将目前的第一个命令放到后台执行

disown -h %1 --就是将作业号为1的作业从作业列表中删除,在shell退出的时候将其作为init的子进程继续执行。

五、启动数据库

接下来我们需要授权数据目录权限到mysql用户上

chown -R mysql:mysql /var/lib/mysql

执行数据库启动命令:

systemctl start mysqld
到这里我们的数据库备份及还原就结束了


六、总结

  1. XtraBackup备份速度的确比较快,我们200多G的数据库备份时间在20分钟左右。但是备份后压缩的文件比mysqldump稍大,mysqldump备份文件在10G左右,XtraBackup在25G左右。
  2. XtraBackup还原数据库也比较快,我们的数据库还原基本上可以在30分钟以内完成。
  3. XtraBackup需要与数据库放在同一台服务器上,且mysql得在本地安装。虽然XtraBackup官网文档中支持远程备份,但是我在进行远程备份时无法进行备份。所以我们在将数据库从5.7升级至8.0以后,因为我们的mysql数据库使用docker进行部署,所以XtraBackup就用不了。当时还裸奔了几天,每天都提心吊胆滴!后面改用了其他的备份方式。
  4. 因为XtraBackup我无法在两台服务器备份,所以我当时是备份后通过scp命令将文件传输到其他服务器做数据库备份。虽然有点繁琐,但是还是实现了异机备份。
  5. 我在下一篇文章将会整理docker部署的mysql8数据库远程备份。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354