MySQL之Xtrabackup备份恢复数据库(四)

2014-11-24 11:51:53 · 作者: · 浏览: 1
/my.cnf --no-timestamp --port=3306 --user=backup --password=backup --incremental --incremental-basedir=/backupdir/bak_data/full_bak /backupdir/bak_data/one_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/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