首页 > 代码库 > xtrabackup 备份mysql数据库三: innobackupex 测试一个全量和两个增量的备份恢复测试
xtrabackup 备份mysql数据库三: innobackupex 测试一个全量和两个增量的备份恢复测试
## 查看当前库中表的数据
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
## 执行插入数据操作,该操作在全备之后执行完成
(root@localhost) [test]>call addTest(100000,0);
## 执行全库备份
# 备份文件夹:2014-06-19_20-53-41
# backup_type = full-backuped
# from_lsn = 0
# to_lsn = 3768612700
# last_lsn = 3788082769
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf /backup
## 全备备份完成后,等待addTest 执行完成后,检查数据量
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 100000 |
+----------+
1 row in set (0.03 sec)
## 再执行一个增量的备份
# 备份文件夹:2014-06-19_20-59-02
# backup_type = incremental
# from_lsn = 3768612700
# to_lsn = 3837968338
# last_lsn = 3837968338
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf --incremental --incremental-basedir=/backup/2014-06-19_20-53-41 /backup
## 在库中新建一个表
CREATE TABLE `t_innodb_1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`password` varchar(150) DEFAULT NULL,
`userstatus` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
Insert into t_innodb_1 select * from t_innodb where id<101;
(root@localhost) [test]>select count(*) from t_innodb_1;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.00 sec)
## 再执行一个增量的备份
# 备份文件夹:2014-06-19_21-05-02
# backup_type = incrementall
# from_lsn = 3837968338
# to_lsn = 838021951
# last_lsn = 3838021951
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf --incremental --incremental-basedir=/backup/2014-06-19_20-59-02 /backup
## 二次增量备份完成后,再次插入1000数据
(root@localhost) [test]>call addTest(1000,0);
Query OK, 1 row affected (0.32 sec)
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 101000 |
+----------+
1 row in set (0.03 sec)
## 停止MySQL服务
[mysql@rhel5 data]$ /etc/init.d/mysql stop
Shutting down MySQL.... [ OK ]
## 移动之前的数据目录
[mysql@rhel5 data]$ mkdir ../bak
[mysql@rhel5 data]$ mv auto.cnf ib* mysql* p* test zabbix/ ../bak
## Prepare 全备,使用--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /backup/2014-06-19_20-53-41/
## Prepare 第一个增量,使用--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --incremental-dir=/backup/2014-06-19_20-59-02/ /backup/2014-06-19_20-53-41/
## Prepare 第二个增量,最后一个增量不需要--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --incremental-dir=/backup/2014-06-19_21-05-02/ /backup/2014-06-19_20-53-41/
## 针对完整备份,执行一次Restore
innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2014-06-19_20-53-41/
## 启动数据库,检查mysqld-error.log有无异常
[root@rhel5 ~]# /etc/init.d/mysql start
Starting MySQL. [确定]
## 登陆检查数据,发现正常
(root@localhost) [test]>select count(*) from t_innodb_1;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.00 sec)
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 100000 |
+----------+
1 row in set (0.00 sec)
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
## 执行插入数据操作,该操作在全备之后执行完成
(root@localhost) [test]>call addTest(100000,0);
## 执行全库备份
# 备份文件夹:2014-06-19_20-53-41
# backup_type = full-backuped
# from_lsn = 0
# to_lsn = 3768612700
# last_lsn = 3788082769
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf /backup
## 全备备份完成后,等待addTest 执行完成后,检查数据量
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 100000 |
+----------+
1 row in set (0.03 sec)
## 再执行一个增量的备份
# 备份文件夹:2014-06-19_20-59-02
# backup_type = incremental
# from_lsn = 3768612700
# to_lsn = 3837968338
# last_lsn = 3837968338
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf --incremental --incremental-basedir=/backup/2014-06-19_20-53-41 /backup
## 在库中新建一个表
CREATE TABLE `t_innodb_1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`password` varchar(150) DEFAULT NULL,
`userstatus` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
Insert into t_innodb_1 select * from t_innodb where id<101;
(root@localhost) [test]>select count(*) from t_innodb_1;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.00 sec)
## 再执行一个增量的备份
# 备份文件夹:2014-06-19_21-05-02
# backup_type = incrementall
# from_lsn = 3837968338
# to_lsn = 838021951
# last_lsn = 3838021951
# compact = 0
innobackupex --user=bkpuser --password=s3cret --defaults-file=/etc/my.cnf --incremental --incremental-basedir=/backup/2014-06-19_20-59-02 /backup
## 二次增量备份完成后,再次插入1000数据
(root@localhost) [test]>call addTest(1000,0);
Query OK, 1 row affected (0.32 sec)
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 101000 |
+----------+
1 row in set (0.03 sec)
## 停止MySQL服务
[mysql@rhel5 data]$ /etc/init.d/mysql stop
Shutting down MySQL.... [ OK ]
## 移动之前的数据目录
[mysql@rhel5 data]$ mkdir ../bak
[mysql@rhel5 data]$ mv auto.cnf ib* mysql* p* test zabbix/ ../bak
## Prepare 全备,使用--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /backup/2014-06-19_20-53-41/
## Prepare 第一个增量,使用--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --incremental-dir=/backup/2014-06-19_20-59-02/ /backup/2014-06-19_20-53-41/
## Prepare 第二个增量,最后一个增量不需要--redo-only
innobackupex --defaults-file=/etc/my.cnf --apply-log --incremental-dir=/backup/2014-06-19_21-05-02/ /backup/2014-06-19_20-53-41/
## 针对完整备份,执行一次Restore
innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2014-06-19_20-53-41/
## 启动数据库,检查mysqld-error.log有无异常
[root@rhel5 ~]# /etc/init.d/mysql start
Starting MySQL. [确定]
## 登陆检查数据,发现正常
(root@localhost) [test]>select count(*) from t_innodb_1;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.00 sec)
(root@localhost) [test]>select count(*) from t_innodb;
+----------+
| count(*) |
+----------+
| 100000 |
+----------+
1 row in set (0.00 sec)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。