Percona Xtrabackup 备份MySQL 实例(转)
老规矩,开场白,刚开始用mysqldump,备份100G+的数据库,再加上服务器繁忙,备份速度像蜗牛似的,于是寻找更高效的备份方法。网上都说用xtrabackup比较适合备份大的数据库,而且备份效率也高,就尝试使用一次,结果明显感觉比mysqldump备份与恢复速度就是快不少,那以后就用它了。大礼拜日的在家也没事,结合生产环境,写了这篇文档,刚接触的朋友,可以参考下,不多说,入正题!
1、初次备份前准备工作
1.1 了解备份方式
热备份:读写不受影响(mysqldump-->innodb)
温备份:仅可以执行读操作(mysqldump-->myisam)
冷备份:离线备份,读写都不可用
逻辑备份:将数据导出文本文件中(mysqldump)
物理备份:将数据文件拷贝(xtrabackup、mysqlhotcopy)
完整备份:备份所有数据
增量备份:仅备份上次完整备份或增量备份以来变化的数据
差异备份:仅备份上次完整备份以来变化的数据
1.2 创建备份用户
|
1
2
|
mysql> grant reload,lock tables,replication client on *.* to 'bak'@'localhost' identified by 'bak2015'; mysql> flush privileges; |
1.3 安装方式
CentOS:
# rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
# yum install percona-xtrabackup #xtrabackup2.2不支持MySQL5.1的Innodb引擎,如需要可安装2.0版本(https://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.8/RPM/rhel6/x86_64/percona-xtrabackup-20-2.0.8-587.rhel6.x86_64.rpm)
Ubuntu:
# sudo apt-get install xtrabackup #14.04默认有这个包,14.04之前版本如果没有再这个地址下载对应的版本:https://www.percona.com/downloads/XtraBackup/
1.4 了解常用参数
--user= #指定数据库备份用户
--password= #指定数据库备份用户密码
--port= #指定数据库端口
--host= #指定备份主机
--socket= #指定socket文件路径
--databases= #备份指定数据库,多个空格隔开,如--databases="dbname1 dbname2",不加备份所有库
--defaults-file= #指定my.cnf配置文件
--apply-log #日志回滚
--incremental= #增量备份,后跟增量备份路径
--incremental-basedir= #增量备份,指上次增量备份路径
--redo-only #合并全备和增量备份数据文件
--copy-back #将备份数据复制到数据库,数据库目录要为空
--no-timestamp #生成备份文件不以时间戳为目录名
--stream= #指定流的格式做备份,--stream=tar,将备份文件归档
--remote-host=user@ip DST_DIR #备份到远程主机
2、完整备份与恢复
2.1 完整备份
# innobackupex --user=bak --password='bak2015' /mysql_backup
2.2 备份恢复
# innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /home/loongtao/mysql_backup/2015-02-08_11-56-48/
2.3 备份文件说明
# ls 2015-02-08_11-56-48
backup-my.cnf:记录innobackup使用到mysql参数
xtrabackup_binary:备份中用到的可执行文件
xtrabackup_checkpoints:记录备份的类型、开始和结束的日志序列号
xtrabackup_logfile:备份中会开启一个log copy线程,用来监控innodb日志文件(ib_logfile),如果修改就会复制到这个文件
3、完整备份+增量备份与恢复
3.1 完整备份
# innobackupex --user=bak --password='bak2015' /mysql_backup
#备份后位置是:/mysql_backup/2015-02-08_11-56-48
3.2 增量备份1
# innobackupex --user=bak --password='bak2015' --incremental /data1/mysql_backup --incremental-basedir=/mysql_backup/2015-02-08_11-56-48 #指定上次完整备份目录
3.3 增量备份2
# innobackupex --user=bak --password='bak2015' --incremental /data1/mysql_backup --incremental-basedir=/mysql_backup/2015-02-08_12-16-06 #指定上次增量备份目录
3.4 查看xtrabackup_checkpoints文件,一目了然,可以看到根据日志序号来增量备份

3.5 备份恢复
3.5.1 备份恢复思路
将增量备份1、增量备份2...合并到完整备份,加到一起出来一个新的完整备份,将新的完整备份以拷贝的形式到数据库空目录(rm /var/lib/mysql/* -rf)
3.5.2 预备完整备份
#xtrabackup把备份过程中可能有尚未提交的事务或已经提交但未同步数据文件的事务,写到xtrabackup_logfile文件,所以要先通过这个日志文件回滚,把未完成的事务同步到备份文件,保证数据文件处于一致性。
# innobackup --apply-log --redo-only 2015-02-08_11-56-48
3.5.3 合并第一个增量备份
# innobackupex --apply-log --redo-only /mysql_backup/2015-02-08_11-56-48/ --incremental-dir=mysql_backup/2015-02-08_12-16-06
3.5.4 合并第二个增量备份
# innobackupex --apply-log --redo-only /mysql_backup/2015-02-08_11-56-48/ --incremental-dir=mysql_backup/2015-02-08_16-06-53
3.5.5 恢复完整备份(这时2015-02-08_11-56-48完整备份已经包含所有增量备份,可以通过查看checkpoints来核实)
# innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /mysql_backup/2015-02-08_11-56-48/
3.5.6 修改恢复数据文件权限
# chown -R mysql.mysql /var/lib/mysql
3.5.7 启动MySQL,查看数据库恢复情况
# /etc/init.d/mysqld start
4、备份文件归档压缩
4.1 归档并发送到备份服务器
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup 2>/mysql_backup/bak.log |ssh root@192.168.18.251 "cat - > /mysql_backup/`date +%F`.tar"
解压:tar -ixvf `date +%F`.tar
4.2 归档备份
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup > /mysql_backup/`date +%F`.tar
解压:tar -ixvf `date +%F`.tar
4.3 压缩归档备份
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup |gzip >/mysql_backup/`date +%F`.tar.gz
解压:tar -izxvf `date +%F`.tar.gz
Percona Xtrabackup 备份MySQL 实例(转)的更多相关文章
- Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...
- Percona Xtrabackup备份mysql(转)
add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...
- Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...
- 利用xtrabackup备份mysql数据库
利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- 使用Percona Xtrabackup创建MySQL slave库
一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...
- xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'
xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files' 1.使用xtrabackup备份MySQL时出现如下报错 ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- MySQL · 物理备份 · Percona XtraBackup 备份原理
http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...
随机推荐
- 九度OJ 1208:10进制 VS 2进制 (进制转换)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2040 解决:612 题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数. ...
- 算法设计 mac 字符串 标识 n维度 2 3维度 字符串 标识值 特征值
基向量
- Centos设置开机启动Apache和Mysql
先用chkconfig --list查询apache和mysql服务是否存在,不存在则需要手动添加 [root@centos64 vsftpd]# chkconfig --list 测试存在,只需要开 ...
- HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:cid=70325#problem/V">[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形I ...
- kettle连接资源库设置
到这里你是登陆不上去的,需要创建或更新按钮,因为需要在你的数据库里创建关于kettle的数据表,来存储资源库 点执行就可以了 一般情况下kettle资源库自动给你创建两个用户: 工具->资源库- ...
- js格式化货币金额
/* 格式化金额, s : 金额 n : 保留位数 */ function formatMoney(s, n) { n = n > 0 && n <= 20 ? n : 2 ...
- Java之线程池(一)
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...
- Android Theme主题
•android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 •android:theme="@and ...
- 《DevExpress》记录之TreeList
如这两幅图所示:如果要显示左边的竖线,需要设置 感谢 DoomGuards本节Dome下载地址:http://pan.baidu.com/s/1wBOJk 密码:vz4d
- chattr与lsattr命令详解
PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的li ...