percona软件介绍 、 innobackupex备份与恢复

一、percona软件的作用

在这里插入图片描述

XtraBackup工具

在这里插入图片描述

安装percona

[root@proxy ~]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm   #依赖包
[root@proxy ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

在这里插入图片描述

innobackupex命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完全恢复

51设备上
[root@proxy ~]# innobackupex --user root -p 123qqq...A /root/all12 --no-timestamp 
[root@proxy ~]# scp -r  all12 [email protected]:/root/

52设备上
 systemctl stop mysqld       #前提条件
 rm  -rf /var/lib/mysql/*
[root@proxy1 ~]# innobackupex --apply-log /root/all12/  #执行准备恢复数据,执行完后type会发生改变

在这里插入图片描述
在这里插入图片描述

[root@proxy1 ~]# innobackupex --copy-back /root/all12/   #前提条件是必须要把mysql的目录(var)删除,而且mysql下的文件必须要改所有者和所有组(mysql)
systemctl  start mysqld

部分恢复

52主机 仅恢复 b表的表记录

先delete清空表的内容
 mysql> alter table  gamedb.b  discard  tablespace;  删除b表的.ibd文件、
[root@proxy1 ~]# innobackupex --apply-log --export /root/full1.bak/  #该命令会多生成2个文件
[root@proxy1 ~]# ls full1.bak/dd1/
db.opt  t1.cfg  t1.exp  t1.frm  t1.ibd 
[root@proxy1 ~]# cp full1.bak/dd1/t1.{cfg,exp,ibd} /var/lib/mysql/dd1/  #把这三个文件拷贝到对应的MySQL目录下
[root@proxy1 ~]# chown -R mysql:mysql /var/lib/mysql
mysql> alter table dd1.t1 import tablespace;  #把.ibd文件导入到数据库
  删除.cfg和.exp文件,不删会导致将来对应的数据库无法删除

在这里插入图片描述
.frm:表结构(desc) .ibd:表记录(select) .cfg和.exp:特殊的innodb数据字典文件
在这里插入图片描述

51设备上
如周一完全备份
[root@proxy ~]# innobackupex --user root --password 123qqq...A /root/full3.bak --no-timestamp
周二增量备份
[root@proxy ~]# innobackupex --user root --password 123qqq...A --incremental /root/nwe1dir --incremental-basedir=/root/full3.bak --no-timestamp 
周三增量备份
[root@proxy ~]# innobackupex --user root --password 123qqq...A -incremental /root/new2dir --increment-basedir=/root/new1dir --no-timestamp

拷贝给52设备
[root@proxy1 ~]# innobackupex --apply-log --redo-only /root/full3.bak/ #先准备完全备份的数据
[root@proxy1 ~]# innobackupex --apply-log --redo-only /root/full3.bak/ --incremental-dir=/root/nwe1dir  #合并周一与周二数据
[root@proxy1 ~]# cat full3.bak/xtrabackup_checkpoints #查看数据是否改变
[root@proxy1 ~]# innobackupex --apply-log --redo-only /root/full3.bak/  --incremental-dir=/root/nwe2dir/ #合并所有数据
[root@proxy1 ~]# cat full3.bak/xtrabackup_checkpoints    #检查数据设备合并成功,查看lns日志序列号是否已改变

然后
 systemctl stop mysqld       #前提条件
 rm  -rf /var/lib/mysql/*
[root@proxy1 ~]# innobackupex --copy-back /root/full3.bak/   #把数据拷贝到数据库目录下
[root@proxy1 ~]#  chown  -R mysql:mysql /var/lib/mysql  #修改文件的所有者组用户为mysql 
  systemctl  start mysqld

完全备份准备好之后会变如下状态
在这里插入图片描述
做增量恢复是根据LNS日志序列号来恢复的,LNS序号存在日志文件里面

在这里插入图片描述

发布了25 篇原创文章 · 获赞 2 · 访问量 581

猜你喜欢

转载自blog.csdn.net/f5500/article/details/104399069