注:innobackupex会根据/et/my.cnf来确定MySQL的数据位置。
1.普通备份:
innobackupex [--defaults-file=/etc/my.cnf] –user=root [--host=192.168.1.52] [--password=xxx] [--
port=3306]
/data/back_data/ 2>/data/back_data/1.log
备份的目录是/data/back_data/,
这里的2>/data/back_data/1.log,是将备份过程中的输出信息重定向到1.log
innobackupex-1.5.1 –slave-info …..
–slave-info会记录复制主日志的 复制点,便于重新做复制用。(用在备份从机器用)
备份后的文件:
xtrabackup_binlog_info — 存放binlog的信息。(binlog需要另外拷贝备份,如果需要binlog的话)
xtrabackup_checkpoints — 存放备份的起始位置和结束位置。
恢复:
首先停掉数据库,然后删除数据库目录下的所有数据库文件.
cd /data/mysql_data
rm -rf * # 删除数据目录里的所有文件
innobackupex-1.5.1 –user=root –apply-log /data/back_data/2010-10-26_16-09-37 # 应用日志
innobackupex-1.5.1 –user=root –copy-back /data/back_data/2010-10-26_16-09-37
默认innobackupex-1.5.1会将二进制日志信息存放在文件xtrabackup_binlog_info中发(方便做Slave)。
cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务
2.打包(Tar)备份:
innobackupex-1.5.1 –user=root [--password=xxx] –stream=tar /data/back_data/2/ 2>/data/back_data/2.log
1>/data/back_data/2.tar
还原:
#cd /data/back_data/2/
#tar ixvf 2.tar
# ls
2.tar backup-my.cnf ibdata1 ibdata2 mablevi mysql xtrabackup_binlog_info xtrabackup_checkpoints
xtrabackup_logfile
准备还原
# innobackupex-1.5.1 –user=xxx [--password=xxx] –apply-log /data/back_data/
……
innobackupex: completed OK!
删除数据目录里的所有文件
rm -rf /data/mysql_data/*
拷贝:
# innobackupex-1.5.1 –user=xxx [--password=xxx] –copy-back /data/back_data/
……
innobackupex: completed OK!
cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务
3. 压缩(tar gzip)备份
innobackupex-1.5.1 –user=root [--password=xxx] –stream=tar
/data/back_data/2/ 2>/data/back_data/2.log | gzip > /data/back_data/2.tar.gz
这里使用了管道|将innobackupex-1.5.1作为gzip的标准输入。恢复,只需要使用tar -izxvf 解压对应的文件后,操作
完全同普通备份。
还原:
使用tar –izxvf 解压对应的文件后,操作完全同普通备份。
#cd /data/back_data/2/
#tar ixvf 2.tar
# ls
backup-my.cnf ibdata1 ibdata2 mablevi mysql xtrabackup_binlog_info xtrabackup_checkpoints
xtrabackup_logfile
准备还原:
# innobackupex-1.5.1 –user=xxx [--password=xxx] –apply-log /data/back_data/2/
……
innobackupex: completed OK!
删除数据目录里的所有文件
rm -rf /data/mysql_data/*
# innobackupex-1.5.1 –user=xxx [--password=xxx] –copy-back
/data/back_data/2/
cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务
———————————————————————————————————————
xtrabackup 备份和恢复
备份:
xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=/data/back_data/
恢复:
需要执行两次xtrabackup –prepare
xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/back_data/
xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/back_data/
注意,xtrabackup只备份数据文件,并不备份数据表结构(.frm),所以使用xtrabackup恢复的时候,你必须有对应表结
构文件(.frm)。
增量备份:
1. 全量备份
xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=/data/back_data/
2. 增量备份
xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=/data/back_data_inc/ –incremental-
basedir=/data/back_data/
在增量备份的目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份后被修改过的page,所以增量备
份只暂用较少的空间。
增量备份可以在增量备份的基础上增量。
增量备份恢复:
我们需要分别对全量、增量备份各做一次prepare操作。
xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/back_data/2010-10-26_16-09-37
xtrabackup –prepare –target-dir=/data/back_data/2010-10-26_16-09-37 –incremental-
dir=/data/back_data_inc
xtrabackup –prepare –target-dir=/data/back_data/ #这一步不是必须的
这样,/data/back_data/下的数据文件就可以直接放到你的MySQL数据目录下,恢复数据了。
再次提醒,xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。
rm -rf /data/mysql_data/ib*
cp -i /data/back_data/2010-10-26_16-09-37/ib* /data/mysql_data/
cd /data
chown -R mysql:mysql mysql_data/
2.innobackupex 与 xtrabackup 相结合
首先,innobackupex全备份:
innobackupex –user=root /data/back_data/ 2>/data/back_data/1.log #会生成一个时间文件夹,这里假如是
2010-10-29_15-57-44
然后,xtrabackup 做增量备份:
xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=/data/back_data_inc/4 –incremental-
basedir=/data/back_data/2010-10-29_15-57-44
恢复:
首先停掉数据库,备份二进制日志(如果有的话),然后删除数据库目录下的所有数据库文件.
cd /data/mysql_data
rm -rf * # 删除数据目录里的所有文件
恢复全量备份:
innobackupex –user=root –apply-log /data/back_data/2010-10-29_15-57-44 # 应用日志
innobackupex –user=root –copy-back /data/back_data/2010-10-29_15-57-44 # 拷贝文件
恢复增量备份:
xtrabackup –prepare –target-dir=/data/back_data/2010-10-29_15-57-44 –incremental-
dir=/data/back_data_inc/5
cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务。
另外,可以参考:
http://www.gaojinbo.com/mysql-dba%E9%A6%96%E9%80%89%E5%A4%87%E4%BB%BD%E5%B7%A5%E5%85%B7xtrabackup%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AEv1-1.html