【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup

简介

此项目基于两个脚本实现,pxb_auto_backup.sh 脚本基于 XtraBackup 实现了 MySQL 的自动化备份,可选择全备和增备。pxb_auto_recovery.sh 脚本实现了基于 pxb_auto_backup.sh 脚本的自动化恢复,并能够通过微信和企业微信对执行的状态进行通知。

备份脚本:MySQL 自动备份

介绍

pxb_auto_backup.sh 脚本基于 XtraBackup 实现了 MySQL 的自动化备份,可根据自身需求选择本地、远程、增备、全备的多种方式相结合的备份方式,并通过 pv 工具实现远程传输的流量控制。基于企业微信机器人实现了备份信息的通知。

功能

  • 本地全备
  • 本地增备
  • 远程全备
  • 远程增备
  • 传输限速
  • 微信通知
  • 备份定期清理
  • 日志定期清理
  • 并行备份
  • 并行压缩
  • 长查询 kill

限制

  • 仅在 centos 7 上进行了测试
  • 仅适用 MySQL 5.7 及以下版本
  • 需要安装 XtraBackup2.4
  • 需要安装 pv
  • 需要安装 mysql

使用说明

在进行备份时,如果从库开启了多线程复制 slave_parallel_workers 参数,为了避免死锁等多线程导致的问题,导致备份失败,会在备份期间修改为单线程复制。

如果主从负载压力较大并且从库作为读写分离的实例,请谨慎使用此脚本,避免主从延迟影响线上环境。

增量备份是基于每周的一次全备进行的,例如周一有一个全备,增备都会基于周一的全备做增备,恢复时,只需要恢复全备和需要那天的增备即可。

使用方法

安装 XtraBackup\pv\qpress
yum install -y  https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum -y install qpress pv percona-xtrabackup-24.x86_64
使用脚本

pxb_auto_backup.sh

# 安装格式转换工具
yum install -y dos2unix
# 下载脚本
curl -o pxb_auto_backup.sh https://gitee.com/hh688/pxb_backup/raw/master/pxb_auto_backup.sh
# 转化格式
dos2unix pxb_auto_backup.sh
# 添加权限
chmod 700 pxb_auto_backup.sh
# 修改参数定义
vim  pxb_auto_backup.sh  # 根据自身情况修改脚本内容
# 运行脚本
sh pxb_auto_backup.sh
# 后台运行
nohup sh pxb_auto_backup.sh &  # 后台运行适用于数据量大的情况
# 添加至定时任务可作为定时备份

恢复脚本:MySQL 自动恢复

介绍

pxb_auto_recovery.sh 脚本实现了基于 pxb_auto_backup.sh 脚本的自动化恢复,并能够通过微信和企业微信对执行的状态进行通知。

功能

  • 全备恢复
  • 增备恢复
  • 微信通知
  • 备份定期清理
  • 日志定期清理
  • 并行恢复
  • 并行解压
  • 磁盘空间提示

限制

  • 仅在 centos 7 上进行了测试
  • 仅适用MySQL 5.7 及以下版本
  • 需要安装 XtraBackup2.4

使用说明

增量备份是基于每周的一次全备进行的,例如周一有一个全备,增备都会基于周一的全备做增备,恢复时,只需要恢复全备和需要那天的增备即可。

使用前请保证服务器有充足的磁盘空间

使用方法

安装 XtraBackup
yum install -y  https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum -y install qpress pv percona-xtrabackup-24.x86_64
使用脚本

pxb_auto_recovery.sh

# 安装格式转换工具
yum install -y dos2unix
# 下载脚本
curl -o pxb_auto_backup.sh https://gitee.com/hh688/pxb_backup/raw/master/pxb_auto_recovery.sh
# 转化格式
dos2unix pxb_auto_recovery.sh
# 添加权限
chmod 700 pxb_auto_recovery.sh
# 修改参数定义
vim  pxb_auto_recovery.sh  # 根据自身情况修改脚本内容
# 运行脚本
sh pxb_auto_recovery.sh
# 后台运行
nohup sh pxb_auto_recovery.sh &  # 后台运行适用于数据量大的情况

配置微信报警

没有公司企业微信的高权限账号时,可以用自己的手机号创建个企业进行以下操作。

创建企业微信群机器人

https://blog.csdn.net/songjuntao8/article/details/127098226

这里获取的 webhook 地址写入脚本即可

微信内显示通知

想在微信内显示需要根据以下链接文档操作

https://blog.csdn.net/liaotianbao/article/details/121156978

使用微信扫描企业微信的微信插件码即可

声明

以上内容仅供学习交流,使用前请自行验证。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
运维 安全 Devops
DevOps实践:自动化部署的脚本编写技巧
【9月更文挑战第24天】在DevOps文化中,自动化部署是提升效率、减少人为错误的关键。本文将引导读者了解自动化部署脚本的编写方法,从基础命令到复杂逻辑,逐步深入。你将学会如何用代码简化日常任务,让重复工作变得轻松愉快。让我们一起探索自动化的世界,释放你的创造力!
|
19天前
|
运维 Prometheus 监控
自动化运维的魔法:使用Python脚本简化日常任务
【8月更文挑战第50天】在数字化时代的浪潮中,自动化运维成为提升效率、减少人为错误的利器。本文将通过一个实际案例,展示如何利用Python脚本实现自动化部署和监控,从而让运维工作变得更加轻松和高效。我们将一起探索代码的力量,解锁自动化运维的神秘面纱,让你的工作环境焕然一新。
129 81
|
2天前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
10 2
|
6天前
|
运维 Devops jenkins
自动化运维之路:从脚本到DevOps
【9月更文挑战第31天】在数字化时代的浪潮中,运维不再是单纯的系统维护,而是企业竞争力的加速器。本文将带你领略自动化运维的演变历程,从最初的脚本编写到现代DevOps实践的转变,揭示如何通过持续集成和持续交付(CI/CD)实现运维的高效与创新。我们将一起探索工具的选择、流程的优化以及文化的培养,让运维工作变得既简单又强大。
|
8天前
|
机器学习/深度学习 人工智能 运维
自动化运维的魔法:如何利用Python脚本提升工作效率
【9月更文挑战第29天】在数字时代的浪潮中,IT运维人员面临着前所未有的挑战和机遇。本文将通过深入浅出的方式,介绍自动化运维的基本概念、核心价值以及使用Python脚本实现自动化任务的方法。我们将从实际案例出发,探讨如何利用Python简化日常的系统管理任务,提高运维效率,并展望自动化运维的未来趋势。无论你是初学者还是有经验的运维专家,这篇文章都将为你开启一扇通往高效工作方式的大门。
13 2
|
8天前
|
运维 监控 jenkins
自动化运维之路:从脚本到工具的演变
【9月更文挑战第29天】在数字化浪潮中,运维不再是简单的服务器管理。本文将带您穿越自动化运维的发展历程,揭示如何通过技术革新提升效率与可靠性。我们将探索自动化工具如何解放双手,实现快速部署、监控和故障恢复,最终达到高效运维的目标。
|
9天前
|
运维 监控 关系型数据库
自动化运维:编写基本的自动化脚本
自动化运维:编写基本的自动化脚本
10 1
|
12天前
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
15 4
|
14天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【9月更文挑战第23天】在本文中,我们将探索如何通过编写Python脚本来自动化常见的系统管理任务,从而提升效率并减少人为错误。文章将介绍基础的Python编程概念、实用的库函数,以及如何将这些知识应用于创建有用的自动化工具。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供有价值的见解和技巧,帮助你在日常工作中实现自动化。
|
16天前
|
运维 监控 安全
自动化运维:使用Python脚本简化日常任务
【9月更文挑战第21天】在快速迭代的软件开发环境中,运维工作往往因为重复性高、易出错而被诟病。本文将介绍如何通过编写简单的Python脚本来自动化这些日常任务,从而提升效率和减少错误。我们将以实际案例为基础,展示如何从零开始构建一个自动化脚本,并解释其背后的原理。文章旨在启发读者思考如何利用编程技能来解决工作中的实际问题,进而探索技术与日常工作流程结合的可能性。

热门文章

最新文章

下一篇
无影云桌面