Mysql备份工具xtraback全量和增量测试
xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表)
Xtrabackup是由
一、安装
1、RPM安装:
rpm -ivh –nodeps percona-xtrabackup-debuginfo-2.0.0-417.rhel5.x86_64.rpm
–nodeps(不检查软件间的依赖关系),因为安装xtrabackup需要mysql_client,但是我的是通过源码安装的。所以环境变量要设置正确
比如 export PATH=$PATH:/usr/local/mysql/bin 如果mysql没有设置到PATH里 会报错。
2、下载二进制源码包:
tar -zxvf percona-xtrabackup-2.0.0.tar.gz
mv percona-xtrabackup-2.0.0 /usr/loca/xtrabackup
3、使用源代码方式安装
如果你想使用源代码方式安装的话,则会发现 其安装方式有点古怪,这是因为它采用的在MySQL源代码上打补丁构建的方式。
tar zxf xtrabackup-0.8.tar.gz
cd xtrabackup-0.8
./configure
make
进行到这里时,千万别惯性使然接着make install,那样就会接着安装MySQL了,正确方法是接着:
cd innobase/xtrabackup/
make
make install
查看版本号:
mysqld配置文件:(多实例时备份必须要)
[mysqld]
innodb_data_home_dir = /www/mysqldata/ibdata #用来储存文件的数据
innodb_log_group_home_dir = /www/mysqldata/iblogs
innodb_data_file_path=ibdata1:10M;ibdata2:10M:autoextend
innodb_log_files_in_group = 2
innodb_log_file_size = 1G
注:文本测试中没有多实例,使用默认my.cnf。
二、xtrabackup备份和恢复
Xtrabackup有两个主要的工具:xtrabackup、innobackupex。 xtrabackup只能备份InnoDB和XtraDB两种数据表,支持在线热备份,不会锁表innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表,如果你的数据库里有innodb和myisam存储引擎,只能使用innobackupex备份。
* xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表。
* innobackupex - 对xtrabackup封装的perl脚本,提供了myisam表备份的能力。(能进行整库和数据表备份)。本文旨在介绍Xtrabackup工具对数据库进行增量备份实践。
1、innobackupex-1.5.1备份
在实施备份时,需要在数据库运行的情况下在线执行,并先提前建立用于备份的路径。
innobackupex [--defaults-file=/etc/my.cnf] –user=root [--host=192.168.10.198] [--password=xxx] [--port=3306] /www/backup/ 2>/www/backup/backup.log
参数:
/www/backup/ #备份的目录
2>/www/backup/backup.log #将备份过程中的输出信息重定向到/www/backup/backup.log
–slave-info #会记录复制主日志的复制点,便于重新做复制用。(用在备份从机器用)
xtrabackup_binlog_info #存放binlog的信息。(binlog需要另外拷贝备份,如果需要binlog的话)
xtrabackup_checkpoints #存放备份的起始位置和结束位置。
–-stream=tar #告诉xtrabackup,备份需要以tar的文件流方式输出。
–-include='test' #备份包含的库表,如例:意思是要备份test库中所有的表。如果需要全备份,则省略这个参数;如