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

使用Xtrabackup对mysql做在线热备份

2011-03-04 15:04 316 查看
上一篇文章写了关于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

本文出自 “海风的linux之路” 博客,请务必保留此出处http://lhflinux.blog.51cto.com/1961662/506481
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: