innobackupex 備份 Xtrabackup 增量備份

Mysql增量備份
Xtrabackup中包含兩個工具:
        xtrabackup - 用於熱備份innodb, xtradb表的工具,不能備份其他表(MYISAM表)。
        innobackupex - 對xtrabackup封裝的perl腳本,提供了myisam表備份的能力。(能進行整庫和數據表備份)。
*注:備份恢復之前請做好全庫備份
安裝Xtrabackup
官網網址http://www.percona.com/doc/percona-xtrabackup/index.html
安裝
配置文件中需要添加 datadir = /usr/local/mysql/datadir  //MYSQL數據文件目錄
1、自動安裝 YUM 源後,用YUM安裝

yum install -y gnupg
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
yum install -y percona-xtrabackup


2、手動寫入YUM源
新建文件 /etc/yum.repos.d/Percona.repo

[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1

之後YUM安裝 ,安裝後可執行xtrabackup -v 查看
之後可以用xtrabackup 備份


一、innobackupex 備份全庫
備份主程序爲 /usr/bin/innobackupex-1.5.1,其需要從 mysql 配置文件中讀取相關信息,Mysql缺省配置文件 my.cnf 中未配置 datadir 選項,必須顯性添加,否則備份程序會報錯:

innobackupex:: Warning: Ignored unrecognized line 2 in options : 'xtrabackup: Error: Please set parameter 'datadir'
在論壇Mysql 配置文件 /etc/my.cnf 配置文件添加 datadir 內容:

在[mysqld]段加入

datadir = /usr/local/mysql/var

1、備份

#/usr/bin/innobackupex-1.5.1 --user=root --password=password --defaults-file=/etc/my.cnf /usr/local/bbsBackup

2、恢復

#/usr/bin/innobackupex-1.5.1 --apply-log  /usr/local/bbsBackup/2011-09-26_02-00-01/
#/usr/bin/innobackupex-1.5.1 --copy-back /usr/local/bbsBackup/2011-09-26_02-00-01/
#chown -R mysql:mysql /usr/local/mysql/
#/etc/init.d/mysqld start


二、全量備份及恢復
備份
注:使用xtrabackup,僅限InnoDB和xtradb表,且注意mysql配置文件my.cnf中需設置“default_table_type = InnoDB”否則不成功

#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --backup  --target-dir=/usr/local/bbsBackup/base/

恢復時執行兩次:

1、

#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/bbsBackup/base
#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/bbsBackup/base

2、

//將數據庫停掉
#/etc/init.d/mysqld stop
//刪除數據庫目錄下的ib*(ib開頭的所有)文件。
#rm  /usr/local/mysql/var/ib*
//將/usr/local/bbsBackup/base目錄下的ib*文件拷貝到數據庫目錄。
#cd /usr/local/mysql/var/
#cp /usr/local/bbsBackup/base/ib* ./

3、設置權限:

#chown mysql:mysql ib*

重啓數據庫後測試,是否成功。

三、增量備份及恢復
注:做增量前當然要先進行全量備份,在全量的基礎上來進行增量。
首先進行全量備份。

#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --backup  --target-dir=/usr/local/bbsBackup/base/

在全量備份的基礎上進行增量。

#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/usr/local/bbsBackup/1 --incremental-basedir=/usr/local/bbsBackup/base/

注:/usr/local/bbsBackup/1是每次都需修改的。比如第二次增量就改成/usr/local/bbsBackup/2增量恢復。(步驟同全量恢復,只是在執行恢復命令的時候中間多一步)
1、

#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/bbsBackup/base
#/usr/bin/xtrabackup --target-dir=/usr/local/bbsBackup/base  --prepare --incremental-dir=/usr/local/bbsBackup/1
#/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/bbsBackup/base

2、

//將數據庫停掉
#/etc/init.d/mysqld stop
//刪除數據庫目錄下的ib*(ib開頭的所有)文件。
#rm  /usr/local/mysql/var/ib*
//將/usr/local/bbsBackup/base目錄下的ib*文件拷貝到數據庫目錄。
#cd /usr/local/mysql/var/
#cp /usr/local/bbsBackup/base/ib* ./

3、設置權限:

#chown mysql:mysql ib*

重啓數據庫後測試,是否成功。

參考自:http://xikder.blog.51cto.com/blog/1423200/309339

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章