当前位置: 首页 > news >正文

mysql定期全量备份脚本

在工作过程中,因为问题排查的需要,可能需要将数据进行备份,

创建全量备份脚本/data/scripts/full_backup.sh,内容如下

#!/bin/bash # MySQL 全量备份脚本(使用 Xtrabackup 或 mysqldump) BACKUP_DIR="/data/backup/mysql/full" DATE=$(date +%Y%m%d_%H%M%S) BACKUP_PATH="$BACKUP_DIR/$DATE" LOG_FILE="/data/logs/binlog_backup/full_backup.log" log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE" } # 方法1:使用 mysqldump(适用于数据量较小的情况) log "开始 mysqldump 全量备份..." mysqldump \ -h192.168.56.80 \ -uroot \ -pYourRootPassword \ --all-databases \ --events \ --routines \ --triggers \ --master-data=2 \ --single-transaction \ --flush-logs \ > "$BACKUP_PATH.sql" if [ $? -eq 0 ]; then log "全量备份完成: $BACKUP_PATH.sql" # 记录 binlog 位置 head -50 "$BACKUP_PATH.sql" | grep "CHANGE MASTER TO" > "$BACKUP_PATH.pos" # 压缩备份 gzip "$BACKUP_PATH.sql" log "备份已压缩" else log "备份失败" exit 1 fi # 删除7天前的旧备份 find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +7 -delete find "$BACKUP_DIR" -type f -name "*.pos" -mtime +7 -delete log "清理7天前的旧备份完成"

将备份脚本添加到 crontab

# 每天凌晨2点执行全量备份 0 2 * * * /data/scripts/full_backup.sh > /dev/null 2>&1

当主库发生灾难性故障需要恢复时,按以下步骤操作:

# 1. 找到最近的备份 cd /data/backup/mysql/full LATEST_BACKUP=$(ls -1t *.sql.gz | head -1) LATEST_DATE=$(echo $LATEST_BACKUP | cut -d. -f1) # 2. 查看备份时的 binlog 位置 cat "$LATEST_DATE.pos" # 3. 解压并恢复全量备份 gunzip -c "$LATEST_BACKUP" | mysql -hNewMaster -uroot -p # 4. 找到恢复点之后的 binlog cd /data/backup/mysql/binlog # 假设备份时位置是 'mysql-bin.000123', 45678 # 5. 从备份点之后开始应用 binlog mysqlbinlog \ --start-position=45678 \ mysql-bin.000123 mysql-bin.000124 mysql-bin.000125 \ | mysql -hNewMaster -uroot -p
备份文件清理策略
创建清理脚本 /data/scripts/cleanup_binlog.sh:
#!/bin/bash # 清理过期的 binlog 备份 BINLOG_DIR="/data/backup/mysql/binlog" RETENTION_DAYS=30 # 删除30天前的 binlog 文件 find "$BINLOG_DIR" -name "mysql-bin.*" -type f -mtime +$RETENTION_DAYS -delete # 记录清理日志 echo "[$(date)] 清理 $RETENTION_DAYS 天前的 binlog 文件" >> /data/logs/binlog_backup/cleanup.log
http://www.jsqmd.com/news/1116895/

相关文章:

  • Three.js 3D热力图教程
  • 废弃购物车挽回攻略 YITH插件助你提升70%转化率的完整指南 - 易服客工作室
  • CVE申请全攻略:不止MITRE,VulDB等CNA渠道效率更高
  • 第115页的gtk+编程例子——进度条改写网上的例子用gtk4编译
  • 2026 上海小程序开发公:从技术底座、费用与落地路径全维度选型
  • 一人公司必备 AI 工具:5秒搞定电商详情页与爆款图文
  • 长行程高速工况下同步带模组的选型优势与场景适配性指南
  • Three.js 粒子泡泡教程
  • 特斯拉Cybercab无方向盘路测曝光!20个月落地,成本优势能否弯道超车?
  • 一线观察:市面上热门厨房空调生产商的长期真实表现
  • 乳胶漆是否越贵越环保?结合庆繁渠道聊聊选择误区
  • 前OpenAI联合创始人扔下“炸弹”:LLM-Wiki让知识编译保鲜,解放人类注意力!
  • 核聚变新势力!东昇聚变完成数亿融资,D-He3路线开启清洁聚变新想象
  • SSL证书验证失败全解析:从原理到实战解决方案
  • 2026年AI原生安全公司推荐:高口碑AI安全品牌优选指南
  • 阿里70亿-90亿出售灵犀互娱,All in AI下游戏业务缘何成弃子?
  • 谷歌 Nano Banana 2 Lite 上线:4 秒生图成本低,挑战字节文生图模型!
  • P84蛋白的多功能性
  • 告别手动刷课:智慧职教学习伴侣的30分钟高效学习法
  • API性能测试实战指南:从核心指标到k6工具全解析
  • 邢波团队论文重立“智能体”规矩:多数系统缺自主性,需内化架构实现蜕变
  • 海洋探测的未来!超导磁探测技术带来全新可能
  • 领域驱动设计实战--战略建模
  • Java毕设项目:乡村田园资源共享服务管理平台的设计与实现 休闲农业地块运营管理系统的设计与实现 (源码+文档,讲解、调试运行,定制等)
  • 飞牛NAS安全实战:高危漏洞分析与应急响应指南
  • Emlog CMS前台SQL注入漏洞深度剖析与实战复现
  • [特殊字符]《京东开放平台JOS接入全指南:注册、AppKey、OAuth2.0授权与沙箱调试(2026最新)》(附Python源码)
  • Qwen2-7B本地轻量部署:喂饭级一键推理工作流
  • Java SpringBoot+Vue3+MyBatis 物业管理系统系统源码|前后端分离+MySQL数据库
  • FM-200E 2M 误码仪:深耕煤矿通信运维,助力井下E1线路检测难题