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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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
相关文章
|
5天前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
38 10
|
2天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
6天前
|
运维 监控 Devops
自动化运维之路:从脚本到DevOps
【9月更文挑战第4天】本文通过探索自动化在运维中的应用,揭示从简单的shell脚本到复杂的DevOps实践的转变过程。我们将讨论如何利用自动化工具来提升效率、减少错误并优化工作流程,同时分享一些实用的代码示例,帮助读者理解自动化运维的实际应用场景。
24 5
|
4天前
|
运维 监控 API
自动化运维:使用Python脚本进行日常管理
【9月更文挑战第6天】在现代的IT环境中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何通过Python脚本简化日常的运维任务,包括批量配置管理和日志分析。我们将从基础语法讲起,逐步深入到脚本的实际应用,旨在为读者提供一套完整的解决方案,以实现运维工作的自动化和优化。
11 1
|
6天前
|
机器学习/深度学习 人工智能 运维
自动化运维的演变之路:从脚本到智能
在数字化浪潮中,自动化运维如同一艘船,载着企业乘风破浪。本文将带你穿梭于自动化运维的历史长河,见证它如何从简单的脚本编写,发展成为今天集成了人工智能技术的智能运维平台。我们将探索这一变革背后的原因、影响以及面临的挑战,同时分享一些行业内的成功案例,为你的企业运维之旅提供启示和方向。
|
9天前
|
运维 Linux 测试技术
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第34天】在快节奏的IT环境中,自动化运维成为提升效率、降低错误率的关键。本文以Python脚本为例,展示如何通过编写简单的脚本来自动化日常运维任务,如批量更改文件权限、自动备份数据等。文章不仅提供代码示例,还探讨了自动化运维带来的益处和实施时应注意的问题。
|
9天前
|
运维 监控 网络安全
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第33天】在本文中,我们将深入探讨如何通过Python脚本来自动化执行常见的运维任务。从基础的服务器健康检查到复杂的部署流程,Python因其简洁和功能强大的特性,成为自动化工具的首选。文章将展示编写Python脚本的基本方法,并通过实际示例演示如何应用于真实场景,旨在帮助读者提升效率,减少重复性工作。
|
9天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第34天】在数字化时代,高效运维成为企业竞争力的关键。本篇文章将引导你通过Python脚本实现自动化运维,从而提升工作效率和减少人为错误。我们将从简单的文件备份脚本开始,逐步深入到系统监控和自动报告生成,让你的日常工作更加轻松。
|
11天前
|
运维 监控 搜索推荐
自动化运维之宝典:Python脚本实现日常任务管理
在IT运维的日常工作中,重复性任务的自动化处理不仅能提高效率,还能减少人为错误。本文将介绍如何用Python编写简单脚本来自动化常见的运维任务,比如备份文件、监控系统资源和自动更新软件包。我们将一步步构建这些脚本,确保它们易于理解和扩展,最终目标是让读者能够自行定制脚本以适应自己的运维需求。 【8月更文挑战第31天】
|
11天前
|
运维 监控 数据可视化
自动化运维:使用Python脚本进行日志分析
【8月更文挑战第31天】当系统出现问题时,我们通常会查看日志寻找线索。然而,手动阅读大量日志既费时又易出错。本文将介绍如何使用Python脚本自动分析日志,快速定位问题,提高运维效率。我们将从简单的日志读取开始,逐步深入到复杂的正则表达式匹配和错误统计,最后实现一个自动化的日志监控系统。无论你是新手还是老手,这篇文章都将为你提供有价值的参考。让我们一起探索如何用代码解放双手,让运维工作变得更加轻松吧!