percona-xtrabackup安装及使⽤教程
安装percona-xtrabackup依赖包(前提已安装mysql)
yum -y install perl-CPAN perl-DBD-MySQL perl make gcc gcc-c++ patch libgcrypt libgcrypt-devel libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel zlib zlib-devel 安装Time::HiRes依赖包(不停的yes即可,其中会有warning,忽略即可)
perl -MCPAN -e 'install "Time::HiRes"'
tar -zvxf percona-xtrabackup-2.1.
cd percona-xtrabackup-2.1.5
AUTO_DOWNLOAD="yes" ./utils/build.sh innodb51 (mysql5.1版本)
或AUTO_DOWNLOAD="yes" ./utils/build.sh innodb55 (mysql5.5版本)
复制相应⽂件⾄/usr/bin⽬录
Mysql5.1
cp innobackupex /usr/bin/
cp src/xbcrypt /usr/bin/
cp src/xbstream /usr/bin/
cp src/xtrabackup_plugin /usr/bin/
cp src/xtrabackup_plugin /usr/bin/xtrabackup
Mysql5.5
cp innobackupex /usr/bin/
cp src/xbcrypt /usr/bin/
cp src/xbstream /usr/bin/
cp src/xtrabackup_innodb55 /usr/bin/
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup55
cp src/xtrabackup_innodb55 /usr/bin/xtrabackup_55
5.5版本备份全库
innobackupex --user=root --password=123456 /data/bak/
5.1版本备份全库(5.1版本需添加--ibbackup=xtrabackup 参数,否则备份会报错)
innobackupex --user=root --password=123456 --ibbackup=xtrabackup /data/mysqlbak/
压缩备份:
innobackupex --user=databak --password=123456 --ibbackup=xtrabackup --stream=tar /data/bak/ | gzip1 >/data/bak/
还原全库
准备还原
innobackupex --user=root --password --defaults-file=/etc/myf --apply-log /data/bak/2013-11-12_23-44-45/
开始还原
innobackupex --user=root --password --defaults-file=/etc/myf --copy-back /data/bak/2013-11-12_23-44-45/
重新赋权:
chown -R mysql:mysql /var/lib/mysql
启动mysql。
/etc/init.d/mysql start
增量备份:
基于⽬录的增备:
/data/bak/2013-11-12_23-44-45(全备⽬录)
innobackupex --user=root --password=123456--incremental /data/bak/ --incremental-basedir=/data/bak/2013-11-12_23-44-45
基于lns的增备(⽅法与基于⽬录的增备相同):
Lsn的值参照如下图所⽰:
innobackupex --user=root --password=123456 --incremental /data/bak/ --incremental-lsn=722499939
备份的时候提⽰Warning:
This procedure only affects XtraDB orInnoDB-based tables. Other tables with a different storage engine, e.g. MyISAM,will be copied entirely each time an incremental backup is performed.
官⽅提⽰:增量备份仅针对innodb和xtradb引擎,myisam在运⾏增量备份时实际上是完全复制的全备份(全备会锁全库)。
数据库还原(测试):
/etc/init.d/mysql stop;
mv  /var/lib/mysql /var/lib/mysqlbak(⼀般情况下,不要让rm成为习惯,习惯mv可以尽量避免误删操作)
准备还原:
innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05 --ibbackup=xtrabackup
将增量备份内容添加进全备份中
innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05 --incremental-dir=/data/bak/2013-11-12_16-59-42
innobackupex --apply-log --redo-only/data/bak/2013-11-12_16-49-05/ --incremental-dir=/data/bak/2013-11-12_17-01-11
innobackupex --apply-log /data/bak/2013-11-12_16-49-05
还原数据库:
mkdir /var/lib/mysql (2.1.5的版本不需要新建mysql⽬录,2.1.8开始要⾃⼰新建⼀个⽬录,否则会报错)
innobackupex --copy-back /data/bak/2013-11-12_16-49-05
重新赋权:
chown -R mysql:mysql /var/lib/mysql
启动mysql。
/etc/init.d/mysql start
Xtrabackup中的xtrabackup_binlog_info中记录了bin_log和pos的点,通过该值可实现主从。(⽤这种⽅式,对中⼩系统重做主从会⾮常⽅便,备份速度快,还原速度也快)
1.部署过程遇到的错误记录
patch: command not found
yum -y install patch
xbcrypt_common.c:24:20: error: gcrypt.h: Nosuch file or directory
yum -y install libgcrypt libgcrypt-devel
perl下载安装教程