程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Xtrabackup備份和恢復MySQL

Xtrabackup備份和恢復MySQL

編輯:關於MYSQL數據庫

一、 使用說明

1. 備份

InnoDB配置說明:

innodb_data_home_dir = ./
innodb_data_file_path = ibdata1:50M:autoextend
innodb_log_group_home_dir = ./
innodb_log_files_in_group = 4
innodb_log_file_size = 104857600

備份命令:

$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/1/ $cd /u01/xtrabackup/1/ && ls
ibdata1 test xtrabackup_checkpoints xtrabackup_logfile

2. 恢復

需要執行兩次xtrabackup --prepare

$xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/1/ $xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/1/ $cd /u01/xtrabackup/1/ && ls
ibdata1 ib_logfile0 ib_logfile1 ib_logfile2 ib_logfile3 test xtrabackup_checkpoints xtrabackup_logfile

這時候,InnoDB的全部數據文件就已經恢復了。將這些數據文件,拷貝回你的MySQL數據文件的位置就可以了。需要注意的 是,xtrabackup只備份數據文件,並不備份數據表結構(.frm),所以使用xtrabackup恢復的時候,你必須有對應表結構文件 (.frm)。

二、 增量備份

對比innobackupex和xtrabackup我們可以看到,innobackupex操作起來更方便,但是innobackupex會有短 暫的鎖表(時間依賴於MyISAM大小)。xtrabackup備份還有另一個重要特性:增量備份。(未來的版本innobackupex也可能增長該功 能)

1. 全量備份

$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/2/ $ls /u01/xtrabackup/2/
ibdata1 test xtrabackup_checkpoints xtrabackup_logfile

2. 增量備份

$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/2.1/ --incremental-basedir=/u01/xtrabackup/2/ $ls /u01/xtrabackup/2.1/
ibdata1.delta test xtrabackup_checkpoints xtrabackup_logfile

在增量備份的目錄下,數據文件都是以.delta結尾的。增量備份只備份上一次全量備份之後被修改過的page,所以增量備份一般只暫用較少的空間。

$cd /u01/xtrabackup/ && du --max-depth=1 -h
428K ./2.1
935M ./2

3. 增量備份恢復

我們需要分別對全量、增量備份各做一次prepare操作。

$xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/2/ $xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ --incremental-dir=/u01/xtrabackup/2.1/ $xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ #這一步不是必須的

這樣,/u01/xtrabackup/2/下的數據文件就可以直接放到你的MySQL數據目錄下,恢復數據了。

再次提醒,xtrabackup只備份InnoDB數據文件,表結構是不備份的,所以恢復的時候,你必須有對應表結構文件(.frm)。

參考文獻
[1]. http://www.percona.com/docs/wiki/percona-xtrabackup:start

[2].http://www.orczhou.com/index.PHP/2009/10/xtrabackup-2/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved