mysql當(dāng)然可以使用它本身的雙機(jī)熱備,但只有一臺(tái)服務(wù)器就不能使用雙機(jī)熱備,這里說一下熱備工具Xtrabackup
xtrabackup-1.5下載地址http://download.csdn.net/detail/zzaihl/3794181
xtrabackup 是 percona 的一個(gè)開源項(xiàng)目,可以熱備份innodb ,XtraDB,和MyISAM(會(huì)鎖表)
官方網(wǎng)址http://www.percona.com/docs/wiki/percona-xtrabackup:start
1、工具安裝
將文件解壓后,目錄里安裝上兩個(gè)有用的工具:xtrabackup,innobackupex-1.5.1:
xtrabackup可以在不加鎖的情況下備份innodb數(shù)據(jù)表,不過此工具不能操作myisam。
innobackupex-1.5.1是一個(gè)腳本封裝,能同時(shí)處理innodb和myisam,但在處理myisam時(shí)需要加一個(gè)讀鎖。
按如上的介紹,由于操作myisam時(shí)需要加讀鎖,這會(huì)堵塞線上服務(wù)的寫操作,而innodb沒有這樣的限制,所以數(shù)據(jù)庫中innodb表類型所占的比例越大,則越有利。實(shí)際應(yīng)用中一般是直接使用innobackupex-1.5.1方法,它主要有三種操作方式,按手冊中的介紹:
Usage:
innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME]
[--password=WORD] [--port=PORT] [--socket=SOCKET] [--no-timestamp]
[--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar]
[--defaults-file=MY.CNF]
[--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR
innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF]
[--ibbackup=IBBACKUP-BINARY] BACKUP-DIR
innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR
(1)第一個(gè)命令行是熱備份mysql數(shù)據(jù)庫。
(2)帶有--apply-log選項(xiàng)的命令是準(zhǔn)備在一個(gè)備份上啟動(dòng)mysql服務(wù)。
(3)帶有--copy-back選項(xiàng)的命令從備份目錄拷貝數(shù)據(jù),索引,日志到my.cnf文件里規(guī)定的初始位置。
下面說一下備份和恢復(fù)命令
2、備份數(shù)據(jù)庫
1.普通備份:
innobackupex-1.5.1 [--defaults-file=/etc/my.cnf]
例如我們把數(shù)據(jù)庫備份到/home/mysql/back中
export PATH=$PATH:/home/xtrabackup-1.5/bin
/home/xtrabackup-1.5/bin/innobackupex-1.5.1 --user=mysql--password=mysql /home/mysql/back
這里需要注意一點(diǎn),使用命令前,先要設(shè)置環(huán)境變量
3、恢復(fù)數(shù)據(jù)庫
首先停掉數(shù)據(jù)庫,然后刪除數(shù)據(jù)庫目錄下的所有數(shù)據(jù)庫文件.
service mysql stop
cd /data/mysql_data
rm -rf *
/opt/gjnp/xtrabackup-1.5/bin/innobackupex-1.5.1 --copy-back /home/mysql/back/backfile-dir
默認(rèn)innobackupex-1.5.1會(huì)將二進(jìn)制日志信息存放在文件xtrabackup_binlog_info中發(fā)(方便做Slave)。
cd /data
chown -R mysql:mysql mysql_data/
service mysql start