你好,游客 登录 注册 搜索
背景:
阅读新闻

安装和使用 Percona 推出的 Xtrabackup 备份 MySQL

[日期:2011-10-04] 来源:Linux社区  作者:ezerg [字体: ]

一、安装 XtraBackup

如果是32位的系统,默认将xtrabackup0.9.zip的内容放到mysql的bin目录下即可。

也可以编译数据库时一起编译,以5.0.88为例:
首先下载它的源代码:http://www.percona.com/mysql/xtrabackup/
注意:它必须和mysql源代码一起编译

# tar zxvf mysql-5.0.88.tar.gz
# tar zxvf xtrabackup-0.8-src.tar.gz

将XtraBackup移到InnoDB的源码目录,如果使用的是MySQL5.1,目录改为/mysql-5.1.*/storage/innobase/
# mv xtrabackup-0.8-src ./mysql-5.0.88/innobase/
# cd mysql-5.0.85/innobase

给InnoDB源码打上补丁,如果使用的是MySQL5.1,使用fix_innodb_for_backup51.patch
# patch –p2 < . /xtrabackup-0.8-src/fix_innodb_for_backup.patch

进入目录mysql-5.0.88
# cd ..
# ./configure

我们只需要Make就可以了,不需要Make install
#make
# cd innobase/xtrabackup-0.8-src

编译XtraBackup,MySQL5.1必须要使用XtraBackup0.9
#make

编译成功后,我们会获得可执行文件xtrabackup、innobackupex-1.5.1
xtrabackup可以在不加锁的情况下备份innodb数据表,不过此工具不能操作myisam的表。
innobackupex-1.5.1是一个脚本封装,能同时处理innodb和myisam,但在处理myisam时需要加一个读锁。


二、使用 XtraBackup
这里列出比较常用的备份命令:普通备份、打包(Tar)备份、压缩(Tar gzip)备份。

1、普通备份
备份:
# innobackupex-1.5.1 --defaults-file=/etc/my.cnf --user=root --password=pdcss --databases=pdcss /home/mysql/backup/ 2>/home/mysql/backup/common.log

这里我们使用mysql的root用户备份,密码为123。备份的目标目录(target dir)是/home/mysql/backup/1/innobackup/,innobackupex-1.5.1将在该目录下生成备份。
例如/home/mysql /backup/2011-05-05_08-55-57就是我执行脚本后生成的备份,所有的备份文件都在该2011-05-05_08-55-57目录下。
这里的2>/home/mysql/backup/common.log,是将备份过程中的输出信息重定向到common.log。
另外innobackupex-1.5.1还支持增量备份。

那如何恢复呢?为了模拟恢复过程,我先将MySQL停止,并删除MySQL的data目录下所有数据文件。
# cd /usr/local/mysql/data/pdcss
# rm –rf *
恢复:
# innobackupex-1.5.1 --apply-log /home/mysql/backup/2011-05-05_08-55-57
# innobackupex-1.5.1 --copy-back /home/mysql/backup/2011-05-05_08-55-57

# cd /usr/local/mysql/data/pdcss
修改文件的访问权限
# chown -R mysql:mysql .

命令innobackupex-1.5.1需要指定具体哪个备份目录,先应用备份log,然后copy back。这里的备份目录是/home/mysql/backup/2011-05-05_08-55-57
innobackupex-1.5.1会根据/et/my.cnf来确定MySQL的数据位置。

2. 打包(Tar)备份
这里基本和前面的普通备份类似,需要注意的是,恢复解压缩时,必须使用-i参数。
备份:
# innobackupex-1.5.1 --defaults-file=/etc/my.cnf --user=root --password=pdcss --databases=pdcss --stream=tar /home/mysql/backup/ 2>/home/mysql/backup/tar.log 1>/home/mysql/backup/tar.tar

恢复:
解压压缩 这里-i参数是必须的。
# tar –ixvf tar.tar

# innobackupex-1.5.1 --apply-log /home/mysql/backup/
# innobackupex-1.5.1 --copy-back /home/mysql/backup/

# cd /usr/local/mysql/data/pdcss
修改文件的访问权限
# chown -R mysql:mysql .


3. 压缩(tar gzip)备份
备份:
# innobackupex-1.5.1  --defaults-file=/etc/my.cnf --user=root --password=pdcss --databases=pdcss --stream=tar /home/mysql/backup/ 2>/home/mysql/backup/gz.log | gzip > /home/mysql/backup/gz.tar.gz
这里使用了管道|将innobackupex-1.5.1作为gzip的标准输入。它的恢复过程,只需要使用tar –izxvf 解压对应的文件后,操作完全同普通备份。

4、其它
解决备份出错“ innobackupex-1.5.1:fatal error:no 'mysqld' group in MySQL options ”问题:
修改 MySQL 配置文件 my.cnf 如下:
[mysqld]
......
#设置参数 datadir 的值
datadir=/usr/local/mysql/data
......

linux
相关资讯       mysql 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款