news 2026/10/7 19:39:27

数据库备份 + 灾难恢复演练:从 dump 恢复全库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库备份 + 灾难恢复演练:从 dump 恢复全库

背景
服务器上的 MariaDB 存着监控数据,虽然不多,但没了就没了。

做了个备份脚本:

dockerexecmy-mariadb mariadb-dump-uroot-p密码 --all-databases>backup.sql

但从来没验证过——备份文件真的能恢复吗?
原因
备份不算备份,能恢复的才叫备份。
很多人做了备份,但从没验证过。真出事时才发现:
备份文件是空的(dump 命令写错了)
备份文件中途中断(数据库太大,命令超时被杀)
备份文件格式不对(编码问题、换行问题)
根本没配定时任务(备份文件是半年前的)
没演练过的备份,等于没有备份。

解决
第一步:写备份脚本

#!/bin/bashset-euopipefailBACKUP_DIR="/home/YOUR_USER/db-backups"KEEP_DAYS=7mkdir-p"$BACKUP_DIR"TS=$(date+%F-%H%M)BACKUP_FILE="$BACKUP_DIR/all-databases-$TS.sql"# 备份dockerexecmy-mariadb mariadb-dump\-uroot-pYOUR_DB_PASSWORD\--all-databases\--single-transaction\--routines--triggers--events\>"$BACKUP_FILE"# 验证:结尾必须有 "Dump completed"if!tail-5"$BACKUP_FILE"|grep-q"Dump completed";thenecho"❌ 备份不完整"rm-f"$BACKUP_FILE"exit1fi# 清理 7 天前的备份find"$BACKUP_DIR"-name"*.sql"-mtime+$KEEP_DAYS-deleteecho"✅ 备份完成:$BACKUP_FILE"

关键参数:

参数作用
--all-databases备份所有库
--single-transaction不锁表(InnoDB)
--routines包含存储过程
--triggers包含触发器
--events包含定时事件

第二步:加到定时任务

crontab -e

加一行(每天凌晨 3 点备份):

0 3 * * * /home/YOUR_USER/backup.sh >> /home/YOUR_USER/backup.log 2>&1

第三步:灾难恢复演练(关键)
这一步才是重点。

假设服务器挂了,要在新服务器上恢复。步骤:

  1. 拉一个干净的 MariaDB 容器
docker run -d --name test-mariadb \ -e MYSQL_ROOT_PASSWORD=临时密码 \ mariadb:latest
  1. 等它健康
sleep 30 docker exec test-mariadb mariadb -uroot -p临时密码 -e "SELECT 1;"
  1. 恢复备份
dockerexec-itest-mariadb mariadb-uroot-p临时密码<~/db-backups/all-databases-2026-10-06.sql
  1. 验证数据真的恢复了
dockerexectest-mariadb mariadb-uroot-p临时密码-e"SHOW DATABASES;"dockerexectest-mariadb mariadb-uroot-p临时密码 test_db-e"SELECT COUNT(*) FROM server_metrics;"

看到数据条数正常,才算恢复成功。
5. 清理测试容器

dockerstop test-mariadb&&dockerrmtest-mariadb

第四步:把演练写进 SOP
每次改过备份脚本或升级数据库版本后,必做一次演练。

三个坑
坑 1:备份文件没验证完整性

mariadb-dump 中途超时被杀,会生成一个半截的 sql 文件,看着有几十 M,其实恢复不了。

验证方法:文件结尾必须有 – Dump completed on …。没有就不算成功。

坑 2:只备份,不演练

备份脚本写得再漂亮,没演练过就不知道能不能用。等到真出事才发现备份坏了——那就晚了。

建议:每季度演练一次,把恢复流程跑一遍。

坑 3:备份文件没异地、没保留策略

备份全在同一台服务器上——服务器硬盘坏了,备份也没了。

建议:

保留 7 天(本地)

每周拉一份到对象存储(腾讯云 COS、阿里云 OSS)

3 个月内不删除

阅读分享:强烈推荐一本小说《黎明之剑》。它既有宏大的世界观,也融入了对信息、网络与文明安全的思考。喜欢宏大叙事和网络安全题材的朋友,相信会读得很过瘾。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 19:36:15

AI编程智能体的本质:操作系统层的闭环执行体

1. 从“能写代码”到“会做事”&#xff1a;AI智能体不是更聪明的Copilot很多人第一次听说“AI编程智能体”&#xff0c;下意识就把它当成一个升级版的GitHub Copilot——输入一段注释&#xff0c;它吐出几行Python&#xff1b;敲个git status&#xff0c;它自动补全git add . …

作者头像 李华
网站建设 2026/10/7 19:35:30

隧道射流风机PLC自动控制系统设计:IO分配、梯形图与组态

做隧道射流风机自动控制系统设计&#xff0c;不是把几台风机按钮接到PLC上那么简单。真正动手时会发现&#xff1a;风机正反转切换怎么联锁、CO/VI传感器信号怎么进模拟量通道、自动联动要不要考虑多台风机轮换、上位机画面跟PLC地址对不上怎么办——这些问题每一个都能让调试现…

作者头像 李华