欢迎光临
我们一直在努力

XtraBackup基本安装及innobackupex使用方法,远程备份

#获得下载地址
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm

yum install percona-xtrabackup-2.3.3-1.el6.x86_64.rpm

#完全备份
innobackupex –user=root –password=123456  /db_bak

#恢复,已复制整个结构的方式恢复数据库,执行前必须stop mysql服务,否则会出现不可预知的错误
service mysqld stop
#此时恢复还是会报 /var/lib/mysql/ is not empty,需要删掉/var/lib/mysql/目录下所有的文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#全量恢复
innobackupex –user=root –password=123456 –apply-log /db_bak/2016-01-13_14-21-24/ —回写日志这一步 不能少
innobackupex –user=root –password=123456 –copy-back /db_bak/2016-01-13_14-21-24/ 
#设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
chown -R mysql:mysql /var/lib/mysql/
service mysqld start

#增量备份

innobackupex  –user=root –password=123456 –incremental-basedir=/db_bak/2016-01-13_14-21-24  –incremental /db_bak

#增量备份恢复:
#将所有的增量备份挨个应用到完整备份的数据文件中,然后再将完整备份中的数据恢复到数据库中
#停止mysql服务(必须)
service mysqld stop
#删除数据文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#重做全备份的日志
innobackupex –apply-log –redo-only /db_bak/2016-01-13_14-21-24/
#应用第一个增量备份
innobackupex –user=root –password=123456  –apply-log /db_bak/2016-01-13_14-21-24/ –incremental-dir=/db_bak/2016-01-14_11-47-00/ 

#日志已经写入全备份中,重做全备份即可
innobackupex –user=root –password=123456 –apply-log /db_bak/2016-01-13_14-21-24/  —回写日志这一步 不能少
innobackupex –user=root –password=123456 –copy-back /db_bak/2016-01-13_14-21-24/ 
#删除mysql日志,这一步步能少
MySQL目录下的ib_logfile0和ib_logfile1两个文件
cd /var/lib/mysql/
cp ib_logfile0 ib_logfile0_bak
cp ib_logfile1 ib_logfile1_bak
rm -rf ib_logfile0
rm -rf ib_logfile1
#设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
chown -R mysql:mysql /var/lib/mysql/
service mysqld start

#出现数据崩溃 或者 如copied innodb but log 不符的情况
需要设置
innodb_force_recovery=6
innodb_purge_thread=0
重启服务,
然后 在mysqldump导出数据库逻辑备份
在将 设置改成默认
innodb_force_recovery=0
innodb_purge_thread=1
重启服务 还原数据库即可,

出现MySQL Plugin ‘InnoDB’ init function returned error.
删除MySQL目录下的ib_logfile0和ib_logfile1两个文件,就可以解决问题了
mysql 会重新生成这两个日志

#远程备份,备份到10.50.85.104,需要安装sshpass
cd /etc/yum.repos.d

wget http://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo

yum install sshpass

#压缩
innobackupex –user=root –password=123456 –stream=tar ./ | gzip | sshpass -p ‘WCcj1Fylr5Hc!@’ ssh root@10.50.85.104 “cat – > /var/db_bak/backup.tar.gz”

#备份mysiam表

 myisam表的备份则是通过发出命令flush tables with read lock,然后拷贝myisam的相关表文件 
所以此时 只能进行读 不能进行任何写操作 这里指针对所有库

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。