教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 电脑教学 > 软件 >

Xtrabackup简介安装和使用

时间:2014-03-12 16:34来源:未知 作者:ken 点击:

简介:
  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
    Xtrabackup有两个主要的工具:xtrabackup、innobackupex
  (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
  (2)innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁
  (3)使用帮助:http://www.percona.com/docs/wiki/percona-xtrabackup:start

最新版本这里 http://www.percona.com/downloads/XtraBackup/ 下载

wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.3/source/percona-xtrabackup-2.1.3.tar.gz

tar zxvf percona-xtrabackup-2.1.3.tar.gz

yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel perl-DBD-MySQL

cd percona-xtrabackup-2.1.3

./utils/build.sh xtradb 执行 安装这里输入完整目录

cp innobackupex src/xtrabackup /usr/bin/

cp src/xtrabackup /usr/bin/xtrabackup_55

要执行以下命令 防止后面出错

 

备份数据

innobackupex –database=”tenddata” –password=root0000 –slave-info –user=root  –defaults-file=/usr/local/mysql3307/etc/my.cnf /backup

如果遇到下面的错误

xtrabackup: innodb_log_file_size = 5242880
xtrabackup: using O_DIRECT
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!

就将my.cnf 拷贝到/tmp/my.cnf 临时目录下 然后 添加innodb_log_file_size = 50331648

然后执行 站长教学网 eduyo.com

innobackupex –database=”tenddata” –password=root0000 –slave-info –user=root  –defaults-file=/tmp/my.cnf /backup

备份完以后会出现xtrabackup_binlog_info 文件 里面记录的是从库备份的信息

增量备份

innobackupex –user=root  –defaults-file=/usr/local/mysql3307/etc/my.cnf –database=”tenddata” –incremental –incremental-basedir=/tmp/2013-05-30_09-20-12 /tmp/

其中,–incremental指明是增量备份,–incremental-basedir指定上次完整备份或者增量备份文件的位置。这里的增量备份其实只针对的是InnoDB,对于MyISAM来说,还是完整备份。

如果出现备份错误提示xtrabackup:55 行错误 cp xtrabackup /usr/bin/xtrabackup_55

还原数据

innobackupex –user=root –password=root0000    –defaults-file=/usr/local/mysql3307/etc/my.cnf /backup/2013-05-28_18-40-14 –apply-log

innobackupex –user=root –password=root0000    –defaults-file=/usr/local/mysql3307/etc/my.cnf /backup/2013-05-28_18-40-14 –copy-back

还原数据的时候很麻烦 会出现因为需要datadir目录为空 所以建议只能先把/mysql/data3307 存放数据的目录mv 到别处 ,如果库多就更费劲了

 

增量恢复

增量备份恢复的步骤和完整备份恢复的步骤基本一致,只是应用日志的过程稍有不同。增量备份恢复时,是先将所有的增量备份挨个应用到完整备份的数据文件中,然后再将完整备份中的数据恢复到数据库中。命令如下

恢复完数据执行下/usr/local/mysql3306/bin/mysql_upgrade

innobackupex –user=root –defaults-file=/usr/local/mysql3306/etc/my.cnf parallel=8  –incremental  /tmp –incremental-basedir=/tmp/2013-05-30_12-12-08

–incremental-basedir 是上一次完整备份或增量备份的数据

还原测试的资料推荐(http://www.itpub.net/thread-1612540-1-1.html)

 

如果出现错误xtrabackup: Error: Please set parameter ‘datadir’ 但是又不能修改datadir 因为要重启的缘故 所以可以copry my.cnf /tmp/my.cnf 一个假文件 在里面加入datadir=/mysql/data3307的参数即可

执行备份innobackupex –database=”tenddata” –password=root0000 –slave-info –user=root  –defaults-file=/tmp /my.cnf /backup

出现如下错误:ERROR: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr/bin/innobackupex line 1397

 

cp /usr/local/mysql3306/include/mysql/* /usr/include/

cp -rf /usr/local/mysql3306/include/mysql/* /usr/include/

cp libmysql* /usr/lib64/

即可

如果上面方法还不行
那就试试下面的方法
解决方法:
rpm -qa |grep -i dbd
rpm -qa |grep -i dbi

查找出来后执行:
rpm -e –nodeps perl-DBD-MySQL
rpm -e –nodeps perl-DBI
然后执行:
yum install -y perl-DBD-MySQL 即可

(责任编辑:ken)
TAG标签: Xtrabackup
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容