设为首页 加入收藏

TOP

使用xtrabackup在线增量备份及恢复数据库(一)
2015-11-21 01:39:02 来源: 作者: 【 】 浏览:0
Tags:使用 xtrabackup 在线 增量 备份 恢复 数据库
一、Percona Xtrabackup 简介
?
1、Xtrabackup ?bin目录文件 介绍
?
1)innobackupex
?
innobackupex 是xtrabackup的一个符号链接 . innobackupex still supports all features and syntax as 2.2 version did, but is now deprecated and will be removed in next major release.
?
2)xtrabackup
?
一个由C编译而来的二进制文件,可以整备MySQL database instance with MyISAM, InnoDB, and XtraDB tables
?
3)xbcrypt
?
用来加密或解密备份的数据
?
4)xbstream
?
用来解压或压缩xbstream格式的压缩文件
?
5)xbcloud
?
utility used for downloading and uploading full or part of xbstream archive from/to cloud.
?
2、Percona XtraBackup info
?
是开源免费的MySQL 数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁)
?
you can achieve the following benefits: (https://www.percona.com/doc/percona-xtrabackup/2.3/intro. html
?
Backups that complete quickly and reliably
Uninterrupted transaction processing during backups
Savings on disk space and network bandwidth
Automatic backup verification
Higher uptime due to faster restore time
features ?
Create hot InnoDB backups without pausing your database
Make incremental backups of MySQL
Stream compressed MySQL backups to another server
Move tables between MySQL servers on-line
Create new MySQL replication slaves easily
Backup MySQL without adding load to the server
?
无需停止数据库进行InnoDB热备
?
增量备份MySQL
?
流压缩到传输到其它服务器
?
在线移动表
?
能比较容易地创建主从同步
?
备份MySQL时不会增大服务器负载
?
3、Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下
?
1、在InnoDB内部会维护一个redo/undo日志文件,也可以叫做事务日志文件。事务日志会存储每一个InnoDB表数据的记录修改。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步骤:它应用(前滚)已经提交的事务日志到数据文件,并将修改过但没有提交的数据进行回滚操作。
?
2、Xtrabackup在启动时会记住log sequence number(LSN),并且复制所有的数据文件。复制过程需要一些时间,所以这期间如果数据文件有改动,那么将会使数据库处于一个不同的时间点。这时,xtrabackup会运行一个后台进程,用于监视事务日志,并从事务日志复制最新的修改。Xtrabackup必须持续的做这个操作,是因为事务日志是会轮转重复的写入,并且事务日志可以被重用。所以xtrabackup自启动开始,就不停的将事务日志中每个数据文件的修改都记录下来。
?
3、上面就是xtrabackup的备份过程。接下来是准备(prepare)过程,在这个过程中,xtrabackup使用之前复制的事务日志,对各个数据文件执行灾难恢复(就像mysql刚启动时要做的一样)。当这个过程结束后,数据库就可以做恢复还原了,这个过程在xtrabackup的编译二进制程序中实现。程序innobackupex可以允许我们备份MyISAM表和frm文件从而增加了便捷和功能。Innobackupex会启动xtrabackup,直到xtrabackup复制数据文件后,然后执行FLUSH TABLES WITH READ LOCK来阻止新的写入进来并把MyISAM表数据刷到硬盘上,之后复制MyISAM数据文件,最后释放锁。
?
4、备份MyISAM和InnoDB表最终会处于一致,在准备(prepare)过程结束后,InnoDB表数据已经前滚到整个备份结束的点,而不是回滚到xtrabackup刚开始时的点。这个时间点与执行FLUSH TABLES WITH READ LOCK的时间点相同,所以myisam表数据与InnoDB表数据是同步的。类似oracle的,InnoDB的prepare过程可以称为recover(恢复),myisam的数据复制过程可以称为restore(还原)。
?
5、Xtrabackup 和 innobackupex这两个工具都提供了许多前文没有提到的功能特点。手册上有对各个功能都有详细的介绍。简单介绍下,这些工具提供了如流(streaming)备份,增量(incremental)备份等,通过复制数据文件,复制日志文件和提交日志到数据文件(前滚)实现了各种复合备份方式。
?
二、安装xtrabackup
?
1、安装
?
yum -y install perl perl-devel libaio libaio-devel
yum -y install ?perl-DBI ?perl-DBD-MySQL ?perl-TermReadKey perl-devel perl-Time-HiRes
?
cd /usr/local/src
wget -c https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/ \
binary/tarball/percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz
?
tar -zxf percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz
cd percona-xtrabackup-2.3.2-Linux-x86_64/
mkdir ?/usr/local/xtrabackup
mv bin ?/usr/local/xtrabackup/
ln -s /usr/local/xtrabackup/bin/* /usr/bin/
?
2、修改m
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQLcasewhen条件分支判断 下一篇ORACLE简单操作语句(增删改查),和..

评论

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