【Mysql】xbackup全量與增量備份恢復
XtraBackup提供了增量備份和恢復的功能
背景:
實驗是在原部落格的基礎上做的!http://blog.itpub.net/7607759/viewspace-700064/
tom庫下面有張t1表
-
mysql> create table t1(id int(10));
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql> insert into t1 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
做個全備
- [root@node2 tom]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 /xback/full/
-
[root@node2 xback]# ls full/
2015-10-20_21-04-43
-----用來備份的使用者只需要這些許可權即可,可不用root:grant reload,lock tables,replication client on *.*
tom下新建表t2
-
mysql> create table t2(id int(10));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into t1 values(1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t2 values(1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t1;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
mysql> select * from t2;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
- [root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --incremental --incremental-basedir=/xback/full/2015-10-20_21-04-43/ /xback/inc/
-
[root@node2 xback]# ls inc
2015-10-20_21-06-04
--以全備為基礎做一次增量備份
- 關庫,創造恢復環境
- [root@node2 mysql]# /etc/init.d/mysqld stop
- [root@node2 lib]# mv mysql mysql_bak4
-
[root@node2 lib]# mkdir mysql
兩個實驗都是在以上背景的基礎上做的!
實驗一:全量恢復(此時只是恢復到了t,而t2表示還沒有恢復的)
Prepare完整備份集:
- [root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --apply-log /xback/full/2015-10-09_01-09-54/
恢復
- [root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --copy-back /xback/full/2015-10-09_01-09-54/
-
[root@node2 xback]# chown mysql:mysql mysql -R
啟動檢視資料庫
-
mysql> show tables
-> ;
+---------------+
| Tables_in_tom |
+---------------+
| t |
+---------------+
1 row in set (0.00 sec)
實驗二:增量恢復(恢復到t2)
-
直接恢復增量集
-
[root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --apply-log /xback/full/2015-10-09_01-36-06/ --incremental-dir=/xback/inc/2015-10-09_01-37-32/
-
-
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
-
and Percona Inc 2009-2011. All Rights Reserved.
-
-
This software is published under
-
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
-
-
IMPORTANT: Please check that the apply-log run completes successfully.
-
At the end of a successful apply-log run innobackupex
-
prints "completed OK!".
-
-
-
-
151009 01:39:57 innobackupex: Starting ibbackup with command: xtrabackup_55 --defaults-file="/etc/my.cnf" --prepare --target-dir=/xback/full/2015-10-09_01-36-06 --incremental-dir=/xback/inc/2015-10-09_01-37-32/
-
-
xtrabackup_55 Ver 1.6 Rev undefined for 5.5.9 Linux (i686)
-
incremental backup from 0 is enabled.
-
xtrabackup: cd to /xback/full/2015-10-09_01-36-06
-
xtrabackup: This target seems to be not prepared yet.
-
xtrabackup: error: applying incremental backup needs target prepared. --報錯 需要target
-
innobackupex: Error:
- innobackupex: ibbackup failed at /usr/bin/innobackupex line 336.
那好,那先恢復全量再恢復增量
-
[root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --apply-log --redo-only
- /xback/full/2015-10-09_01-36-06/ ---Prepare全量備份集:
- [root@jonn xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --apply-log --redo-only /xback/full/2015-10-20_21-04-43/ --incremental-dir=/xback/inc/2015-10-20_21-06-04/ Prepare增量備份(其實到這後面的都可以不用做了,直接用mv的方式即可)
- [root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --apply-log /xback/full/2015-10-09_01-36-06/ ---回滾那些未提交的事務,這一步中innobackupex也會自動建立innodb日誌檔案:
- [root@node2 xback]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=ESBecs00 --copy-back /xback/full/2015-10-09_01-36-06/ ---恢復完成
-
-
開啟mysql檢視
- chown mysql:mysql mysql -R
-
mysql> show tables;
+---------------+
| Tables_in_hhh |
+---------------+
| t1 |
+---------------+
1 row in set (0.00 sec)
-
mysql> select * from t1;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
mysql> select * from t2;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
恢復成功
--提示:一定要使用高版本的percona-xtrabackup-2.2.12-1.el6.x86_64 最好是2.2版本或以上啊。。我用的2.2以下的TM的t2怎麼都恢復不出來~~~~一個bug....我做了好多遍實驗
完整備份並打包:
- innobackupex --user=root --password=MySQLPASSWORD --defaults-file=/etc/my.cnf --database=test --stream=tar /mysqlbackup > /mysqlbackup/dbbackup20110809.tar
其中,--stream指定流的格式,目前只支援tar。
完整備份並打包壓縮:
- innobackupex --user=root --password=MySQLPASSWORD --defaults-file=/etc/my.cnf --database=test --stream=tar /mysqlbackup/ | gzip /mysqlbackup/dbbackup20110809.tar.gz
完整備份到遠端主機:
- innobackupex --user=root --password= MySQLPASSWORD --defaults-file=/etc/my.cnf --database=test --stream=tar /mysqlbackup | ssh root@remote-host cat ">" /mysqlbackup/dbbackup20110809.tar
更快的方式:可參考:http://mp.weixin.qq.com/s/TxveGZK9o2QBEJbx1Vd9MA
-
安裝lz4這個壓縮工具,這個工具號稱壓縮能達到300M+/s,解壓能達到1G/s。配合xtrabackup自帶的--stream=[tar|xbstream]引數,該引數可以把備份的資料輸出到標準輸出,而lz4支援標準輸出,這樣也可以實現和測試(3)一樣的效果。由於lz4的壓縮效能比諸如gzip、bzip2之流快太多,這裡就不對比了,留給讀者做gzip和bzip2的測試,會發現慢太多
- [root@hostnfsd :/root]$ innobackupex --defaults-file=/data/mydata/my_3307.cnf --user=root --password=dkhfdt#@Ladl123 --parallel=4 --stream=xbstream . | lz4 -B4 > bak
解壓:
[root@hostnfsd :/root]$ cat bak | lz4 -d -B7 | xbstream -x -C ./bbk/
在上面的基礎上透過ssh傳輸
[root@hostnfsd :/root]$ cat bak | lz4 -d -B7 | xbstream -x -C ./bbk/
在上面的基礎上透過ssh傳輸
- [root@hostnfsd :/tmp]$ innobackupex --defaults-file=/data/mydata/my_3307.cnf --user=root --password=dkhfdt#@Ladl123 --parallel=4 --stream=xbstream . | lz4 -B4 |ssh 218.78.186.162 "cat - > /soft/back.0110"
補充,
概念/多個增量備份等可以看下面的這篇部落格~~~
http://blog.csdn.net/heizistudio/article/details/23937935
一篇比較好的部落格
http://www.itpub.net/thread-1612540-1-1.html
FAQ:啟動過程中報告InnoDB資料頁發生損壞
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1813711/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql之 Innobackupex(全備+增量)備份恢復MySql
- MySQL 5.6 xtrabackup 全量和增量的備份和恢復MySql
- MySQL innobackupex全量備份恢復MySql
- MySQL增量備份與恢復例項MySql
- mysql innobackupex增量備份恢復MySql
- Percona XtraBackup 實現全備&增量備份與恢復
- Percona XtraBackup 2.4 xtrabackup全量、增量備份恢復流程
- Percona XtraBackup 2.4 innobackupex全量、增量備份恢復流程
- 【MySql】innobackupex增量備份和恢復MySql
- 【MySql】innobackupex 增量備份和恢復MySql
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- mysql 利用binlog增量備份、恢復MySql
- MySQL備份與恢復MySql
- MySQL 備份與恢復MySql
- 使用innobackupex線上增量備份和再增量備份及恢復mysql資料庫MySql資料庫
- INNOBACKUPEX的全備和增量備份恢復學習筆記筆記
- MySQL運維實戰之備份和恢復(8.1)xtrabackup全量備份MySql運維
- Mysql備份系列(2)--mysqldump備份(全量+增量)方案操作記錄MySql
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- Mysql的備份與恢復MySql
- Mysql 備份與恢復 二MySql
- oracle 增量備份恢復驗證Oracle
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- Mysql備份系列(3)--innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- MySQL 非常規恢復與物理備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- 入門MySQL——備份與恢復MySql
- 《入門MySQL—備份與恢復》MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- MySQL備份與恢復——實操MySql
- MySQL備份與恢復簡介MySql
- Effective MySQL之備份與恢復MySql
- innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- windows 全量+增量備份指令碼batWindows指令碼BAT
- mysqldump 全量和增量備份指令碼MySql指令碼
- Mysql備份恢復MySql