现在我们可以很方便的用Xtrabackup取代ibbackup,作为innodb的在线热备工具使用。
通常,我们会选择在SLAVE上进行备份,以减小MASTER的压力。
innobackupex是封装后的perl脚本,用于调度xtrabackup进行备份,附加了不少辅助功能,非常实用,下面是一个常见的innobackupex备份例子:
###
### innobackupex example
###
### created by yejr(imysql@imysql.cn), 2011/07/27
###
### 备注:部分注释信息用于阅读方便,实际使用时,请直接删除
###
innobackupex \
#做完DB备份的同时,记录SLAVE的信息,便于恢复时使用,会直接生成 CHANGE MASTER命令
--slave-info \
#和 slave-info 结合使用,发起备份的时候,会把SLAVE暂停,确保备份时没有临时表打开,保证一致性
--safe-slave-backup \
#指定要备份的数据表列表文件,内容格式诸如:imysql.user,意思是imysql库下的user表
#不在列表中存在的数据表都不会备份,直接忽略,常用于做部分备份,例如历史归档表无需备份
--tables-file="dbbak_tables_list.txt" \
#备份目录不附加实时时间戳,便于指定有一定规则的目录名
--no-timestamp \
#指定备份目录
/databak/20110727
直接执行该命令行,即可开始备份,需要注意的是:
1. 若想同时备份SLAVE信息以及BINARY LOG信息,则不要指定 --no-lock 选项,否则不会记录
2. 备份存储目标目录不要事先创建好,否则会报错退出,当然了,可以自己修改下innobackupex脚本,忽略这个检查