xtrabackup备份与恢复

来源:互联网 发布:tidb 源码分析 编辑:程序博客网 时间:2024/06/04 19:55

mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。

Xtrabackup是由percona提供的mysql数据库备份工具,这是一款开源的能够对innodb和xtradb数据库进行热备的工具。
特点:

(1)备份过程快速、可靠;
(2)备份过程不会打断正在执行的事务;
(3)能够基于压缩等功能节约磁盘空间和流量;
(4)自动实现备份检验;
(5)还原速度快;

XtraBackup现在最新版本为2.4.7,官方也提供了2.4的版本可供下载,官方链接地址:https://www.percona.com/downloads/XtraBackup/LATEST/可以下载源码编译安装,也可以下载适合的RPM包或使用yum进行安装,如果没有需要特殊定制的,建议直接使用RPM安装或者直接使用二进制文件也可。

一、安装

#下载wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/tarball/percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz#解压tar xf percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz -C /optmv percona-xtrabackup-2.4.7-Linux-x86_64 xtrabackup#配置环境变量echo "PATH=/opt/xtrabackup/bin:$PATH" >> /etc/profilesource /etc/profile

二、备份
1.为了数据库的暗转首先要为备份用户设置最小权限

mysql> CREATE USER ‘bkpuser’@’localhost’ IDENTIFIED BY ‘youpasswd’;
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘bkpuser’;
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON . TO ‘bkpuser’@’localhost’;
mysql> FLUSH PRIVILEGES;

2.完全备份

innobackupex –user=DBUSER –password=DBUSERPASS /path/to/BACKUP-DIR/

3.增量备份

innobackupex –incremental /backup –incremental-basedir=BASEDIR

BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。
另外,在执行过增量备份之后再一次进行增量备份时,其–incremental-basedir应该指向上一次的增量备份所在的目录。

4.恢复备份
准备阶段(prepare)
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。

执行完全备份的redo:innobackupex --apply-log --redo-only BASE-DIR接着执行第一个增量:innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1而后是第二个增量:innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2.....以此类推

还原数据阶段
还原时只需要还原完全备份即可

innobackupex –copy-back /path/to/BACKUP-DIR

三、Xtrabackup的“流”及“备份压缩”功能

Xtrabackup对备份的数据文件支持“流”功能,即可以将备份的数据通过STDOUT传输给tar程序进行归档,而不是默认的直接保存至某备份目录中。要使用此功能,仅需要使用–stream选项即可。如:

innobackupex --stream=tar  /backup | gzip > /backup/`date +%F_%H-%M-%S`.tar.gz例如:innobackupex  --user=backuser --password=youpassword  --host=127.0.0.1 --port=3306 --stream=tar /backup_test/ | gzip > /backup/`date +%F_%H-%M-%S`.tar.gz

甚至也可以使用类似如下命令将数据备份至其它服务器:

innobackupex --stream=tar  /backup | ssh user@backup.host  "cat -  > /backups/`date +%F_%H-%M-%S`.tar"

同时,innobackupex备份的数据文件也可以存储至远程主机,这可以使用–remote-host选项来实现:

innobackupex --remote-host=root@backup.host  /path/IN/REMOTE/HOST/to/backup   
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两个月小孩鼻子不通气怎么办 一岁宝宝流清鼻涕怎么办 孩子鼻子里有鼻涕怎么办 宝宝晚上睡觉鼻子不通气怎么办 宝宝感冒睡觉鼻子不通气怎么办 宝宝3个月流鼻涕怎么办 小孩吃着了发烧怎么办 半岁宝宝鼻子塞怎么办 宝宝伤风鼻子不通气怎么办 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办 五个月婴儿感冒发烧怎么办 两个月的婴儿感冒发烧怎么办 9个月婴儿感冒发烧怎么办 两个月婴儿感冒鼻塞咳嗽怎么办 两个月婴儿感冒咳嗽流鼻涕怎么办 小孩感冒发烧怎么办速效办法 宝宝打喷嚏流清鼻涕怎么办 宝宝感冒流清鼻涕怎么办 2岁感冒流清鼻涕怎么办 小孩感冒流清鼻涕怎么办 4岁宝宝半夜发烧怎么办 四岁宝宝免疫力低下怎么办 两岁宝宝咳嗽流鼻涕怎么办 小婴儿流清鼻涕怎么办 14个月宝宝流鼻涕怎么办 小孩一直流黄鼻涕怎么办 咳嗽有痰 浓鼻涕怎么办 儿童鼻窦炎总反复流脓鼻涕怎么办? 宝宝感冒咳嗽流黄鼻涕怎么办 哺乳期感冒流清鼻涕怎么办 哺乳期打喷嚏流清鼻涕怎么办 哺乳期妈妈感冒流清鼻涕怎么办 哺乳期严重流清鼻涕怎么办 小孩每天都是脓鼻涕怎么办 夏天小孩咳嗽流黄脓鼻涕怎么办? 受凉了流清鼻涕怎么办 宝宝50多天鼻塞怎么办