# pxb_backup **Repository Path**: hh688/pxb_backup ## Basic Information - **Project Name**: pxb_backup - **Description**: xtrabackup 自动备份脚本 - **Primary Language**: Shell - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2024-05-21 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: xtrabackup, innobackupex, backup, 物理备份, MySQL ## README ## 简介 此项目基于两个脚本实现,[pxb_auto_backup.sh](https://gitee.com/hh688/pxb_backup/blob/master/pxb_auto_backup.sh) 脚本基于 XtraBackup 实现了 MySQL 的自动化备份,可选择全备和增备。[pxb_auto_recovery.sh](https://gitee.com/hh688/pxb_backup/blob/master/pxb_auto_recovery.sh) 脚本实现了基于 [pxb_auto_backup.sh](https://gitee.com/hh688/pxb_backup/blob/master/pxb_auto_backup.sh) 脚本的自动化恢复,并能够通过微信和企业微信对执行的状态进行通知。 ## 备份脚本:MySQL 自动备份 ### 介绍 [pxb_auto_backup.sh](https://gitee.com/hh688/pxb_backup/blob/master/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 ``` 如无法安装 qpress 可使用此链接 ``` wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar tar xf qpress-11-linux-x64.tar -C /usr/bin/ ``` #### 使用脚本 [pxb_auto_backup.sh](https://gitee.com/hh688/pxb_backup/blob/master/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](https://gitee.com/hh688/pxb_backup/blob/master/pxb_auto_recovery.sh) 脚本实现了基于 [pxb_auto_backup.sh](https://gitee.com/hh688/pxb_backup/blob/master/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](https://gitee.com/hh688/pxb_backup/blob/master/pxb_auto_recovery.sh) ``` # 安装格式转换工具 yum install -y dos2unix # 下载脚本 curl -o pxb_auto_recovery.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 > 使用微信扫描企业微信的微信插件码即可 ## 备份流程图 image-20240523下午33027355 ## 声明 以上内容仅供学习交流,使用前请自行验证。