天天看點

xtrabackup 多執行個體MySQL備份

 因為mysql做了多執行個體,是以配置檔案有所不同,現在我做的是從一個單執行個體的資料庫恢複到一個多執行個體的資料庫裡面,弄了挺久.網上找到這位大哥的文章,可以參考下.

1.在原來的資料庫做備份

innobackupex --user=root --defaults-file=/etc/my.cnf    /data/backup 

備份成功會有ok提示

2.使用指令scp -r /data/backup/.* root@ip:/data/backup

拷貝到遠端機子上,目标資料庫

3.這裡有點難搞,因為是多執行個體,是以有兩個[mysqld1],[mysqld2],我想改個其他的執行個體名,試過沒有成功,哪位指點下?配置的檔案目錄被我改成了/etc/my.cnf,友善啟動mysqld_multi start,删除my.cnf的user,password參數.下面很重要

分别為兩個執行個體建立cnf,如/tmp/my1.cnf,/tmp/my2.cnf

sed -n '/mysqld2/=' /etc/my.cnf,找到行數n,再用指令sed -n '4,n-1p' /etc/my.cnf>/tmp/my1.cnf

完了之後,vi /tmp/my1.conf,把[mysqld1]--->[mysqld]

在恢複時,注意要先關閉伺服器,并且将 datadir 的目錄先清空,在恢複資料後一定需要重置該目錄的權限

mysqld_multi stop 

mv /data/mysql1 /data/mysq1.bak

mkdir /data/mysql1

innobackupex --apply-log /data/backup

innobackupex --copy-back  /data/backup

chown -R mysql:mysql /data/mysql1我剛開始沒做,沒成功

4.重新啟動

mysqld_multi start,show databases,對比下,就知道了.

在操作的過程中innobackupex --apply-log指令老是報錯,後來看說是一個BUG.

我安裝的是percona-xtrabackup-2.0.3-470.rhel5.i386.rpm,反正後面又可以了,不可以的話,直接複制資料目錄到/data/mysql1中.這樣弄完後,可以做個腳本去備份了.

本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1036162,如需轉載請自行聯系原作者