萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> XtraBackup備份恢復mysql數據庫的例子

XtraBackup備份恢復mysql數據庫的例子

Xtrabackup是一個對InnoDB做數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。


Xtrabackup有兩個主要的工具:xtrabackup、innobackupex

(1)xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不能備份MyISAM數據表

(2)innobackupex-1.5.1則封裝了xtrabackup,是一個腳本封裝,所以能同時備份處理innodb和myisam,但在處理myisam時需要加一個讀鎖


1、下載安裝

http://www.percona.com/downloads/XtraBackup/LATEST/

percona-xtrabackup-2.2.9-5067.el6.x86_64.rpm

在centos6.4_x64上安裝

yum localinstall percona-xtrabackup-2.2.9-5067.el6.x86_64.rpm

安裝完生成

[root@localhost tmp]# rpm -ql percona-xtrabackup
/usr/bin/innobackupex
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
/usr/share/doc/percona-xtrabackup-2.2.9
/usr/share/doc/percona-xtrabackup-2.2.9/COPYING
/usr/share/man/man1/innobackupex.1.gz
/usr/share/man/man1/xbcrypt.1.gz
/usr/share/man/man1/xbstream.1.gz
/usr/share/man/man1/xtrabackup.1.gz

官方幫助文檔

http://form.percona.com/rs/percona/images/PerconaXtraBackup-2.2.9.pdf?aliId=26490527

2、進行完整備份

備份必須連接mysql,相關選項有
–host=127.0.0.1指定服務器ip
–port=3306指定端口

–socket=/tmp/mysql.sock 如果是本機可以只指定套接字文件的路徑
備份可以使用管理員帳號,也可開放一個權限最小的帳號

grant user 'bkpuser'@'localhost' identified by '123';
grant reload,lock tables,replication client on *.* to 'bkpuser'@'localhost';
flush privileges;

進行一次完整備份,需要指定的相關選項有
–defaults-file=/usr/local/mysql/my.cnf 指定使用的配置文件
指定備份所存放的目標目錄,例如 /tmp

innobackupex --user=root --password=root --socket=/tmp/mysql.sock --defaults-file=/usr/local/mysql/my.cnf /tmp

3、進行增量備份

進行第一次增量備份,需要在有一次完整備份的基礎上進行
–incremental /root/one 指定增量備份存放的目標目錄
–incremental-basedir=/tmp 指定完整備份的目錄


innobackupex --user=root --password=root --socket=/tmp/mysql.sock --defaults-file=/usr/local/mysql/my.cnf --incremental /root/one --incremental-basedir=/tmp

進行第二次增量備份,需要指定上一次增量備份的目錄

–incremental /root/two                         指定這次增量備份目錄
–incremental-basedir=/root/one          知道上次增量備份目錄


innobackupex --user=root --password=root --socket=/tmp/mysql.sock --defaults-file=/usr/local/mysql/my.cnf --incremental /root/two --incremental-basedir=/root/one

4、還原一個增量備份

創建好的完整備份不能直接用來還原數據庫,需要對數據做一些准備工作,其中包括一些已經提交的事務的重放,未提交事務的回滾。
–apply-log 准備還原備份的選項
–use-memory=4G 設置准備還原數據時使用的內存,可以提高准備所花費的時間
指定備份的數據目錄

innobackupex --apply-log --use-memory=4G /tmp

還原數據,需要指定配置文件,默認會還原到/var/lib/mysql,並且保證,my.cnf中設置的數據目錄下沒有任何文件

innobackupex --copy-back --defaults-file=/usr/local/mysql/my.cnf /tmp

copyright © 萬盛學電腦網 all rights reserved