维护与备份 OCI 服务器
为 OCI Linux 实例建立更新、配置记录、应用一致性备份、引导卷备份和恢复演练的日常制度。
#type / howto
#status / growing
#tech / ops
#resource / oracle-cloud
#platform / server
[!abstract] 核心结论 引导卷备份、文件备份和数据库导出解决的是不同问题。只有能够在另一环境成功恢复的备份,才算可用备份。
维护与备份 OCI 服务器
目标
- 每周可发现更新、磁盘、服务和安全问题;
- 配置与数据有异地副本;
- 知道每类数据用什么方式恢复;
- 引导卷备份不超过免费数量和存储边界;
- 至少完成一次从备份恢复的演练。
1. 建立资产与服务清单
记录但不提交秘密:
实例/引导卷/VNIC OCID
系统与架构
公网 IP 和域名
OCI NSG/Security List
开放端口
systemd 服务
Docker Compose 项目
数据目录
配置目录
备份目的地与保留周期
恢复负责人
2. 每周健康检查
uptime
free -h
df -hT
df -ih
sudo systemctl --failed
sudo journalctl -p warning --since '7 days ago' --no-pager
sudo ss -lntup
sudo ufw status verbose
sudo fail2ban-client status sshd
docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}' 2>/dev/null || true
关注磁盘 inode、意外监听端口、失败服务和容器重启循环。
3. 安全更新
先看待更新项:
sudo apt-get update
apt list --upgradable
变更前备份关键配置和数据,再更新:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
test -f /var/run/reboot-required && cat /var/run/reboot-required || true
内核、SSH、Docker 或数据库升级后安排维护窗口和回归验证。
4. 配置备份
适合版本化但必须脱敏的内容:
- Compose、Caddy/Nginx 配置;
- systemd unit;
- 部署脚本;
- 包和镜像版本;
- 防火墙规则的文本导出。
不进入普通 Git:私钥、.env、数据库密码、API token、MFA 恢复码、真实备份数据。
示例导出:
sudo sshd -T > sshd-effective.txt
sudo ufw status numbered > ufw-rules.txt
docker compose config > compose-rendered.yaml
dpkg-query -W -f='${binary:Package}\t${Version}\n' > packages.tsv
检查输出是否含秘密后再传输。
5. 应用一致性备份
PostgreSQL
pg_dump --format=custom --file=app-$(date +%F).dump DATABASE_NAME
pg_restore --list app-YYYY-MM-DD.dump | head
文件服务
停止写入或使用应用自带快照后再归档:
sudo tar --xattrs --acls -C /srv -czf app-data-$(date +%F).tar.gz app-data
sha256sum app-data-$(date +%F).tar.gz > app-data-$(date +%F).sha256
直接复制正在写入的数据库目录不能保证一致性。
6. OCI 引导卷备份
OCI Boot Volume Backup 是时间点、crash-consistent 快照,可在实例运行或停止时创建。它适合快速恢复整个系统,但不一定保证数据库应用一致。
操作前:
- 检查当前免费卷备份总数;
- 给备份写清日期、原因和源实例;
- 大变更前做手动备份;
- 定期删除确认不再需要的旧备份;
- 重要数据另做跨供应商/本地副本。
7. 3-2-1 备份
- 至少 3 份数据;
- 使用 2 种不同介质/系统;
- 至少 1 份在 OCI 之外。
OCI 实例、同区域块卷和同账号 Object Storage 不能完全视为三个独立故障域。
8. 恢复演练
每季度选择一个小服务:
- 创建空目录或临时实例;
- 恢复配置;
- 恢复数据库/数据文件;
- 启动服务;
- 验证登录、读写和关键业务;
- 记录耗时、缺失步骤和秘密来源;
- 清理临时资源并检查费用。
验证清单
- 最近备份成功且有校验和
- 至少一个副本位于 OCI 之外
- 数据库使用逻辑/应用一致性备份
- 引导卷备份数量在免费边界内
- 恢复文档不依赖某个人的记忆
- 最近一次恢复演练成功
- 备份中秘密已加密且密钥分开保存
Related notes
- 所属 MOC:甲骨文云服务器 MOC
- 备份地图:数据备份 MOC
- 生命周期:OCI 服务器生命周期与恢复阶梯
- 异常响应:OCI 异常费用与流量激增处置