MySQL--基于Xtrabackup+Shell+Crond实现的数据库(全量+增量)热备份方案

【实战背景】

不管你是正在上学,还是已经工作了,想必多多少少都听说过发生rm -rf删库跑路的情况,主要指的就是被有意无意的删除掉了数据库的数据,而数据是整个业务最重要的价值体现,如果你的公司或者项目组没有一个成熟的数据库数据备份方案,一旦发生意外,我只能说年轻人,大意了吧,没有备份数据库!!!

数据库备份方案根据实际需要进行定制,一般比较主流的方案是方案一:每周一次全量备份+每天一次增量备份,主要是为了节省MySQL数据库服务器的空间(省钱),当然如果老板比较有钱,光是MySQL服务器的空间就有几千个G,空间大,比较任性的,直接方案二:每天做一次全量备份也可以~

本文主要介绍基于Xtrabackup实现MySQL数据库的全量备份+增量备份方案~

很细,建议先点⭐收藏,预防走丢❤️‍,进入正文~

一、Xtrabackup介绍

官方介绍文档
在这里插入图片描述

简单总结下来就是XtraBackupPercona旗下的一款产品,支持MySQL数据库的热备份(在线不停机),并且是免费开源,适用所有MySQL版本非阻塞紧密压缩高度安全~

在这里插入图片描述
心动就先点一下⭐收藏呗! 哈哈哈,回归正题,进入实战演练~

二、Xtrabackup安装

2.1 版本说明

(1)Percona XtraBackup 2.4版本,支持 MySQL 5.1 [1]、5.5、5.6 和 5.7服务器上的InnoDB数据库备份,但不支持MySQL 8.0 数据库备份。
(2)Percona XtraBackup8.0版本,仅支持MySQL 8.0服务器上存储引擎为InnoDB的数据库备份,但不支持在MySQL 8.0之前版本的数据库备份~

Percona XtraBackup 8.0 官方文档
在这里插入图片描述
Percona XtraBackup 2.4 官方文档
在这里插入图片描述

2.2 资源准备

2.2.1 查看操作系统

查看服务器 lsb_release -a
在这里插入图片描述
我的操作系统信息是Linux CentOS 7.7.1908 位数64,那么我后面我需要下载对应的相关安装包~

2.2.2 查看MySQL版本号

方式一:Linux终端命令行
mysql -V
在这里插入图片描述

方式二:MySQL终端命令行
mysql> select version();
在这里插入图片描述
根据前面【版本说明】提到的MySQL5.7应该选择的是Percona XtraBackup 2.4相关版本~

2.2.3 资源下载

这里我个人操作系统环境对应安装的资源及版本如下:

XtraBackup其他版本官方下载 https://www.percona.com/downloads/

XtraBackup 8.0
XtraBackup 2.4
在这里插入图片描述
在这里插入图片描述

(1)问题:
有同学问,你为啥下载的是rpm包,我选择的却是tar.gz安装包?而且你为啥不直接在服务器通过wget +资源url在线下载呢?简单又省事~
(2)回答:
首先下载什么包,这个跟你选择的操作系统有关,选择Linux-Generic是通用版本的,对应tar.gz包,我选择的是CentOS7,对应rpm安装包~
其次下载好rpm的安装包后,再进行离线安装这种方式,我个人觉得比较稳妥,因为实际生产环境很多都是内网,无法直接在线下载安装,因此需要提前下载好离线安装包,再上传到服务器,进行安装~
在这里插入图片描述

2.2.4 资源上传

按实际需要,创建存放安装资源的目录~

mkdir -p /opt/mysql/xtrabackup
cd /opt/mysql/xtrabackup

2.3 开始安装

2.3.1 安装xtrabackup

先查看是否已安装~

rpm -qa |grep xtrabackup

若没有任何提示信息,说明未安装,再使用root用户进行操作安装~

cd /opt/mysql/xtrabackup
yum -y localinstall percona-xtrabackup-24-2.4.19-1.el7.x86_64.rpm

提示如下,表明安装成功~
在这里插入图片描述

2.3.2 安装libv

libvxtrabackup的依赖包,如果使用yum命令已经正常安装Xtrabackup,这步可以跳过~

但是有的小伙伴可能没有使用yum命令安装Xtrabackup:

yum -y localinstall percona-xtrabackup-24-2.4.19-1.el7.x86_64.rpm

而是使用了rpm命令进行安装Xtrabackup:

rpm -ivh percona-xtrabackup-24-2.4.19-1.el7.x86_64.rpm

PS:yumrpm最大的区别就是通过yum命令安装缺失包时,会自动去加载需要的包,而通过rpm命令安装缺失包时,不会自动去加载缺失的包,而是直接报错~

所以当使用rpm命令安装xtrabackup时,此时安装xtrabackup需要依赖libev,如果libev没安装,则会安装失败,报错关键信息如下:
libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.19-1.el7.x86_64

这种情况就需要下载对应版本的依赖包libev进行安装,再继续安装xtrabackup~

(1)下载libev包
推荐比较靠谱的rpm包下载地址:http://rpm.pbone.net/
在这里插入图片描述
根据我的操作系统及操作系统版本号(CentOS 7.7.1908 位数x64)对应的libevrpm安装包版本是 libev-4.04-2.el5.x86_64.rpm~
在这里插入图片描述

另外两个也挺靠谱的rpm包下载地址:
https://pkgs.org/search/?q=libev
https://rpmfind.net/linux/rpm2html/search.php?query=libev

(2)查看是否已安装libev~

rpm -qa |grep libev

若没有任何提示信息,说明未安装,再使用root用户进行操作安装~

cd /opt/mysql/xtrabackup
rpm -ivh libev-4.15-7.el7.x86_64.rpm

再使用rpm命令进行安装Xtrabackup:

rpm -ivh percona-xtrabackup-24-2.4.19-1.el7.x86_64.rpm

安装成功,提示如下信息:
在这里插入图片描述
不过还是更推荐大家使用yum命令进行安装Xtrabackup:

yum -y localinstall percona-xtrabackup-24-2.4.19-1.el7.x86_64.rpm

2.3.3 卸载重装

如果想要重装libevxtrabackup,需要先卸载原来安装的,不需要卸载这步可以忽略~

(1)查询

rpm -qa |grep libev
rpm -qa |grep xtrabackup

(2)卸载

yum -y remove libev
yum -y remove percona-xtrabackup

(3)再次查询

rpm -qa |grep libev
rpm -qa |grep xtrabackup

2.3.3 安装qpress

需要使用root用户操作安装qpressqpress主要用于xtrabackup备份数据库时对数据文件进行压缩(压缩文件后缀.qp)以及还原数据库时再对压缩数据文件(后缀.qp)进行解压,大大节省存储空间,当然如果老板非常有钱,服务器空间超大,不需要进行压缩的可以忽略~

安装过程

cd /opt/mysql/xtrabackup
tar -xvf qpress-11-linux-x64.tar
mv qpress /usr/bin
chmod 755 /usr/bin/qpress

三、MySQL开启binlog日志

3.1 什么是binlog日志?

简单点的说就是记录了MySQL修改和添加的操作信息,主要用于数据库的主从复制以及备份还原,几乎所有的第三方数据库备份及恢复,都需要依赖于这个binlog

  • 360
    点赞
  • 660
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 194
    评论
评论 194
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾日三省贾斯汀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值