xtrabackup 安装使用

作者: admin 分类: mysql 发布时间: 2013-05-29 17:29 ė 6 没有评论

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

 

然后执行

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 即可

本文出自 小Q,转载时请注明出处及相应链接。

本文永久链接: http://www.linuxqq.com/archives/991.html

0
更多
Ɣ回顶部