xtrabackup备份数据库
说明:
公司之前备份数据库用的是mysqldump,备份100G+的数据,再加上服务器繁忙,备份速度像蜗牛似的。网上都说用xtrabackup比较适合备份大的数据库,而且备份效率也高,就尝试使用一次,结果明显感觉比mysqldump备份与恢复速度就是快不少
参考:
http://467754239.blog.51cto.com/4878013/1621711
优点:
(1)备份过程快速、可靠;
(2)备份过程不会打断正在执行的事务;
(3)能够基于压缩等功能节约磁盘空间和流量;
(4)自动实现备份检验;
(5)还原速度快
安装:
这里采用rpm包方式(推荐)
yum -y install libaio perl-Time-HiRes perl-DBD-MySQL perl-IO-Socket-SSL
cd /usr/local/src/
32位:wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/redhat/6/i386/percona-xtrabackup-2.2.9-5067.el6.i686.rpm
64位:wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/redhat/6/x86_64/percona-xtrabackup-2.2.9-5067.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-2.2.9-5067.el6.i686.rpm
使用:
全备份:(目前公司只采用了全备份)
innobackupex --user=root --password=123456 --socket=/tmp/mysqld.sock --defaults-file=/usr/local/mysql/my.cnf /data/mysql_bacp/ #备份数据库
注意:
/data/mysql_bacp/:备份目录
在/data/mysql_bacp/目录下面会生成一个以时间命名的目录
所有的数据库数据都被备份在这个目录下,同时又会生成几个新的文件:
backup-my.cnf: 备份命令用到的配置选项信息
xtrabackup_binlog_info: 备份时所用的二进制日志信息(记录了在备份时,正在用的二进制日志文件及pos值,这个在数据恢复时用)
xtrabackup_checkpoints: 备份的信息(备份类型(完全或增量)、备份状态(是否已经为prepared状态)、LSN(日志序列号)范围信息),可以查看此备份是全备份还是增量备份
xtrabackup_info: xtrabackup相关的信息
使用全备份恢复到备份时的数据:
/etc/init.d/mysqld stop #在数据恢复时一定要记得把mysql服务停掉
mv /opt/mysql/data/* /tmp/linshi/ #把数据库数据目录下的所有数据临时mv到一个临时目录里
innobackupex --apply-log 2015-06-09_13-02-30/ #找到最后一个全备份目录(全备份准备prepared) 意义:将未提交的事务进行回滚,将已经提交但还没有同步的数据进行同步
innobackupex --copy-back --defaults-file=/usr/local/mysql/my.cnf 2015-06-09_13-02-30/ #恢复数据
chown -R mysql.mysql /opt/mysql/data/ #修改数据权限(默认xtrabackup恢复数据后,所有数据的权限都是root)
/etc/init.d/mysqld start #启动mysql服务
使用二进制日志文件恢复备份之后的数据:
找到最后一个全备份目录:
cd /data/mysql_bacp/2015-06-09_13-02-30/
cat xtrabackup_binlog_info mysql-binlog.000052 120
mysql-binlog.000052和120:做全备份时正在使用的二进制日志文件和此时的pos值
从这个二进制日志文件和pos值开始恢复之后的数据
参考:http://732233048.blog.51cto.com/9323668/1633051
本文出自 “见” 博客,请务必保留此出处http://732233048.blog.51cto.com/9323668/1660146
原文地址:http://732233048.blog.51cto.com/9323668/1660146