使用Xtrabackup备份与还原mysql数据库

手册/FAQ (446) 2016-04-01 10:00:33

1压缩备份与解压

•备份:innobackupex  --user=root --port=3306--defaults-file=/etc/my.cnf --no-lock --socket=/data/mbdata/open/mysql.sock--stream=tar /home/backup/all/alldb  |gzip     1>/home/backup/all/alldb.tar.gz(40G 45分钟)

•解压缩:[root@localhost~]# tar -izxvfalldb.tar.gz-C backup

 

2. 恢复

•先停止数据库service mysqldstop;

•(1):innobackupex--apply-log --user=root --defaults-file=/etc/my.cnf --no-lock /root/alldb

•(2):备份并删除原目录/open/mbdata/open/下所有文件

•(3):innobackupex--copy-back --user=root --defaults-file=/etc/my.cnf --no-lock /root/alldb

    【】如果磁盘不够,直接[root@clonedb-m209alldb]#mv */data/mbdata/open/

•(4):chown-Rmysql:mysql/data/mbdata/open

•(5):service mysqldstart;

 

3增量备份

•必须要有未压缩的全量备份文件目录,先全量再增量

•(1):周一全量备份,

   time /usr/bin/innobackupex  --user=root --password=******--host=127.0.0.1 --port=3307 --defaults-file=/etc/my.cnf --slave-info  --socket=/data/mbdata/open/mysql.sock--no-timestamp /home/backup/all/alldb  2>$dirlog

•(2):剩下的周二到周日做增量备份;

 

4增量备份脚本

•time /usr/bin/innobackupex  --user=root --password=****   --socket=/data/mbdata/open/mysql.sock--port=3307  --slave-info--defaults-file=/etc/my.cnf --no-timestamp --safe-slave-backup --incremental --incremental-basedir=/home/backup/all/alldb/home/backup/daily/daily_20120409 2>>/home/backup/daily/dailybackup_$tday.log

 

5增量恢复(1)

•解压缩文件

•先全量恢复,然后增量恢复

•(1):首先恢复全备innobackupex--apply-log --user=root --defaults-file=/data/mbdata/my.cnf--no-lock /home/backup/all/alldb 

   PS:/home/backup/all/alldb是全量备份目录

•(2):再恢复增量备份innobackupex/home/backup/all/alldb--incremental –incremental dir=/home/backup/daily/daily_2012_03_22 --apply-log

   PS:/home/backup/daily/daily_2012_03_22是增量备份目录

•(3):停止数据库,servicemysqldstop;然后备份并删除原目录/open/mbdata/open/下所有文件

•(4):还原数据库到默认目录 innobackupex--copy-back --user=root --defaults-file=/etc/my.cnf --no-lock /home/backup/all/alldb

 

5增量恢复(2)

•(5):chown-R mysql:mysql/data/mbdata/open

•(6):service  mysqldstart;

•(7):登陆mysql,验证数据。

•总恢复时间:45分钟左右

 

6远程备份

•/usr/bin/innobackupex  --user=root --port=3306--defaults-file=/data/mbdata/open/my.cnf  --slave-info --socket=/data/mbdata/open/mysql.sock--no-timestamp --remote-host=root@10.100.200.53 --scpopt="-Cp-carcfour"/home/backup/all/alldb_$tday2>>/home/backup/all/allbackup.log

ps:$tday2为变量

 

THE END