您的位置:首页 > 数据库 > MySQL

xtrabackup 备份mysql数据库三: innobackupex 测试一个全量和两个增量的备份恢复测试

2014-06-19 23:23 701 查看
## 查看当前库中表的数据

(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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: