您的位置:首页 > 其它

利用xtrabackup进行增量备份和增量恢复的实验

2016-05-20 23:00 489 查看
一.xtrabackup下载安装

下载:http://www.percona.com/redir/downloads/XtraBackup

并解压到/usr/local下:

tar -xvf percona-xtrabackup-2.0.7-552.tar.gz -C /usr/local/

chown -R mysql:mysql /usr/local/percona-xtrabackup-2.0.7

工具说明:

innobackupex –同时支持备份innodb和myisam

xtrabackup –只备份innodb

二.备份前准备

将/usr/local/percona-xtrabackup-2.0.7/bin加入到.bash_profile环境变量PATH中:

export LANG=zh_CN.GB18030

export PATH=/mysql/server/mysql/bin:$PATH

export PATH=/mysql/server/mysql/scripts:$PATH:/usr/local/percona-xtrabackup-2.0.7/bin

为了安全起见,先建立专用备份账号,并授给相应的权限:

(system@localhost) [(none)]> create user
xtrabk@'localhost' identified by 'onlybackup';

Query OK, 0 rows affected (0.00 sec)

grant reload,lock tables,Replication client,super on *.* to
xtrabk@'localhost';

三.备份操作

1.全量备份:

innobackupex --defaults-file=/mysql/server/conf/my.cnf --user=xtrabk --password='onlybackup' /mysql/backup/

2.增量备份前,先作如下操作:

(system@localhost) [jssdb]> create table t_idb1(name varchar(20),chan varchar(20));

Query OK, 0 rows affected (0.01 sec)

(system@localhost) [jssdb]> insert into jssdb.t_idb1 values(null,'a');

Query OK, 1 row affected (0.01 sec)

(system@localhost) [jssdb]> insert into jssdb.t_idb1 values(null,'b');

Query OK, 1 row affected (0.00 sec)

3.执行增量备份:

[mysql@mvxl0782 backup]$ innobackupex --defaults-file=/mysql/server/conf/my.cnf --user=xtrabk --password='onlybackup' --incremental --incremental-basedir=/mysql/backup/2015-07-03_20-51-25 /mysql/backup/backup_rec

--incremental-basedir指定全量备份的路径.

我们是否可以在增量备份的基础上再做增量备份呢?答案是肯定的,只要把--incremental-basedir改为执行上一次增量备份的目录即可

四.恢复操作

全量备份路径:

/mysql/backup/2015-07-03_20-51-25

增量备份路径:

/mysql/backup/backup_rec/2015-07-03_22-59-33

cnf文件最好也要备份一下

先关闭mysql:

[mysql@mvxl0782 jssdb]$ mysqladmin -u system -p shutdown

将数据文件主目录data改名为data_old

Cd /mysql/server

mv data data_old

mkdir data

准备恢复步骤:

全量恢复准备:

[mysql@mvxl0782 server]$ innobackupex --defaults-file=/mysql/server/conf/my.cnf --apply-log --redo-only /mysql/backup/2015-07-03_20-51-25/

--redo-only---如果还有增量备份,需要指这个参数

可以加--use-memory=20参数

或用innobackupex --defaults-file=/mysql/server/conf/my.cnf —copy-back --rsync /mysql/backup/2015-07-03_20-51-25/

增量恢复准备:

[mysql@mvxl0782 server]$ innobackupex --defaults-file=/mysql/server/conf/my.cnf --apply-log /mysql/backup/2015-07-03_20-51-25/ --incremental-dir=/mysql/backup/backup_rec/2015-07-03_22-59-33

执行恢复步骤:

innobackupex --defaults-file=/mysql/server/conf/my.cnf --copy-back /mysql/backup/2015-07-03_20-51-25

验证恢复是否成功:

(system@localhost) [(none)]> use jssdb

Database changed

(system@localhost) [jssdb]> show tables;

+-----------------+

| Tables_in_jssdb |

+-----------------+

| ld_cmd |

| ld_sql |

| servers |

| t_idb1 |

+-----------------+

4 rows in set (0.00 sec)

(system@localhost) [jssdb]> select * from t_idb1;

+------+------+

| name | chan |

+------+------+

| NULL | a |

| NULL | b |

+------+------+

2 rows in set (0.00 sec)

(system@localhost) [jssdb]>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: