设为首页 加入收藏

TOP

Centos 推荐使用xtrabackup备份数据库(一)
2015-11-21 01:28:07 来源: 作者: 【 】 浏览:0
Tags:Centos 推荐 使用 xtrabackup 备份 数据库
mysqldump是一种逻辑备份方式,将数据转换成sql文件,其最大的缺陷就是备份和恢复时间很长,对于一个小于10G的数据库而言,这个速度还是可以接受的,但是如果数据库较大,那在使用mysqldump备份就非常不合适了。
?
lvm是一种采用逻辑卷快照功能对数据进行备份,可以实现几乎热备,但是备份过程较为复杂(来回切换终端),很难用shell脚本直接实现,不过现在似乎有个工具mylvmbackup可以实现自动化备份,但是没有尝试过,改天我也试试。
?
Xtrabackup对MyISAM表只能实现温备,并且不支持增量备份,所以每次对MyISAM表备份都是全备
?
XtraBackup更多高级特性通常只能在innodb存储引擎上实现,而且高级特性还都依赖于mysql数据库对innodb引擎实现了单独表空间,否则没办法实现单表或单库导出
?
mysql> show global variables like '%innodb_file_per_table%';
+-----------------------+-------+
| Variable_name ? ? ? ? | Value |
+-----------------------+-------+
| innodb_file_per_table | ON ? ?|
+-----------------------+-------+
1 row in set (0.00 sec)
?
那么今天就和大家聊聊第三款开源备份工具xtrabackup:
官方站点:http://www.percona.com
官方在线文档:http://www.percona.com/doc/percona-xtrabackup/2.2/
最新软件包 下载地址:http://www.percona.com/downloads/XtraBackup/
?
一、简介
Xtrabackup是由percona提供的mysql 数据库开源热备工具。特点如下:
?
(1)备份过程快速、可靠;
?
(2)备份过程不会打断正在执行的事务;
?
(3)能够基于压缩等功能节约磁盘空间和流量;
?
(4)自动实现备份检验;
?
(5)还原速度快;
?
二、安装
?
XtraBackup目前最新版为2.2.9,本篇博客采用yum安装方式
1、yum安装
# yum -y install libaio perl-Time-HiRes perl-DBD-MySQL perl-IO-Socket-SSL
# rpm -ivh https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/percona-xtrabackup-2.3.2-1.el6.x86_64.rpm
?
2、查看Xtrabackup安装的工具
?
# rpm -ql percona-xtrabackup |grep bin
?
/usr/bin/innobackupex
/usr/bin/xbcloud
/usr/bin/xbcloud_osenv
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
?
3、XtraBackup中主要包含了三个工具
?
xbsteam:支持流式备份
?
xtrbackup:用于热备innodb、xtradb表中数据的工具,不能备份其它类型的表,也不能备份数据表结构
?
innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份MyISAM表的能力
xbcrypt:用于 加密或解密备份的数据库
?
xbcloud:用于从云上上传和下载全部或部分xbstream档案
?
三、innobackupex几个非常重要的参数
?
--apply-log
?
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
?
--redo-only
?
准备(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是:
?
(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。
?
(2)基于所有的备份将未提交的事务进行“回滚”。
?
--copy-back
?
该选项用于执行恢复(还原)操作,其通过复制所有数据相关的文件至 mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。
?
四、innobackup备份语法
?
完全备份+完全恢复
?
完全备份
?
# innobackupex --user=DBUSER --password=DBUSERPASS ?/path/to/BACKUP-DIR/
?
准备一个完全备份
?
# innobackupex --apply-log ?/path/to/BACKUP-DIR
?
从一个完全备份中恢复数据
# innobackupex --copy-back /path/to/BACKUP-DIR
?
修改datadir目录权限
# chown -R ?mysql:mysql ?/mydata/data/
?
完全备份+增量备份+完全恢复
?
完全备份:
# innobackupex --user=DBUSER --password=DBUSERPASS ?/path/to/BACKUP-DIR/
?
第一次增量备份
# innobackupex --user=DBUSER --password=DBUSERPASS --incremental /backup --incremental-basedir=BASEDIR
?
第二次增量备份
# innobackupex --user=DBUSER --password=DBUSERPASS --incremental /backup --incremental-basedir=BASEDIR
?
准备:
?
执行完全备份redo
# innobackupex --apply-log --redo-only BASE-DIR
?
执行第一次增量备份redo
# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇centOS下安装mysql5.7 下一篇Navicat远程无法连接mysql问题解..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: