Chinaunix首页 | 论坛 | 博客
  • 博客访问: 260151
  • 博文数量: 56
  • 博客积分: 1190
  • 博客等级: 少尉
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-21 17:05
文章分类

全部博文(56)

文章存档

2014年(2)

2013年(4)

2012年(46)

2011年(4)

我的朋友

分类: LINUX

2012-03-27 22:10:28

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中 xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM 数据表。

1.安装mysql

2.安装Xtrabackup ,下载Xtrabackup

  配置源
    #vi /etc/yum.repos.d/percona.repo
  
Java代码  
[percona]  
name = CentOS $releasever - Percona  
baseurl=
enabled = 1  
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona  
gpgcheck = 1  
      


   添加key

   #cd  /etc/pki/rpm-gpg

   #wget  

   安装Xtrabackup

   yum install xtrabackup 

 

由于现在线上备份是用dump,对于个库不能保证库的状态的一致性。

为了能是数据库做到point-in-time recovery,可以采用xtrabackup

先声明:对于任何point-in-time recovery binary log是不可缺少的,所以必需保证binary log的安全性,一般是是用RAID10

xtrabackup的增备和全备的实现:

首先是官方文档,说的比较清楚了:

1.全备(这里是用5.5的版本)
xtrabackup_55 --datadir=/xxx/xxx --targe-dir=/xxx/xxx
然后需要做prepare
因为copy的时候并不是同一时间copy的,所以要prepare将所有恢复一致
xtrabackup_55 --prepare --target-dir=./full/

看到“InnoDB shutdown”信息和结束LSN
现在你的备份就一致了

如果你想恢复的更快,你需要再run一次prepare,会重建innodb logfile - -- --- 就是创建了几个logfile

2.

a).将备份的innodb的所有frm文件copy至新备份文件夹
b).将所有的系统级的mysiam表都copy只备份文件夹
c).修改文件夹权限

3.

重启mysql服务
遇到问题1.改mysqld启动脚本,主要是目录问题,指定basedir和datadir
另外需要修改my.cnf的数据文件路径

4.

启动成功,但是err文件报错Unable to lock /usr/local/mysql/data/ibdata1, error: 11

原因是之前启动失败的时候,启动脚本停了,后台脚本还在运行。需要ps将后台mysql进程杀死

5.

恢复之后做即时点恢复
有个文件xtrabackup_binlog_pos_innodb
./mysql-bin.000050      5868
根据这个信息搞吧

###########################################

增量备份(在昨晚全备之后,增备基于全备)
 xtrabackup_55 --backup --target-dir=/home/backup/inc1 --incremental-basedir=/home/backup/full/ --datadir=/usr/local/mysql/data/

 xtrabackup_55 --backup --target-dir=/home/backup/inc2 --incremental-basedir=/home/backup/inc1/ --datadir=/usr/local/mysql/data/
###########################################
注:最终都要应用到全备上
前提,全备不能使用单prepare命令,需要--apply-log-only

恢复的时候

xtrabackup_55 --prepare --apply-log-only --target-dir=/home/backup/full/
xtrabackup_55 --prepare --apply-log-only --target-dir=/home/backup/full/ --incremental-dir=/home/backup/inc1/
xtrabackup_55 --prepare --apply-log-only --target-dir=/home/backup/full/ --incremental-dir=/home/backup/inc2/
然后如上面全备一样修改目录即可

阅读(1383) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~