1.Xtrabackup工具介紹:
Xtrabackup是一個對InnoDB做資料備份的工具,支援線上熱備份(備份時不影響資料讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。
Xtrabackup有兩個主要的工具:xtrabackup和innobackupex
xtrabackup隻能備份InnoDB和XtraDB兩種資料表,而不能備份MyISAM資料表
innobackupex是參考了InnoDB Hotbackup的innoback腳本修改而來的,innobackupex是一個perl腳本封裝,封裝了xtrabackup。主要是為了友善的 同時備份InnoDB和MyISAM引擎的表,但在處理myisam時需要加一個讀鎖。并且加入了一些使用的選項。
2.Xtrabackup安裝:
最簡單是的PRM包,下面采用二進制包的方法進行安裝
1.解壓軟體包
[root@nagios opt]# tar -zxvf xtrabackup-1.6.3.tar.gz
2.把解壓的軟體包移動到/usr/local/目錄裡面并重命名為 xtrabackup
[root@nagios opt]# mv xtrabackup-1.6.3 /usr/local/xtrabackup
3.修改環境變量
[root@nagios opt]# export PATH=$PATH:/usr/local/xtrabackup/bin
在備份資料庫的時候出現下面錯誤
[root@nagios bin]# pwd
/usr/local/xtrabackup/bin
[root@nagios bin]# ./innobackupex-1.5.1 --port=3306 --tmpdir='/tmp/mysql' --defaults-file='/etc/my.cnf' --database='firstdb'--user='root' --password='mysql' /root/db_backups
innobackupex-1.5.1:: Warning: Ignored unrecognized line 2 in options : 'xtrabackup: Error: Please set parameter 'datadir'
innobackupex-1.5.1: fatal error: no 'mysqld' group in MySQL options
innobackupex-1.5.1: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options
在資料庫的配置檔案裡面添加或修改資料庫存放目錄:
[root@nagios bin]# cat /etc/my.cnf |grep datadir
datadir = /usr/local/mysql/data
3.Xtrabackup完整備份資料庫
./innobackupex-1.5.1
--ibbackup='/usr/local/xtrabackup/bin/xtrabackup' */xtrabackup 檔案所在目錄
--port=3306 */mysql資料庫端口
--tmpdir='/tmp/mysql' */mysql資料庫mysql.sock 檔案存放目錄
--defaults-file='/etc/my.cnf' */mysql資料庫配置檔案
--database='firstdb' */備份的mysql資料庫,可以備份多個資料庫,每個資料庫用空格分隔,用雙引号引起來
--user='root' */mysql資料庫使用者名
password='mysql' */mysql資料庫密碼
/root/db_backups */mysql備份資料存放目錄
完整備份并打包
./innobackupex-1.5.1 --port=3306 --tmpdir='/tmp/mysql' --defaults-file='/etc/my.cnf' --database='firstdb' --user='root' --password='mysql' --stream=tar /root/db_backups |gzip /root/db_backups/*.*.tar.gz
4.Xtrabackup還原資料庫
1.停止資料庫服務
/etc/init.d/mysqld stop
2.删除資料庫存儲目錄
rm -rf /usr/local/mysql/data/firstdb
3.還原備份資料庫日志
[root@nagios bin]# ./innobackupex-1.5.1 --port=3306 --tmpdir='/tmp/mysql' --defaults-file='/etc/my.cnf' --user='root' --password='mysql' --apply-log /root/db_backups/2011-11-04_21-04-32/
4.還原備份資料庫資料
[root@nagios bin]# ./innobackupex-1.5.1 --port=3306 --tmpdir='/tmp/mysql' --defaults-file='/etc/my.cnf' --user='root' --password='mysql' --copy-back /root/db_backups/2011-11-04_21-04-32/
5.修改資料庫的權限後重新啟動資料庫
[root@nagios data]# pwd
/usr/local/mysql/data
[root@nagios data]# chown -R mysql:mysql *
[root@nagios data]# /etc/init.d/mysqld start
本文轉自 sfzhang 51CTO部落格,原文連結:http://blog.51cto.com/sfzhang88/851935,如需轉載請自行聯系原作者