mysql在线热备份_使用Xtrabackup对mysql做在线热备份

上一篇文章写了关于mysqldump做备份以及使用mysqlbinlog做增量备份

Mysqldump做为数据的逻辑备份工具还行,但是无法进行在线热备,而没有物理备份工具,在数据量比较大的时候,恢复的时间也会长得无法接受。

注:此文并非原创,而是以前看到一个侠客写的,今天只是贴出来与大家共享,哪位侠客如有冒犯,敬请原谅。

percona出品的Xtrabackup

可以在线对InnoDB/XtraDB引擎的表进行物理备份,备份及还原速度都很快,下面是一个实际备份的例子,采用了gzip将备份流进行压缩后再另外一台机器上还原的一个

实例,

1.软件安装:

首先得在备份和数据还原的机器上都得安装下列软件(附:安装最新版本的xtrabackup,备份成功,但是无法恢复回去)

1.MySQL-client-community-5.0.41-0.rhel5.x86_64.rpm

2.perl-DBI-1.52-2.el5.x86_64.rpm

3.xtrabackup-0.7-1.rhel5.x86_64.rpm

直接通过rpm -Uvh 包就可以直接进行安装了。

2.数据备份

执行下面命令进行文件备份,

innobackupex-1.5.1 --user=root --password="123456" --defaults-file=/etc/my.cnf --slave-info --stream=tar /data/backup/test 2> /data/backup/test.log | gzip > /data/backup/test/sz-5-2.tar.gz

简单的对各个参数的说明:

--user --password

mysql数据库的用户名和密码,如果有myisam的表为了保证数据的一致性,它需要用户名和密码对数据库进行锁表,具体锁表的时间是拷贝整个myisam表的表文件和数据文件的时间

--defaults-file

mysql数据库的默认配置文件my.cnf保存的位置

--slave-info

方便通过全备建立一个从

--stream

文件流保存的方式,一般采用tar,另外一种为cpio方式,这种方式一下使用很少

/data/backup/test

备份后数据文件保存的位置

2> /data/backup/test.log

备份当中的输出信息输出到/data/backup/test.log中

| gzip -9 > /data/backup/test/sz-5-2.tar.gz

对输出的流进行gzip进行压缩。

3.数据还原

编译完mysql以后,把备份机器my.cnf拷贝到/etc/目录下 ,并建立mysql的数据目录,记住了别通过mysql_install_db初始化数据库。

把文件拷贝到一个目录当中,譬如/data/backup/test中

1.解压:

千万记得使用这个命令进行解压: tar xfi 备份文件

2. 执行innobackupex-1.5.1 --defaults-file=/etc/my.cnf --apply-log /data/backup/test/

3. 执行innobackupex-1.5.1 --defaults-file=/etc/my.cnf --copy-back /data/backup/test/

4.进入mysql的数据目录当中,对所有文件赋给mysql用户的权限,

5.启动mysql

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值