mysql xtrabackup安装_MYSQL之备份----Xtrabackup安装配置

MYSQL之备份----Xtrabackup安装配置

(2012-04-28 10:56:35)

安装配置Xtrabackup

先看看如何安装Xtrabackup,最简单的安装方式是使用RPM包,不过想使用源代码方式安装的话,其安装方式有点古怪,因为它采用的在MySQL源代码上打补丁构建的方式安装的。这里使用二进制包的安装方式,相对比较灵活。

Shell> mkdir /usr/local/xtrabackup

Shell> tar -zxvf xtrabackup-1.6.tar.gz –C

/usr/local/xtrabackup

Shell>cd /usr/local/xtrabackup/bin

Shell>ln –s innobackupex-1.5.1 innobackupex

配置环境变量:

Shell>export

PATH=$PATH:/usr/local/xtrabackup/bin

希望永久生效的话,可以加到

echo "export PATH=$PATH:/usr/local/xtrabackup/bin"

>> /etc/profile

source /etc/profile

修改mysql配置文件:

Shell> vi /etc/my.cnf

添加或修改:datadir =/usr/local/mysql/var(数据库目录)

特别注意:default_table_type = InnoDB(必须改,否则进行增量备份的时候不成功)

经过几天的测试,文档终于可以与大家分享了。使用Xtrabackup能够非常快速地备份与恢复mysql数据库,是mysql

dba的首选。Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB

Hotbackup的一个很好的替代品。 Xtrabackup有两个主要的工具:xtrabackup、innobackupex

xtrabackup只能备份InnoDB和XtraDB两种数据表,支持在线热备份,不会锁表

innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表,如果你的数据库里有innodb和myisam存储引擎,只能使用innobackupex备份,以下是线上用的简单脚本

#!/bin/bash

USER=root

PASSWORD=123456

date > /data/scripts/backup.log

echo "begin backup-------------------------------"

>> /data/scripts/backup.log

find /data/mysql/backups -mtime +7 |xargs rm -rf

/usr/bin/innobackupex --defaults-file=/opt/mysql5/my.cnf

--user=$USER --password=$PASSWORD --databases="test1 test2"

/data/mysql/backups >>

/data/scripts/backup.log 2>&1

echo "end backup-------------------------------"

>> /data/scripts/backup.log

date >>

/data/scripts/backup.log

mail -s "backup Passport report" "localhost@localhost"

< /data/scripts/backup.log

exit 0

以下是恢复脚本:

#!/bin/bash

USER=root

PASSWORD=123456

/etc/init.d/mysql stop

/usr/bin/innobackupex-1.5.1 --apply-log

--defaults-file=/opt/mysql5/my.cnf --user=$USER

--password=$PASSWORD /data/mysql/backups/passportdb/`date

+%Y-%m-%d`

rm -rf /opt/mysql5/var/test1

rm -rf /opt/mysql5/var/test2

rm -f /opt/mysql5/var/ibdata1

rm -f /opt/mysql5/var/ib_logfile0

rm -f /opt/mysql5/var/ib_logfile1

cd /data/mysql/backups

tar zcvf `date +%Y-%m-%d`.tgz `date

+%Y-%m-%d`

rm -rf `date -d -30day +%Y-%m-%d`.tgz

cp -r /data/mysql/backups/`date +%Y-%m-%d`/ib*

/opt/mysql5/var/

cp -r /data/mysql/backups/`date +%Y-%m-%d`/test1

/opt/mysql5/var/

cp -r /data/mysql/backups/`date +%Y-%m-%d`/test2

/opt/mysql5/var/

rm -rf /data/mysql/backups/`date +%Y-%m-%d`/*

chown -R mysql.mysql /opt/mysql5/var/test1

chown -R mysql.mysql /opt/mysql5/var/test2

chown mysql.mysql /opt/mysql5/var/ib*

/etc/init.d/mysql start

恢 复的时候执行完/usr/bin/innobackupex-1.5.1

--apply-log后,直接拷贝就可以了,不用使用/usr/bin/innobackupex-1.5.1

--copy-back命令。如果使用/usr/bin/innobackupex-1.5.1

--copy-back命令后,会报Original data directory is not empty! at

/usr/local/xtrabackup/bin/innobackupex line

538.恢复的目录必须为空。经查官网,这是xtrabackup的一个BUG。

innobackupex did not check that

MySQL datadir was empty before –copy-back was run.

With this bug fix, innobackupex

will now error out of the –copy-back operation if the

destination is not empty, avoiding potential data loss or a strang

combination of a restored backup and previous data. Bug Fixed:

#737569

(Valentine Gostev)

网上有好多文章恢复使用

/usr/bin/innobackupex-1.5.1 --apply-log 然后

/usr/bin/innobackupex-1.5.1 --copy-back,难道他们恢复的目录都是空目录,还是人云亦云。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值