一、

安装percona

http://www.percona.com/downloads/

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

源码安装:

cmake -DBUILD_CONFIG=xtrabackup_release 

make -j 4

make install

二进制安装:

tar -zxvf percona-xtrabackup-2.1.7-721-Linux-x86_64.tar.gz

cd percona-xtrabackup-2.1.7-Linux-x86_64

cd bin

mv ./* /usr/bin


二、完全备份

innobackupex --user=root --password='root' --defaults-file=/data/my.cnf --port=3306 --socket=/tmp/mysql.sock  --parallel=4    /data/xtrabackup/

完全备份恢复:

innobackupex --user=root --password='root' --defaults-file=/data/my.cnf    --parallel=4 --use-memory=4G --apply-log /data/xtrabackup/2013-10-29_09-05-25

innobackupex --user=root --password='root' --defaults-file=/data/my.cnf   --parallel=4 --copy-back  /data/xtrabackup/2013-10-29_09-05-25


三、增量备份

innobackupex --defaults-file=/data/my.cnf  --user=root --password='root' --incremental-basedir=/data/xtrabackup/2013-10-29_09-05-25 

--incremental /backup/mysql/data

innobackupex --defaults-file=/data/my.cnf  --user=root --password='root' --incremental-basedir=/data/xtrabackup/2013-10-30_09-05-25 

--incremental /backup/mysql/data

innobackupex --defaults-file=/data/my.cnf  --user=root --password='root' --incremental-basedir=/data/xtrabackup/2013-10-31_09-05-25 

--incremental /backup/mysql/data

若每周1-6做增量备份,那么--incremental-basedir 指定的目录就逐个往后推指定


四、增量备份恢复

innobackupex --apply-log --redo-only /data/xtrabackup/2013-10-29_09-05-25(全备目录)

innobackupex --apply-log --redo-only /data/xtrabackup/2013-10-29_09-05-25 --incremental-dir=/data/xtrabackup/2013-10-30_09-05-25(第一个增备目录)

innobackupex --apply-log /data/xtrabackup/2013-10-30_09-05-25 --incremental-dir=/data/xtrabackup/2013-10-31_09-05-25(最后一个赠备目录)

注意:--redo-only 在最后一个之前都要添加的选项


五、拷贝数据:

innobackupex --copy-back BASE-DIR (完备目录)


六、过程中可能遇到的错误

1、innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr/bin/innobackupex line 2976

此为perl-DBD-MySQL,没有安装

yum install -y perl-DBD-MySQL

这个错误也可能因在/etc/ld.so.conf.d/mysql-x86_64.conf 中写入了本地数据库的共享库,系统的innobackupex无法识别libmysqlclient_r.so.18.0.0

系统默认是libmysqlclient_r.so.16.0.0,故而将本地数据库的共享库去掉写入系统的数据库共享库/usr/lib64/mysql即可,然后执行:

ldconfig 重新加载共享库


2、innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_file=/data/my.cnf;

mysql_read_default_group=xtrabackup;port=3306;mysql_socket=/tmp/mysql.sock' as 'root'  (using password: YES).

innobackupex: Error: Failed to connect to MySQL server: DBI connect

(';mysql_read_default_file=/data/my.cnf;mysql_read_default_group=xtrabackup;port=3306;mysql_socket=/tmp/mysql.sock','root',...)

 failed: Access denied for user 'root'@'localhost' (using password: YES) at /usr/bin/innobackupex line 2943

这个错误出现在innobackupex --copy-back过程中,找了很长时间的原因,最后发现是因为配置文件中ibd相关文件的路径,应该将其指定在数据库安装路径下

而非某个数据库内,比如我的配置文件:

innodb_data_home_dir = /data/program/mysql5/data (这个指定是正确的)这是数据库的安装路径,而出错的原因是

innodb_data_home_dir = /data/program/mysql5/data/percona 我将其指定在了percona数据库目录下了

大家借鉴

3、注意备份的时候要在配置文件中指定数据库的安装目录:

[mysqld]

datadir         = /data/program/mysql5/data


七、注意数据库的恢复验证