xtrabackup 备份断开后怎么继续备份

XtraBackup完全、增量备份及恢复
我的图书馆
XtraBackup完全、增量备份及恢复
XtraBackup完全、增量备份及恢复
Xtrabackup &是percona的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表),可以看做是InnoDB&Hotbackup的免费替代品。如此一来,就会在/usr/bin目录里安装上两个有用的工具:xtrabackup、innobackupex1)xtrabackup&只能备份InnoDB和XtraDB两种数据表,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作Myisam引擎表2)innobackupex &是一个脚本封装,封装了xtrabackup,能同时处理Innodb和Myisam,但在处理Myisam时需要加一个读锁。
获取软件包:
根据自己的系统决定:
如果你想使用源代码方式安装的话,,这是因为它采用的在MySQL源代码上打补丁构建的方式。
yum localinstall xtrabackup-1.5-11.rhel5.i386.rpm& --nogpgcheck
编译安装:tar zxf xtrabackup-1.4.tar.gzcd xtrabackup-1.4./configuremakecd innobase/xtrabackup/makemake install
如此一来,就会在你的/usr/bin目录里安装上两个有用的工具:xtrabackup,innobackupex-1.5.1:
xtrabackup可以在不加锁的情况下备份innodb数据表,不过此工具不能操作myisam。也可以备份xtraDBinnobackupex-1.5.1是一个脚本封装,能同时处理innodb和myisam,但在处理myisam时需要加一个读锁。
按如上的介绍,由于操作myisam时需要加读锁,这会堵塞线上服务的写操作,而innodb没有这样的限制,所以数据库中innodb表类型所占的比例越大,则越有利。实际应用中一般是直接使用innobackupex-1.5.1方法&
它主要有三种操作方式:&&&innobackup 热备份mysql数据库。&&&innobackup --apply-log 准备在一个备份上启动mysql服务。&&&innobackup --copy-back 从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置。
四、innobackupex备份与恢复
1.普通备份:备份course(myisam) 和class(innodb)&&mkdir /www/innodb&&innobackupex-1.5.1 --defaults-file=/f --user=root --port=3306 --database="course class" &&&&&/www/innodb/ 2&/www/innodb/backup1.log&
&使用mysql的root用户备份 &备份的目标目录是/www/backup/db/innobackup/,innobackupex-1.5.1将在该目录下生成备份 &--no-lock备份时不锁定表,--databases="course class"用于指定要备份的数据库 &2&/www/innodb/backup1.log,是将备份过程中的输出信息重定向到/www/innodb/backup1.log
恢复过程:&&mysql&&drop database course&&drop database class&&service mysqld stop&&rm -rf ibdata*&&rm -rf ib_logfile*&&echo "1" &/proc/sys/vm/drop_caches&&service mysqld start&&innobackupex-1.5.1 --apply-log --defaults-file=/f --user=root --port=3306 /www/innodb/_06-51-05/ & &&&&innobackupex-1.5.1 --copy-back --defaults-file=/f --user=root --port=3306 /www/innodb/_06-51-05/ &&service mysqld stop&&chown -R mysql:mysql /mydata&&chown -R :root /mydata/mysql&&service mysqld start&&连接mysql 查看数据是否恢复
2.压缩(tar gzip)备份 ,支持远程主机的备份&&innobackupex-1.5.1 --defaults-file=/f --user=root --port=3306 --database="course class" && --stream=tar&/www/innodb/ 2&/www/innodb/backup2.log | gzip & /www/innodb/2.tar.gz & &&恢复:&&恢复过程,只需要使用tar izxvf 解压对应的文件后,操作完全同普通备份。 &&service mysqld start&&tar ixvf /www/innodb/2.tar.gz&&innobackupex-1.5.1 --apply-log --defaults-file=/f --user=root --port=3306 /www/innodb/2 & &&innobackupex-1.5.1 --copy-back --defaults-file=/f --user=root --port=3306 /www/innodb/2&&chown -R mysql:mysql /mydata&&service mysqld restart
&五、xtrabackup备份与恢复 xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm) &mysql&use class&alter table stu engine=innodb
1.普通备份 &&mkdir -p /www/xtrabackup/&&xtrabackup --defaults-file=/f --backup& --target-dir=/www/xtrabackup/&&cp -r /mydata/class& /www/xtrabackup
&模拟恢复过程 &&mysql && &&service mysqld stop &&cd /mydata&&rm rf ibdata1 &&rm rf ib_logfile* &&echo "1" &/proc/sys/vm/drop_caches &&&&xtrabackup --default-file=/f --prepare --target-dir=/www/xtrabackup/&&cp -r /www/xtrabackup/ibdata1 /mydata/&&cp -r /www/xtrabackup/class /mydata/&&chown -R mysql:mysql /mydata&&chown -R :root /mydata/mysql&&service mysqld start&&mysql&&use class&&select *
2增量备份mkdir /www/xtrabackup/&&xtrabackup --default-file=/f --backup --target-dir=/www/xtrabackup/2011&& &--incremental-basedir=/www/xtrabackup/
恢复:&&mysql && &&service mysqld stop &&cd /mydata&&rm rf ibdata1 &&rm rf ib_logfile* &&echo "1" &/proc/sys/vm/drop_caches &&xtrabackup --default-file=/f --prepare --target-dir=/www/xtrabackup/&&xtrabackup --default-file=/f --prepare --target-dir=/www/xtrabackup/&&&--incremental-basedir=/www/xtrabackup/&&cp -r /www/xtrabackup//ib* /mydata/&&cp -r /www/xtrabackup//class /mydata&&chown -R mysql:mysql /mydata& &&chown -R :root /mydata/mysql&&service mysqld start&&mysql&&use class&&select *
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢博客访问: 5664076
博文数量: 393
博客积分: 9600
博客等级: 上校
技术积分: 18814
注册时间:
2007年开始从事运维方面的工作,经历过网络管理员、linux运维工程师、DBA、分布式存储运维等多个IT职位。对linux运维、mysql数据库、分布式存储有丰富的经验。2012年加盟腾讯,目前在腾讯负责腾讯云数据库平台和分布式存储运维平台的运维规划工作。
微信:feihongwuhen
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Mysql/postgreSQL
使用Xtrabackup来备份你的mysql
一、Xtrabackup的基础知识:
有个商业的InnoDB Hotbackup,可以对InnoDB引擎的表实现在线热备。而 percona出品的Xtrabackup,是InnoDB Hotbackup的一个开源替代品,可以在线对InnoDB/XtraDB引擎的表进行物理备份。mysqldump支持在线备份,不过是逻辑备份,效率比较差。xtrabackup是开源的MySQL备份工具,物理备份,效率很不错。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。Xtrabackup做备份的时候不能备份表结构、触发器等等,智能纷纷.idb数据文件。另外innobackupex还不能完全支持增量备份,需要和xtrabackup结合起来实现全备的功能。
网上看到的很多教程都是错误的,因此自己摸索实践了下,记录下来,希望对大家有所帮助!
二、Xtrabackup的安装
CentOS release 5.5& 64bit
2.获取安装包:
#centOS4.6版本用这个
#centOS5.0以上版本用这个
编译好的二进制包:
rpm方式安装:
rpm –ivh xtrabackup-0.9.5rc-50.rhel5.x86_64.rpm
编译包的二进制包方式安装:
tar xzvf xtrabackup-0.9.tar.gz
cp xtrabackup-0.9/bin/* /usr/bin/
安装完成以后觉得更改你的/f配置文件制定数据目录,因为Xtrabackup是根据你的/f配置文件来获取你备份的文件,比如在/f的[mysqld] 下添加datadir=/data/dbdata/,然后重启mysql。
三、innobackupex的使用
Ø正常备份:
innobackupex-1.5.1 --user=root --password=123 /home/db_backup/
2>>/home/db_backup/db_backup.log
执行后会在/home/db_backup目录下自动生成一个备份目录,比如/home/db_backup/_20-22-39
Ø正常还原:
/etc/rc.d/init.d/mysqld stop
rm –rf& /data/dbdata/*
#生成ib_logfile文件
innobackupex-1.5.1
--apply-log /home/db_backup/_20-22-39
#还数据到mysql的数据目录
innobackupex-1.5.1 –copy-back
/home/db_backup/_20-22-39
#还原过去后默认是root权限,因此修改属组和属主
chown –R mysql.mysql /data/dbdata
/etc/rc.d/init.d/mysqld start
四、Innobackupex和xtrabackup结合实现全被+增量备份
Ø使用Innobackupex做完全备份:
innobackupex-1.5.1& --user=root&
--password=123456&
/home/db_backup/
假如备份后生成的目录为:_01-43-35
备份后可查看检查点的信息:
Cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0:0
to_lsn = 6:
Ø使用xtrabackup做增量备份:
xtrabackup --backup
--target-dir=/home/db_backup/2 --incremental-basedir=/home/db_backup/_21-01-24/
其中2为增量备份的目录
备份后查看检查点的信息:
cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 6:
to_lsn = 6:
#可以看到增量备份是从全备的检查点开始进行增量备份的!
还原:还原之前,停掉mysqld,然后清空数据目录!恢复的顺序不太一样
Ø使用innobackupex-1.5.1进行apply-log
innobackupex-1.5.1 --user=root& --apply-log /home/db_backup/_21-01-24
Ø使用xtrabackup将增量备份应用到全备目录_21-01-24中去
xtrabackup
--prepare --target-dir=/home/db_backup/_21-01-24/
--incremental-dir=/home/db_backup/2
增量备份应用以后,可以到_21-01-24目录下去看下检查点的信息,比如:
backup_type = full-prepared
from_lsn = 0:0
to_lsn = 6:
# to_lsn = 6:变成了6:
Ø使用innobackupex-1.5.1进行还原
innobackupex-1.5.1 --user=root&& --copy-back
/home/db_backup/_21-01-24
执行这一步后,大功告成,呵呵!
/Linux/69.htm
/henbo/archive//1745521.html
/wp-content/uploads/2009/10/xtrabackupe4bb8be7bb8d-1.pdf
阅读(24331) | 评论(3) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
众多文章中,此文算不错的
请教下楼主,第三步中,rm&–rf&&/data/dbdata/*&意思是删除dbdata下所有文件,同时也包括进程pid文件,那么,在执行/etc/rc.d/init.d/mysqld&start&不会报错嘛?
很好的, 收藏了
推荐一个博客,提供很多免费软件编程电子书下载:
http://free-
请登录后评论。博客访问: 1703068
博文数量: 629
博客积分: 6356
博客等级: 准将
技术积分: 6395
注册时间:
器量大者,福泽必厚
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
1:安装,为了方便,我使用的是二进制版本
tar zxvf&percona-xtrabackup-2.1.3-608.tar.gz
mv percona-xtrabackup-2.1.3&&/usr/local
cd /usr/local&
ln -s &percona-xtrabackup-2.1.3 & &xtrabackup
到此安装已经完成
./xtrabackup_55:
error while loading shared libraries: libaio.so.1: cannot open shared object
file: No such file or directory
解决方法:见附件
即使用:yum -y install libaio-devel
&完全备份:
上面的命令有问题,正确的命令为:
/usr/local/xtrabackup/bin/xtrabackup_55& --user=root --password=k*****1 --backup
--target_dir=/home/innodbbackup/& >
/home/innodbbackup.log 2>&1
###创建一个完全备份
/home/innodbbackup/
目录可以不存在,如果不存在,自己可以创建!
备份的过程写入到/home/innodbbackup.log文件里!
更详细的备份过程,查看/home/innodbbackup.log 即可 !
备份后,去备份目录里面查看,见附件
或使用另外一个工具,
/usr/local/xtrabackup/bin/innobackupex & &--defaults-file=/f &--user=root --password=k*****01 &/home/innodbbackup/ &> /home/innodbbackup.log 2>&1
这时提示有问题,见附件
解决方法:
cp& /usr/local/xtrabackup/bin/*& /usr/bin
再次执行上面的命令,提示无法创建目录,见附件
innobackupex:
Error: Failed to create backup directory
/home/innodbbackup//_00-06-58: No such file or directory at
/usr/local/xtrabackup/bin/innobackupex line 389
解决方法 :
mkdir /home/innodbbackup
上面是对所有的db进行完全的备份,如果仅仅需要备份其中的某个库或某个库的某个表,如下:
备份某个库中的某个表:
/usr/local/xtrabackup/bin/innobackupex
--include='^db1[.]rtmp*****new'&
--user=root --password=ku****01 /home/innodbbackup
显然只是备份了db1.rtmp****new这张表,但其他的db还是会有的,尽管db是空的!
这个也可以实现对某个db的备份,只需要把单个表的表名替换成*即可
&/usr/local/xtrabackup/bin/innobackupex --include='^db1[.]*' &--user=root --password=k****01 /home/innodbbackup
2.2:增量备份:
innobackupex --incremental /home/incremental/
--incremental-basedir=/home/innodbbackup/_00-10-26/&& --user=root --password=k*****01
2.3:恢复数据
我在test库中,创建一个最简单的表,往表中插入了3条数据,然后执行一次全备份。接着我将test库给删除了。
我准备使用权备份恢复,大概过程如下:
显然恢复的时候,必须使得var目录为空,并且mysql服务处于关闭状态,如果是在线状态,恢复不了!
drop database test;
/data/mysql/var
rm &-fr &*
/etc/init.d/mysqld &stop
[root@web1 var]#
/usr/local/xtrabackup/bin/innobackupex&&
--user=root --password=k****01 --copy-back&& /home/innodbbackup/_01-52-26/
InnoDB Backup Utility v1.5.1-
Innobase Oy
and Percona Ireland Ltd .& All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June
IMPORTANT: Please check that the copy-back run
completes successfully.
&&&&&&&&&&
At the end of a successful copy-back run innobackupex
&&&&&&&&&&
prints "completed OK!".
cd /data/mysql/var
chown & –R mysql: & *
然后启动mysql ,/etc/init.d/mysql start
登录到机器上,查看记录数发现和以前记录数一样!
这两个工具的区别,见附件
阅读(1969) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。Xtrabackup备份和恢复MySQL(上)
<div class="gray post" title="T14:40:33+-09-2 &|& 14:40分类:,&&|&&标签:&&|&&
来自:TaobaoDBA 日星期三
摘要:本文介绍了XtraBackup的安装(编译安装)和使用。是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具的一个很好的。本文测试使用的是0.8版本,与当前最新版本是0.9。Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。本文仅仅介绍了innobackupex的备份和恢复。
+++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++
测试主机OS:Linux RHEL AS 3
MySQL InnoDB环境:innodb_data_file_path = ibdata1:1G;ibdata2:1G;ibdata3:1G
初始化数据:
CREATE TABLE items(id INT,var1 VARCHAR(10));
#使用脚本随机插入约1000万数据
下载XtraBackup:
这里下载的是0.8版本的源码包
下载MySQL源码包:
因为是编译安装XtraBackup,需要使用MySQL的源代码
二、 编译安装
你也可以下载对应平台的二进制版本XtraBackup,免去编译安装的步骤,不过目前二进制版本支持的平台并不多,所以这里列出编译的步骤。
tar zxvf mysql-5.0.85.tar.gz #解压源码包
tar zxvf xtrabackup-0.8-src.tar.gz #解压源码包
mv xtrabackup-0.8-src ./mysql-5.0.85/ innobase/ #将XtraBackpu移到InnoDB的源码目录
#如果使用的是MySQL5.1,目录改为/mysql-5.1.*/ storage/innobase/
cd mysql-5.0.85/ innobase #进入源代码目录
patch –p2 & . /xtrabackup-0.8-src/fix_innodb_for_backup.patch #给InnoDB源码打上补丁
#如果使用的是MySQL5.1,使用fix_innodb_for_backup51.patch
cd .. #进入目录mysql-5.0.85
./configure
make #我们只需要Make就可以了,不需要Make install
cd innobase/xtrabackup-0.8-src
make #编译XtraBackup;MySQL5.1要使用XtraBackup0.9
编译成功后,我们会获得可执行文件xtrabackup、innobackupex。为了方便使用,分别将其拷贝到某个$PATH路径下。(我这里/u01/mysql/bin/是$PATH路径的一部分)
cp xtrabackup /u01/mysql/bin/
cp innobackupex-1.5.1 /u01/mysql/bin/
安装中要注意的问题:
编译XtraBackup;MySQL5.1要使用XtraBackup0.9。
另外,使用MySQL5.1编译,需要简单的修改一下XtraBackup的Makefile:
#MySQL 5.0
#INC= -I. -I.. -I./../include -I./../../include
#INNODBOBJS=
#MySQL 5.1
MYSQLOBJS=
安装完成后,我们就可以使用命令innobackupex来备份我们的数据库了。
XtraBackup使用脚本innobackupx-1.5.1来备份你的数据库。关于innobackupx-1.5.1的详细参数,请参考。这里列出比较常用的备份命令:普通备份、打包(Tar)备份、压缩(Tar gzip)备份。
需要注意的是,innobackupex-1.5.1会根据你的/f配置,来确定你的MySQL数据位置(datadir),所以你并不需要告诉innobackupex-1.5.1你的MySQL数据在哪儿。
1. 普通备份
innobackupex-1.5.1 &#45;&#45;user=root &#45;&#45;password=123 /u01/backup/1/innobackup/ 2&/u01/backup/1/1.log
备份时间3分38秒;3G的表空间,InnoDB Free 2595840 Kb。
这里我们使用mysql的root用户备份,密码为123。备份的目标目录(target dir)是/u01/backup/1/innobackup/,innobackupex-1.5.1将在该目录下生成备份。例如/u01/backup/1/innobackup/_11-59-29就是我执行脚本后生成的备份,所有的备份文件都在该./_11-59-29目录下。
这里的2&/u01/backup/1/1.log,是将备份过程中的输出信息重定向到1.log。另外innobackupex-1.5.1还支持增量备份,这里并没有测试使用。
那如何恢复呢?为了模拟恢复过程,我先将MySQL停止,并删除MySQL的data目录下所有数据文件。
cd mysql/data/ ;rm –rf *;
innobackupex-1.5.1 &#45;&#45;apply-log /u01/backup/1/innobackup/_11-59-29
innobackupex-1.5.1 &#45;&#45;apply-log /u01/backup/1/innobackup/_11-59-29
innobackupex-1.5.1 &#45;&#45;copy-back /u01/backup/1/innobackup/_11-59-29
cd /u01/mysql/data/
chown -R mysql:dba . #(这时候可能还需要修改datadir修改文件的所有者)
命令innobackupex-1.5.1需要指定具体哪个备份目录,先应用备份log,然后copy back。这里的备份目录是/u01/backup/1/innobackup/_11-59-29。恢复时间约3分钟。
值得一提的是,默认innobackupex-1.5.1会将二进制日志信息存放在文件xtrabackup_binlog_info中发(方便做Slave)。
innobackupex-1.5.1会根据/f来确定MySQL的数据位置。
2. 打包(Tar)备份
这里基本和前面的普通备份类似,就不做详细说明了,之列出对应的命令。值得一提的是,恢复解压缩时,必须使用-i参数。
innobackupex-1.5.1 &#45;&#45;user=root &#45;&#45;password=123 &#45;&#45;stream=tar /u01/backup/2/ 2&/u01/backup/2.log 1&/u01/backup/2/2.tar
大约2分55秒。这里使用1&做标准输出重定向。
tar –ixvf 2.tar #解压压缩 这里-i参数是必须的。
innobackupex-1.5.1 &#45;&#45;apply-log /u01/backup/2/innobackup
innobackupex-1.5.1 &#45;&#45;copy-back /u01/backup/2/innobackup
cd /u01/mysql/data/
chown -R mysql:dba . #(这时候可能还需要修改datadir修改文件的所有者)
mysqld_safe &#45;&#45;user=mysql &
3. 压缩(tar gzip)备份
innobackupex-1.5.1 &#45;&#45;user=root &#45;&#45;password=123 &#45;&#45;stream=tar /u01/backup/1/ 2&/u01/backup/2.log | gzip & /u01/backup/1/1.tar.gz
大约3分钟。这里使用了管道|将innobackupex-1.5.1作为gzip的标准输入。它的恢复过程,只需要使用tar –izxvf 解压对应的文件后,操作完全同普通备份。
四、 关于XtraBackup
XtraBackup还在快速的成长阶段,由维护。这里列出一些相关资源:
Google Group:
Launchpad:
Ningoo.net:
喜欢本文,那就收藏到:}

我要回帖

更多关于 xtrabackup 增量备份 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信