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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章