小数据量场景的低成本数据库备份选型:PostgreSQL 与 MySQL 免费层实践
【摘要】 个人项目的数据往往不大:用户表几千行、订单表几万行,总量只有几百 MB。最怕的是为一点数据长期租用数据库服务器,或者一直不备份,丢数据时才后悔。做法是:选对免费层,再把定时备份、压缩、保留和校验做成固定流程。 备份规则逻辑备份对小数据量通常够用,恢复也更灵活;恢复点目标定为一天一次;备份文件要离库存放,不要只放在数据库同一台机器上。 PostgreSQL:Neon 免费层Neon 免费层每项...
个人项目的数据往往不大:用户表几千行、订单表几万行,总量只有几百 MB。最怕的是为一点数据长期租用数据库服务器,或者一直不备份,丢数据时才后悔。做法是:选对免费层,再把定时备份、压缩、保留和校验做成固定流程。
备份规则
逻辑备份对小数据量通常够用,恢复也更灵活;恢复点目标定为一天一次;备份文件要离库存放,不要只放在数据库同一台机器上。
PostgreSQL:Neon 免费层
Neon 免费层每项目 0.5GB 存储,闲时计算可缩到零,不用时不产生计算费用。注意存储上限,定期清理日志和过期数据,应用侧用连接池。
MySQL:TiDB Cloud Starter
每实例 5GiB 行存,兼容 MySQL 协议,现有客户端和 mysqldump 可直接用,不用重写应用。避免把分析型大查询放到主库上跑。
大厂免费层并不总是最优解
长期免费的关系型数据库很少:Azure SQL 免费档是 T-SQL 方言,每月计算额度有限;AWS RDS 只有 12 个月试用,到期后正常计费。选型看存储上限、闲时是否缩零、协议是否兼容。
备份脚本
0 2 * * * /opt/backup.sh
#!/bin/bash
D=$(date +%Y%m%d)
pg_dump "postgresql://u:p@host/db" | gzip > /opt/pg-$D.sql.gz
mysqldump -h host -u u -p'p' db | gzip > /opt/my-$D.sql.gz
find /opt -name "*.sql.gz" -mtime +7 -delete
for f in /opt/*-$D.sql.gz; do [ $(stat -c%s "$f") -lt 1024 ] && echo "备份过小:$f" && exit 1; done
要点:定时 dump、压缩、保留 7 天、校验文件大小。密码放环境变量或密钥文件,不要写进公开仓库。备份后每季度做一次恢复演练:导入最近备份,跑关键查询,确认能正常恢复。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)