1. 项目背景与核心需求
数据库备份是每个运维工程师和开发者的必修课。记得2013年某次服务器宕机事故,由于缺乏有效的备份机制,导致公司损失了整整三天的订单数据。自那以后,我养成了给所有MySQL数据库上"双保险"的习惯——本地备份+异地容灾。
这个脚本的诞生源于一个经典场景:当你完成本地备份后,服务器机房突发火灾/水灾/断电,所有本地存储设备同时损毁。这时候,异地的备份文件就是救命稻草。我见过太多团队只做本地备份,最终在灾难发生时追悔莫及。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案选型
2.1 备份工具对比
bash复制# 常用备份方式对比表
| 工具 | 备份速度 | 恢复便利性 | 存储占用 | 适用场景 |
|---------------|----------|------------|----------|--------------------|
| mysqldump | 慢 | 简单 | 大 | 小型数据库全量备份 |
| xtrabackup | 快 | 复杂 | 小 | 大型数据库热备份 |
| mysqlpump | 中等 | 简单 | 中等 | 8.0+版本并行备份 |
最终选择mysqldump方案,原因有三:
- 兼容所有MySQL版本(包括老旧的5.6环境)
- 生成的SQL文件可直接阅读验证
- 恢复时无需额外工具
提示:如果数据库超过50GB,建议改用xtrabackup,本文方案可能耗时过长
2.2 传输协议选择
bash复制# 传输方式对比
| 协议 | 端口 | 安全性 | 速度 | 需开放权限 |
|---------|-------|--------|--------|------------------|
| SCP | 22 | 高 | 慢 | 服务器SSH登录权 |
| RSYNC | 873 | 中 | 快 | 守护进程配置权限 |
| FTP | 21 | 低 | 中等 | FTP账户权限
