新闻详情

新闻详情

首页 / 资讯中心 / 详情

基于 Shell 的本地数据库一键备份与恢复

发布时间:2026/9/27 8:45:26来源:尧图网络
基于 Shell 的本地数据库一键备份与恢复
基于 Shell 的本地数据库一键备份与恢复在日常全栈开发与生产运维中数据库数据的安全性是悬在所有工程师头顶的达摩克利斯之剑本地执行测试脚本时不小心DROP掉了一张重要的数据表生产环境执行版本升级前需要对当前线上数据库做一次秒级的快照备份需要快速将生产环境的脱敏数据一键同步到本地开发环境进行复杂 Bug 复现。很多团队依赖庞大复杂的第三方备份 SaaS 工具配置繁琐且存在网络权限暴露的风险。用不到 30 行纯净严谨的 Bash Shell 脚本配合 Docker 原生命令我们可以打造一套秒级备份、自动 gzip 压缩、支持一键全量恢复的极简数据库容灾工具。极简备份脚本实现scripts/db-backup.sh#!/bin/bash set -euo pipefail # 基础配置 CONTAINER_NAMEstar-postgres DB_USERstar_dev DB_NAMEstar_app BACKUP_DIR./.backups/db TIMESTAMP$(date %Y%m%d_%H%M%S) BACKUP_FILE${BACKUP_DIR}/backup_${DB_NAME}_${TIMESTAMP}.sql.gz mkdir -p ${BACKUP_DIR} echo 正在执行数据库 [${DB_NAME}] 全量快照备份... # 1. 导出数据并实时通过 gzip 压缩 docker exec ${CONTAINER_NAME} pg_dump -U ${DB_USER} ${DB_NAME} | gzip ${BACKUP_FILE} FILE_SIZE$(ls -lh ${BACKUP_FILE} | awk {print $5}) echo ✅ 备份成功备份文件: ${BACKUP_FILE} (体积: ${FILE_SIZE}) # 2. 自动清理机制本地仅保留最近 10 次历史备份防止撑爆磁盘 echo 正在清理超过 10 个的陈旧备份快照... ls -t ${BACKUP_DIR}/backup_*.sql.gz | tail -n 11 | xargs -I {} rm -- {} 2/dev/null || true echo ✨ 备份收尾完毕极简一键恢复脚本实现scripts/db-restore.sh当发生误操作或需要回滚到特定快照时执行一键恢复#!/bin/bash set -euo pipefail CONTAINER_NAMEstar-postgres DB_USERstar_dev DB_NAMEstar_app BACKUP_DIR./.backups/db # 检查是否存在备份文件 LATEST_BACKUP$(ls -t ${BACKUP_DIR}/backup_*.sql.gz 2/dev/null | head -n 1 || true) if [ -z ${LATEST_BACKUP} ]; then echo ❌ 错误: 未在 ${BACKUP_DIR} 中找到任何可用的备份文件 exit 1 fi TARGET_FILE${1:-$LATEST_BACKUP} echo ⚠️ [高危警告] 即将使用快照 [${TARGET_FILE}] 覆盖当前数据库 [${DB_NAME}] read -p 确认继续执行覆盖恢复吗(y/N): confirm if [[ ! $confirm ~ ^[yY]$ ]]; then echo 操作已取消。 exit 0 fi echo 正在执行解压与全量数据库恢复... # 1. 终止已有活动连接防止锁冲突 docker exec ${CONTAINER_NAME} psql -U ${DB_USER} -d postgres -c \ SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname ${DB_NAME} AND pid pg_backend_pid(); /dev/null # 2. 重建干净数据库并导入 docker exec ${CONTAINER_NAME} psql -U ${DB_USER} -d postgres -c DROP DATABASE IF EXISTS ${DB_NAME}; /dev/null docker exec ${CONTAINER_NAME} psql -U ${DB_USER} -d postgres -c CREATE DATABASE ${DB_NAME}; /dev/null gunzip -c ${TARGET_FILE} | docker exec -i ${CONTAINER_NAME} psql -U ${DB_USER} -d ${DB_NAME} /dev/null echo 数据库恢复成功数据已完全还原至快照时间点。生产集成与定时任务Crontab在生产服务器上只需在crontab -e中配置一行定时任务# 每天凌晨 03:00 自动执行一次数据库冷备 0 3 * * * /bin/bash /opt/star-app/scripts/db-backup.sh /var/log/db_backup.log 21配合rclone或云厂商 CLI可顺手将压缩包同步至跨区域的云存储冷归档中每月存储成本不到 1 块钱。总结真正的安全感来自于底层的极简与可控。不到 30 行纯粹的 Shell 脚本把数据库备份与灾难恢复做到极致轻量、透明可靠。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Open Pencil Vue SDK 实战:用 useVariablesDialogState 打造自定义变量编辑对话框 2026/9/27 9:36:11

Open Pencil Vue SDK 实战:用 useVariablesDialogState 打造自定义变量编辑对话框

前端桌面应用AI 应用MCP 服务 【免费下载链接】open-pencil AI-native design editor. Open-source Figma alternative. 项目地址: https://gitcode.com/gh_mirrors/op/open-pencil 点击查看 免费下载 useVariablesDialogState() 是 Open Pencil Vue SDK 中面向「变…

阅读更多 →
深圳网络优化培训2026最新:备案不卡壳的实战指南 2026/9/27 9:35:52

深圳网络优化培训2026最新:备案不卡壳的实战指南

深圳网络优化培训2026最新:备案不卡壳的实战指南 刚接触深圳网络优化培训的朋友,是不是对着备案流程一头雾水?明明照着网上旧教程操作,服务器一提交就被打回,改了三遍还是卡在“主体信息不一致”上,心态直接崩了。别慌,这正是2026年最新政策调…

阅读更多 →
企业建站平台哪个好?看完这7步完整流程不再被坑 2026/9/27 9:35:52

企业建站平台哪个好?看完这7步完整流程不再被坑

企业建站平台哪个好?看完这7步完整流程不再被坑 找建站公司怕被坑高价?别急,先搞懂这7步完整流程。很多老板一上来就问“哪家便宜”,结果网站做出来慢如蜗牛,后台操作像填表,SEO更是零分。 选对平台比选对供应商更重要。…

阅读更多 →
Ultimate Vocal Remover 完整上手:3 步把任意歌曲拆成人声与伴奏 2026/9/27 9:35:45

Ultimate Vocal Remover 完整上手:3 步把任意歌曲拆成人声与伴奏

Ultimate Vocal Remover 完整上手:3 步把任意歌曲拆成人声与伴奏 【免费下载链接】ultimatevocalremovergui GUI for a Vocal Remover that uses Deep Neural Networks. 项目地址: https://gitcode.com/GitHub_Trending/ul/ultimatevocalremovergui Ultimat…

阅读更多 →
第241篇_多源天气API聚合对比采集 2026/9/27 9:35:45

第241篇_多源天气API聚合对比采集

【Python爬虫实战】第241篇:三个天气API一起拉,谁的数据更靠谱——和风/OpenWeather/心知天气三源聚合对比实战 所属专栏:【Python爬虫实战】从零到企业级爬虫工程师(CSDN 付费专栏) 本篇篇目:第 241 篇(多源数据采集专题) 难度等级:中级,需要掌握 requests 与多线程…

阅读更多 →
Silo擦除编码原理解析:EC集合、奇偶校验与读写仲裁如何守护你的数据 2026/9/27 9:35:45

Silo擦除编码原理解析:EC集合、奇偶校验与读写仲裁如何守护你的数据

Silo擦除编码原理解析:EC集合、奇偶校验与读写仲裁如何守护你的数据 【免费下载链接】silo S3-Compatible Object Storage. A MinIO fork maintained by PGSTY 项目地址: https://gitcode.com/gh_mirrors/minio5/silo Silo 是一款 S3 兼容的对象存储服务&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉