天天看點

開源Mysql熱備份工具Xtrabackup詳細學習手冊

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,如需轉載請自行聯系原作者