Home  >  Article  >  Database  >  xtrabackup备份恢复mysql全备(一)_MySQL

xtrabackup备份恢复mysql全备(一)_MySQL

WBOY
WBOYOriginal
2016-06-01 13:32:55767browse

bitsCN.com

xtrabackup备份恢复mysql全备(一)

 

Xtrabackup 是percona公司的开源项目,用以实现类似innodb官方的热备份工具InnoDB Hot Backup的功能,能够非常快速地备份与恢复mysql数据库。Xtrabackup中包含两个工具:

xtrabackup是用于热备份innodb和xtradb表中数据的工具,不能备份其他引擎的表,也不能备份数据表结构;

 

innobackupex是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。

 

安装rpm包,rpm包可以从官网下载

[root@aeolus1 ~]# rpm -ivh percona-xtrabackup-2.1.3-608.rhel5.x86_64.rpm

 

warning: percona-xtrabackup-2.1.3-608.rhel5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID cd2efd2a

Preparing...                ########################################### [100%]

   1:percona-xtrabackup     ########################################### [100%]

安装完毕,在/usr/bin 下有如下两个工具innobackupex和xtrabackup 

root@aeolus1 bin]# ll inno* 

-rwxr-xr-x 1 root root 110738 May 23 02:24 innobackupex

lrwxrwxrwx 1 root root     12 Jun  9 18:18 innobackupex-1.5.1 -> innobackupex

[root@aeolus1 bin]# ll *xtrabackup* 

-rwxr-xr-x 1 root root  2894280 May 23 02:25 xtrabackup

-rwxr-xr-x 1 root root  4494952 May 23 02:25 xtrabackup_55

-rwxr-xr-x 1 root root 11633272 May 23 02:25 xtrabackup_56

通过一个实例,展现xtrabackup全备完整的备份恢复过程,以及注意的问题。

1  创建一个全备 

Innobackupex  --user=root  --password=passwd  /root/mysqlbackup/

这样就创建了一个全备,备份文件存储在以时间戳为目录名下面,

还有以下选项 

--defaults-file=/etc/my.cnf 备份时使用的mysql配置文件

--no-timestamp 不以时间戳命名目录名

2  创建了备份之后,数据还不能用于恢复。一些某提交的事务还可能未撤销或者日志中的事务要重播,为了保证数据一致性,我们需要apply日志到备份的文件上。

 innobackupex --apply-log /root/mysqlbackup/2013-06-14_16-20-56

这样备份的数据就可以应用与恢复

3  drop database mysql 然后恢复

 innobackupex --user=root --copy-back /root/mysqlbackup/2013-06-14_16-20-56

恢复完毕,改变数据文件的权限,启动数据库

chown  -R mysql:mysql    /usr/local/mysql/data

 需要注意的是,全恢复情况下,

  1 服务器必须关闭,只要部分恢复的时候,服务器不用关闭。

  2 datadir参数目录必须为空,如果存在文件,--copy-back 将不拷贝

  3  每次操作完毕,确认日志最后是否有 innobackupex: completed OK!标志着动作的完成。

 

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn