码迷,mamicode.com
首页 > 数据库 > 详细

Xtrabackup进行MySQL备份

时间:2015-09-08 23:39:30      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:mysql   xtrabackup   

1、简介

xtrabackup是percona的MySQL数据库备份工具。一款开源的能够对innodb和xtradb进行热备的工具。

1>其备份过程快速,可靠

2>能够基于压缩功能等节约磁盘和流量

3>备份过程不会中断正在执行的事务

4>还原速度快;自动实现备份检验

2、备份的实现

1>完全备份

 innobackupex --user=DBUSER --password=DBUSERPASSWORD /path/to/backup_dir

使用innobakupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命令的目录中。


在备份的同时,innobackupex还会在备份目录中创建如下文件:

  • (1)xtrabackup_checkpoints —— 备份类型[如完全或增量]、备份状态[如是否已经为prepared状态]和LSN[日志序列号]范围信息;每个InnoDB页(通常为16k大小)都会包含一个日志序列号----即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

  • (2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

  • (3)xtrabackup_binlog_pos_innodb —— 二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。

  • (4)xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;

  • (5)backup-my.cnf —— 备份命令用到的配置选项信息;


在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:

mysql> CREATE USER ’bkuser’@’localhost’ IDENTIFIED BY ’secret’;

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ’bkuser’;

mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ’bkuser’@’localhost’;

mysql> FLUSH PRIVILEGES;

2>准备(prepare)一个完全备份

 

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobakupex命令的--apply-log选项可用于实现上述功能。-----未完


Xtrabackup进行MySQL备份

标签:mysql   xtrabackup   

原文地址:http://51kxj.blog.51cto.com/3537967/1692920

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!