Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211034
  • 博文数量: 11
  • 博客积分: 258
  • 博客等级: 二等列兵
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 19:41
文章分类

全部博文(11)

文章存档

2011年(11)

分类: Mysql/postgreSQL

2011-12-01 10:51:56

xtrabackup是一个很好的mysql数据库热备份工具,他是商业软件innodb hotback很好的替代品,xtrabackup有两个主要的工具,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex封装了xtrabackup,可以同时备份MyISAM数据包(但是备份MyISAM数据表的时候会出现短暂的锁表,时间长短要看表的大小),常用的备份与恢复都用innobackex进行操作。

1、安装
我使用的是二进制1.6版本,解压以后就可以直接使用
tar -zxvf xtrabackup-1.6.tar.gz -C /usr/local/xtrabackup/
ln -s /usr/local/xtrabackup/tar4ibd /usr/bin/tar4ibd
ln -s /usr/local/xtrabackup/xtrabackup /usr/bin/xtrabackup
ln -s /usr/local/xtrabackup/xtrabackup_51 /usr/bin/xtrabackup_51
ln -s /usr/local/xtrabackup/xtrabackup_55 /usr/bin/xtrabackup_55
ln -s /usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex

2、备份
innobackupex --user=root --password=123456 --defaults-file=/etc/my_bak.cnf --apply-log /usr/local/innobackup > /usr/local/innobackup/innobackup_apply.log 2>&1  

在my_bak.cnf指定要指定datadir路径(datadir=/usr/local/mysql/var)
如果要备份单独某个数据库加参数--databases,如果不加参数代表备份所有数据库
innobackupex --help可以参看使用方法


3、还原
在还原之前将还原服务器上var数据文件夹下面所有的文件都删除
innobackupex --apply-log /root/2011-11-30_03-54-46/  --apply-log表示在恢复过程中需要重启 mysql服务
innobackupex --copy-back /root/2011-11-30_03-54-46/  --copy-back 表示将备份文件cp到 my.cnf定义的数据目录中 

参考下面的文章,了解innobackupex的一些参数选项

注意:
1、注意备份和还原服务器软件的版本
我有次用1.5版本来还原1.6版本备份的数据,报
sh: /usr/bin/xtrabackup: cannot execute binary file
innobackupex-1.5.1: fatal error: no 'mysqld' group in MySQL options
innobackupex-1.5.1: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options
错误,始终找不出问题在哪里,后来用1.6版还原,问题解决。所以建议还原所使用的版本一定不能低于备份所使用的版本,这也就是为什么高版本支持低版本,但低版本不能预见高版本的原因。

2、注意还原服务器my.cnf服务的my.cnf配置文件
还原的mysql服务器的my.cnf最好配置成备份mysql服务器的my.cnf。如果备份服务器的my.cnf对innodb_buffer_pool_size进行了设置,但是还原服务器是默认值,两者不匹配,就有可能造成还原不成功,报如下错误
111201 10:25:59  InnoDB: Initializing buffer pool, size = 100.0M
111201 10:25:59  InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 268435456 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
xtrabackup: innodb_init(): Error occured.
innobackupex: Error: 
innobackupex: ibbackup failed at /usr/bin/innobackupex line 336.

3、注意还原服务器的空闲空间
阅读(9858) | 评论(4) | 转发(1) |
给主人留下些什么吧!~~

radarruan2011-12-23 18:35:03

小蝌蚪123: 版本问题值得注意!.....
是的

radarruan2011-12-23 18:34:34

桔色花花朵: mysql数据库热备份工具能实时定时备份么?.....
实时备份可以用主从同步来解决问题

小蝌蚪1232011-12-03 23:24:57

版本问题值得注意!

桔色花花朵2011-12-02 00:28:00

mysql数据库热备份工具能实时定时备份么?