一、
安装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
七、注意数据库的恢复验证