我的编程空间,编程开发者的网络收藏夹
学习永远不晚

xtrabackup如何备份mysql数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

xtrabackup如何备份mysql数据库

参考:http://mingxiao.blog.51cto.com/8124243/1623634


一 全备

1.命令安装:

yum install -y gnupg
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm(64位源)
rpm -Uhv https://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.i386.rpm(32位源)
yum install -y percona-xtrabackup


[root@aliyun-112 ~]# xtrabackup -v

xtrabackup version 2.3.3 based on MySQL server 5.6.24 Linux (x86_64) (revision id: 525ca7d)

2.命令功能:

对InnoDB做数据备份的工具,支持在线热备份

3.命令参数:

--database=sundong  单独对hu数据库做备份 ,若是不添加此参数那就那就是对全库做备份 

--stream =tar   打包格式 目前只支持 tar and xbstream

2>/var/backups/hu.log 输出信息写入日志中 

1> /var/backups/hu.tar.gz 打包压缩存储到该文件中  

--incremental-dir=/var/backups/plus/  增量备份目录

--copy-back选项的命令从备份目录拷贝数据,索引,日志到my.cnf文   件里规定的初始位置

--apply-log选项的命令是准备在一个备份上启动mysql服务

--port=PORT

4.命令实例:

备份并打包压缩 (只备份hu这个数据库)

innobackupex  --defaults-file=/home/DB/mysql/my.cnf   --user=root --password=xxxxx  --database=hu  --stream=tar  /var/backups/ 2>/var/backups/hu.log   | gzip 1> /var/backups/hu.tar.gz

整库备份。(一次性备份所有的数据库)

  1. innobackupex --defaults-file=/etc/my.cnf    --user=root --password=cdqd  /var/backups/ 

(root为数据库用户名,cdqd为数据库密码,/etc/my.cnf为mysql配置文件所在位置,/var/backups/为备份文件存储目录)

恢复

 首先停掉数据库,然后删除数据库目录下的所有数据库文件。

首先写日志文件,然后恢复,如下。(注:2010-04-17_22-19-30是自动生成的以备份时间命名的文件夹,恢复时根据情况进行选择)

  1. # innobackupex  --defaults-file=/etc/my.cnf  --apply-log  /var/backups/2010-04-17_22-19-30 (写日志)

  2. # innobackupex   --defaults-file=/etc/my.cnf  --copy-back   /var/backups/2010-04-17_22-19-30 (恢复)


然后去你的备份目录查看是否有备份的文件,然后还需要更改权限(这步我是cd到原数据库目录下进行的)

#chown -R mysql:mysql *


重启数据库,开恢复是否成功。

二 增量备份与恢复

在这里为了表述清楚我们做两次增量备份。

为student表插入数据,为增量备份做基础。

mysql>use hu;
mysql>create table student (`id` int(4),`name` char(40),`values`char(40)) 
mysql> INSERT INTO student (Name) VALUES ('XiaoHei3'),('XiaoHei4');

完全备份:

innobackupex  --defaults-file=/etc/my.cnf  --user=root --password=123456   /data/backup

备份完成之后产生这个

2015-03-23_23-19-24/  文件夹,这是完全备份的目录


第一次增量备份,--incremental-basedir=指的是完全备份所在的目录。/backup是备份的目录

INSERT INTO student (Name) VALUES ('XiaoHei1'),('XiaoHei2');


[root@localhost /]#

 
innobackupex --incremental  /backup --incremental-basedir=/backup/2015-03-23_23-19-24/


执行完这个之后会产生一个2015-03-23_23-21-49/  ,第二次增量备份指定它就可以


mysql>

 INSERT INTO student (Name) VALUES ('XiaoHei5'),('XiaoHei6');


第二次增量备份,--incremental-basedir=指的是第上一次增量备份所在的目录,这里指第一次,以此类推。

[root@localhost /]# 
innobackupex --incremental /backup --incremental-basedir=/backup/2015-03-23_23-21-49/

 

步骤三:准备完全备份和增量备份
增量备份完成,下面要准备完全备份和增量备份。
--redo-only后面是完全备份所在目录。
--incremental-dir指增量备份所在目录,若有多个,按时间先后执行多次。

[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-21-49/    --incremental-dir指向第一次增量备份目录
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-22-44/  --incremental-dir指向第二次增量备份目录



步骤四:模拟mysqld故障
[root@localhost /]# service mysqld stop
Shutting down MySQL. SUCCESS! 

[root@localhost /]# rm -rf /mydata/data/*

步骤五:恢复数据

[root@localhost data]# innobackupex --copy-back /backup/2015-03-23_23-19-24/ (第一次全备份的目录)

然后进入到备份目录查看是否有备份文件存在


注意:恢复数据后,在重启mysqld前,需要修改数据目录权限,默认是root用户,root组,需要改为mysql用户,mysql组。
[root@localhost data]# chown -R mysql.mysql ./*

service mysqld start

mysql> use hu;

Database changed
mysql> select * from student;
+----+-------------------+---------------+
| ID | Name              | Course        |
+----+-------------------+---------------+
|  1 | xiaoming          | English       |

|  2 | xiaohong          | Kuihuabaodian |

| 16 | XiaoHei1          |               |
| 17 | XiaoHei2          |               |
| 18 | XiaoHei3          |               |
| 19 | XiaoHei4          |               |
| 20 | XiaoHei5          |               |
| 21 | XiaoHei6          |               |
+----+-------------------+---------------+
9 rows in set (0.00 sec)

可以看到所有数据都完好无损,至此,备份恢复操作都已完成。




免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

xtrabackup如何备份mysql数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

xtrabackup 实现MySQL数据库备份

mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的 数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。 这时就 需要一种好用又高效的工具,xtrabackup就是其
xtrabackup 实现MySQL数据库备份
2018-06-08

XtraBackup MySql 数据备份和恢复

1.wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.12-
XtraBackup MySql 数据备份和恢复
2017-01-22

MySQL如何使用Xtrabackup备份

这篇文章给大家分享的是有关MySQL如何使用Xtrabackup备份的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。01 背景 Xtrabackup是Percona公司开发的一款开源的MySQL热备份工具,之
2023-06-14

编程热搜

目录