# 第二次增量备份
innobackupex --defaults-file=/etc/my.cnf --no-timestamp --port=3306 --user=backup --password=backup --incremental --incremental-basedir=/backupdir/bak_data/one_backup /backupdir/bak_data/two_backup >/backupdir/bak_data/innoback.log 2>&1
# 第三次增量备份
innobackupex --defaults-file=/etc/my.cnf --no-timestamp --port=3306 --user=backup --password=backup --incremental --incremental-basedir=/backupdir/bak_data/two_backup /backupdir/bak_data/three_backup >/backupdir/bak_data/innoback.log 2>&1
2、恢复
# 备份应用日志,保证数据一致,将增量备份的合并到全备上,恢复使用全备恢复
是否用--redo-only --apply-log 组合参数,我也搞不清,测试用和不用--redo-only,感觉数据都没有问题?????
# 全备应用日志
innobackupex --defaults-file=/etc/my3308.cnf --apply-log /backupdir/bak_data/full_bak
# 第一次的增量备份应用日志,应用完日志后,将合并到全备上,恢复使用全备恢复
innobackupex --defaults-file=/etc/my3308.cnf --apply-log /backupdir/bak_data/full_bak --incremental-dir=/backupdir/bak_data/one_backup
# 第二次的增量备份应用日志,应用完日志后,将合并到全备上,恢复使用全备恢复
innobackupex --defaults-file=/etc/my3308.cnf --apply-log /backupdir/bak_data/full_bak --incremental-dir=/backupdir/bak_data/two_backup
# 第二次的增量备份应用日志,应用完日志后,将合并到全备上,恢复使用全备恢复
innobackupex --defaults-file=/etc/my3308.cnf --apply-log /backupdir/bak_data/full_bak --incremental-dir=/backupdir/bak_data/three_backup
# 此时三次增量备份其实都合并到全备上了,恢复是只需要使用全备进行恢复就可以了。
# 模拟数据故障[删除数据库的数据目录,执行如下命令还原]
innobackupex --defaults-file=/etc/my3308.cnf --copy-back /backupdir/bak_data/full_bak
# 恢复后的数据默认权限是有问题的,所以需要修改数据目录权限,如下
chown -R mysql:mysql /var/lib/mysql3308/
# 此时数据恢复完成,重启数据库服务,进行测试就可以了。
五、错误处理
特别说明:
如果出现如下错误,说明没有装 dbi和dbd
innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_file=/etc/my.cnf;mysql_read_default_group=xtrabackup' as 'root' (using password: YES).
innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr/bin/innobackupex line
则按如下步骤进行操作:
Percona Toolkit 的安装:
1、下载percona toolkit的包:(可以是源码包,或者RPM)
访问:http://www.percona.com/software/percona-toolkit/ 下载最新稳定的版本。也可以如下命令行的方式下载最新版本。
wget percona.com/get/percona-toolkit.tar.gz
wget percona.com/get/percona-toolkit.rpm
2、安装于Perl相关的模块
yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL
3、安装Percona Toolkit
rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm
OK,就这么简单,安装完毕。
安装错误:在yum install perl-DBD-MySQL时,出现如下错误信息
---> Package perl-DBD-MySQL.x86_64 0:3.0007-2.el5 set to be updated
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15()(64bit) for package: perl-DBD-MySQL
--> Running transaction check
---> Package mysql.x86_64 0:5.0.95-5.el5_9 set to be updated
--> Processing Conflict: mysql conflicts MySQL
--> Finished Dependency Resolution mysql-5.0.95-5.el5_9.x86_64 from updates has depsolving problems mysql conflicts with MySQL-server
Error: mysql conflicts with MySQL-server
由于我安装的是5.6.xx的MySQL版本,而系统自带的是5.1xx版本的,而libmysqlclient.so.15是由5.0版本提供的,所以就 出错了。如果你的系统是centos6.X系列的,MySQL自带的为5.1以上,可能不会出现这个问题了。解决方案如下:
rpm -ivh MySQL-s