Xtrabackup是由percona提供的mysql數據庫備份工具,據官方介紹,這也是世界上唯一一款開源的可以對innodb和xtradb數據庫進行熱備的工具mysql
簡介 sql
Xtrabackup是由percona提供的mysql數據庫備份工具,據官方介紹,這也是世界上唯一一款開源的可以對innodb和xtradb數據庫進行熱備的工具。特色: 數據庫
(1)備份過程快速、可靠; vim
(2)備份過程不會打斷正在執行的事務; 服務器
(3)可以基於壓縮等功能節約磁盤空間和流量; ide
(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 ... up-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