快速业务通道

利用Xtrabackup工具备份及恢复

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-07
Xtrabackup------MySQL DBA的必备工具 注意: 1)文档参照http://www.percona.com/docs/wiki/percona-xtrabackup:start 2)mysql要使用5.1.50版本或以上. 一、Xtrabackup简介及安装 1、Xtrabackup 是percona的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表),可以看做是InnoDB Hotbackup的免费替代品. Percona Support for MySQL
Benefit Silver
(Per Server)
Gold
(Unlimited)
Platinum
(Unlimited)
Annual Price $1,500/server From $15,000 From $30,000
Number of Servers Covered Per-Server Unlimited Unlimited
Number of Support Incidents Unlimited Unlimited Unlimited
Response Time SLA 60 Minutes 30 Minutes 30 Minutes
Named Support Contact Persons 5 10 20
Email, Web, & Chat Support
Phone Support
Login Support
24×7 Support
Fixes For Verified Bugs
Hot Bug Fixes
Onsite System Audit Option
Covers Old Server Versions
Covers Non-Standard Platforms Option
Covers Custom Code Option
参考:http://www.percona.com/mysql-support/ 先看看如何安装Xtrabackup,最简单的安装方式是使用RPM包,不过想使用源代码方式安装的话,其安装方式有点古怪,它采用的在MySQL源代码上打补丁构建的方式安装的. 2、安装: wget http://www.percona.com/downloads/XtraBackup/XtraBackup-1.4/Linux/binary/i686/ tar zxf xtrabackup-1.4.tar.gz cd xtrabackup-1.4 ./configure make 进行到这里时,千万别make install,那样就会接着安装MySQL了,正确方法是: cd innobase/xtrabackup/ make make install 安装参照:http://www.percona.com/docs/wiki/percona-xtrabackup:installation:from-source 3、如此一来,就会在/usr/bin目录里安装上两个有用的工具:xtrabackup、innobackupex 1)xtrabackup 只能备份InnoDB和XtraDB两种数据表,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作Myisam引擎表 2)innobackupex 是一个脚本封装,封装了xtrabackup,能同时处理Innodb和Myisam,但在处理Myisam时需要加一个读锁. 按如上的介绍,操作Myisam时需要加读锁,这会堵塞线上服务的写操作,而Innodb没有这样的限制,数据库中Innodb表类型所占的比例越大,则越有利.实际应用中一般是直接使用innobackupex方法,它主要有三种操作方式,按手册中的介绍:
Usage: innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME] [--password=WORD] [--port=PORT] [--socket=SOCKET] [--no-timestamp] [--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar] [--defaults-file=MY.CNF] [--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF] [--ibbackup=IBBACKUP-BINARY] BACKUP-DIR innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR —————————————————————————————————— 第一个命令行是热备份mysql数据库. 带有--apply-log选项的命令是准备在一个备份上启动mysql服务. 带有--copy-back选项的命令从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置. Xtrabackup还可以用来moving InnoDB tables between servers,更多的内容可以参考官方文档及例子.
参考链接: 1.官方文档:http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual 2.Xtrabackup online backup for InnoDB/XTraDB(pdf): http://www.percona.com/ppc2009/PPC2009_xtrabackup.pdf 二、innobackupex 和 xtrabackup备份详解 注: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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号