分类: LINUX
2016-07-22 14:55:01
原文地址:xtrabackup备份恢复 作者:qingheliu
上面的命令有问题,正确的命令为:
/usr/local/xtrabackup/bin/xtrabackup_55 --user=root --password=k*****1 --backup --target_dir=/home/innodbbackup/ > /home/innodbbackup.log 2>&1
###创建一个完全备份
/home/innodbbackup/
目录可以不存在,如果不存在,自己可以创建!
备份的过程写入到/home/innodbbackup.log文件里!
或
备份后,去备份目录里面查看,见附件
或使用另外一个工具,
/usr/local/xtrabackup/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=k*****01 /home/innodbbackup/ > /home/innodbbackup.log 2>&1
这时提示有问题,见附件
解决方法:
cp /usr/local/xtrabackup/bin/* /usr/bin
再次执行上面的命令,提示无法创建目录,见附件
innobackupex:
Error: Failed to create backup directory
/home/innodbbackup//2013-10-20_00-06-58: No such file or directory at
/usr/local/xtrabackup/bin/innobackupex line 389
解决方法 :
mkdir /home/innodbbackup
上面是对所有的db进行完全的备份,如果仅仅需要备份其中的某个库或某个库的某个表,如下:
备份某个库中的某个表:
#
/usr/local/xtrabackup/bin/innobackupex
--include='^db1[.]rtmp*****new'
--user=root --password=ku****01 /home/innodbbackup
显然只是备份了db1.rtmp****new这张表,但其他的db还是会有的,尽管db是空的!
这个也可以实现对某个db的备份,只需要把单个表的表名替换成*即可
/usr/local/xtrabackup/bin/innobackupex --include='^db1[.]*' --user=root --password=k****01 /home/innodbbackup
2.2:增量备份:
innobackupex --incremental /home/incremental/
--incremental-basedir=/home/innodbbackup/2013-10-20_00-10-26/ --user=root --password=k*****01
或
2.3:恢复数据
我在test库中,创建一个最简单的表,往表中插入了3条数据,然后执行一次全备份。接着我将test库给删除了。
我准备使用权备份恢复,大概过程如下:
显然恢复的时候,必须使得var目录为空,并且mysql服务处于关闭状态,如果是在线状态,恢复不了!
drop database test;
cd /data/mysql/var
rm -fr *
/etc/init.d/mysqld stop[root@web1 var]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=k****01 --copy-back /home/innodbbackup/2013-10-20_01-52-26/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Ireland Ltd 2009-2012. All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
IMPORTANT: Please check that the copy-back run completes successfully.
At the end of a successful copy-back run innobackupex
prints "completed OK!".
……
cd /data/mysql/var
chown –R mysql: *
然后启动mysql ,/etc/init.d/mysql start
登录到机器上,查看记录数发现和以前记录数一样!
这两个工具的区别,见附件