使用xtrabackup做数据库的增量备份
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/