xtrabackup實現原理與innodb的recovery原理類似。
主要特點:
1. 線上熱備份。可以備份innodb和myisam。innodb主要應用recovery原理。myisam直接拷貝檔案。
2. 支援流備份。可以備份到disk,tape和reomot host。–stream=tar ./ | ssh user@remotehost cat “>” /backup/dir/
3. 支援增量備份。可以利用lsn和基礎備份目錄來進行增量備份。
4. 支援記錄slave上的master log和master position資訊。
5. 支援多個進程同時熱備份,xtrabackup的穩定性還是挺好的。
可以找到很多關於xtrabackup使用的文章,但是提到使用innobackupex做增量備份比較少。
這裡介紹一下使用innobackupex做增量備份的步驟:
xtrabackup的版本:xtrabackup-1.6.tar.gz
http:/www.percona.com/downloads/XtraBackup/XtraBackup-1.6/Linux/binary/x86_64/
備份和恢複的步驟:
#Step 1: 做一個全備份
./innobackupex –defaults-file=/tmp/mysqld.cnf –no-timestamp –socket=/tmp/mysql.sock –user=admin –password=admin $backupdir/full
#Step 2: 基於全備份做一個增量備份
./innobackupex –defaults-file=/tmp/mysqld.cnf –no-timestamp –socket=/tmp/mysql.sock –user=admin –password=admin –incremental –incremental-basedir=$backupdir/full/ $backupdir/inc1
#Step 3: 基於全備份和第一個增量備份做第二次增量備份
./innobackupex –defaults-file=/tmp/mysqld.cnf –no-timestamp –socket=/tmp/mysql.sock –user=admin –password=admin –incremental –incremental-basedir=$backupdir/inc1/ $backupdir/inc2
#Step 4: 恢複全備份
./innobackupex $backupdir/full/ –apply-log
#Step 5: 基於全備份進行第一次增量備份的恢複
./innobackupex $backupdir/full/ –incremental –incremental-dir=$backupdir/inc1/ –apply-log
#Step 6: 基於全備份和第一次增量備份,恢複第二次增量備份
./innobackupex $backupdir/full/ –incremental –incremental-dir=$backupdir/inc2/ –apply-log
#Step 7: 將恢複好的資料按照設定檔的需求拷貝到相應目錄
./innobackupex –defaults-file=/tmp/mysqld2.cnf $backupdir/full/ –copy-back
一些提示:
http:/www.orczhou.com/index.php/2010/04/xtrabackup-tips/