您的位置:首页 > 数据库 > MySQL

MySQL的热备份开源工具XtraBackup

2012-10-18 12:48 281 查看
首先代表所有使用者,感谢PERCONA的无私贡献,今天简单介绍一下 MySQL 免费热备工具 XtraBackup , 特别是几个使用时值得注意的地方。

1. 下载XtraBackup并安装

当前最新的版本是1.6 ,从这里可以选择不同OS的相应版本:
http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/
在LINUX下你可以直接运行:

wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/RPM/rhel5/x86_64/xtrabackup-1.6-245.rhel5.x86_64.rpm
rpm -ivh xtrabackup-1.6-245.rhel5.x86_64.rpm

2. 数据库中建立备份账号

GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ‘username’@'localhost’ IDENTIFIED BY ‘password’;

这个帐户主要是用来完成备份时一些锁表等工作;

3. 全量备份与恢复

一般库不大(< 200G),我们就选择用全量备份 ;

innobackupex-1.5.1 工具是用PERL包装过的”xtrabackup“,他不旦可以备份INNODB,还可以备份MYISAM等非事务数据库;

3.1 全量备份

# 指定mysql配置文件路径

mycnf=/etc/my.cnf

#指定备份根目录

backup_path=/data/mysqlbackup

# 开始备份

innobackupex-1.5.1 –user=username –password=password –host=127.0.0.1 –port=3306 –slave-info –tmpdir=$backup_path –defaults-file=$mycnf $backup_path 2> $backup_path/xtrabk.log

### 注意点:

在备份过程中,把INNODB数据文件备份完成后,会锁住整个库,并开始复制MYISAM等非事务引擎的数据和.frm;

所以如果你拥有比较多的MYISAM表,锁库的时候会持续很长。如果是在主库上运行,千万注意。

3.2 全量恢复

3.2.1 应用日志

## 这个过程主要是产生REDOLOG并将备份期间产生的REDO应用到数据文件中;

## xtrabackup 会启动一个INNODB进程去做,与你当前在跑的不冲突

innobackupex-1.5.1 –apply-log /data/mysqlbackup/

3.2.2 复制数据文件到数据目录

## 这个过程将恢复好的数据复制到my.cnf中指定的数据目录中。 这时你需要把原有的实例停掉

innobackupex-1.5.1 –copy-back /data/mysqlbackup/

4. 增量备份

增量备份我们只能使用xtrabackup工具;

1)只能用于INNODB

2)my.cnf文件[mysqld]中需要设置 default_table_type=InnoDB

4.1 全量备份(参考 3.1)

4.2 增量备份 (只复制变化过的块)

#指定备份根目录

backup_path=/data/mysqlbackup/2011-06-02_19-05-46/

#指定备份根目录

incre_path=/data/mysqlbackup/incre001

#开始备份

xtrabackup –defaults-file=/etc/my.cnf –backup –target-dir=$incre_path –incremental-basedir=$backup_path

在/data/mysqlbackup/incre001将产生一些.delta数据文件;

另外可以注意xtrabackup_checkpoints这个文件lsn的变化

4.3 恢复 (先恢复全量备份的日志)

## 用增量备份加入全量数据

xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/

xtrabackup –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/ –prepare –incremental-dir=/data/mysqlbackup/incre001

## 应用日志

xtrabackup –defaults-file=/etc/my.cnf –prepare –target-dir=/data/mysqlbackup/2011-06-02_19-05-46/

最后还是大家动手试试;

 

推荐关联性技术文章:
MySQL存储引擎:MyISAM数据自动备份还原方案

xtrabackup导致MYSQL HANG起
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: