mysql xtrabackup 備份恢複實現分享
來源:互聯網
上載者:User
簡介
Xtrabackup是由percona提供的mysqlDatabase Backup工具,據官方介紹,這也是世界上惟一一款開源的能夠對innodb和xtradb資料庫進行熱備的工具。特點:
(1)備份過程快速、可靠;
(2)備份過程不會打斷正在執行的事務;
(3)能夠基於壓縮等功能節約磁碟空間和流量;
(4)自動實現備份檢驗;
(5)還原速度快;
Xtrabackup中包含兩個工具:
* xtrabackup - 用於熱備份innodb, xtradb表的工具,不能備份其他表。
* innobackupex - 對xtrabackup封裝的perl指令碼,提供了MyISAM表備份的能力。(能進行整庫和資料表備份)。
使用innobakupex備份時,其會調用xtrabackup備份所有的InnoDB表,複製所有關於表結構定義的相關檔案(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相關檔案,
同時還會備份觸發器和資料庫配置資訊相關的檔案。這些檔案會被儲存至一個以時間命令的目錄中。
在備份的同時,innobackupex還會在備份目錄中建立如下檔案:
(1)xtrabackup_checkpoints —— 備份類型(如完全或增量)、備份狀態(如是否已經為prepared狀態)和LSN(記錄序號)範圍資訊;每個InnoDB頁(通常為16k大小)都會包含一個記錄序號,即LSN。LSN是整個資料庫系統的系統版本號碼,每個頁面相關的LSN能夠表明此頁面最近是如何發生改變的。
(2)xtrabackup_binlog_info —— mysql伺服器當前正在使用的二進位記錄檔及至備份這一刻為止二進位日誌事件的位置。
(3)xtrabackup_binlog_pos_innodb —— 二進位記錄檔及用於InnoDB或XtraDB表的二進位記錄檔的當前position。
(4)xtrabackup_binary —— 備份中用到的xtrabackup的可執行檔;
(5)backup-my.cnf —— 備份命令用到的配置選項資訊;
在使用innobackupex進行備份時,還可以使用--no-timestamp選項來阻止命令自動建立一個以時間命名的目錄;innobackupex命令將會建立一個BACKUP-DIR目錄來儲存備份資料。
二進位版本
http://www.percona.com/downloads/XtraBackup/
wget http://www.percona.com/downloads/XtraBackup/LATEST/binary/Linux/x86_64/percona-xtrabackup-2.0.3-470.tar.gz
tar zxvf percona-xtrabackup-2.0.3-470.tar.gz
cd percona-xtrabackup-2.0.3/bin
cp * /usr/bin/
本次使用的是mysql5.5.28安裝在此不敘述
建一個用於資料備份的目錄
mkdir -p /opt/mysql_bak/
修改資料庫設定檔:
vim /etc/my.cnf
datadir = /home/mysql/data/
mysqladmin -uroot password 123456
整庫備份:
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf /opt/mysql_bak/
單獨備份:
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=test /opt/mysql_bak
備份並打包壓縮:
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=test --stream=tar /opt/mysql_bak/ | gzip > /opt/mysql_bak/testdb.tar.gz
帶時間戳記
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=test --stream=tar /opt/mysql_bak/ | gzip > /opt/mysql_bak/`date +%F`_testdb.tar.gz