如题,目前我做的有全盘 raid1 ,每日凌晨对整个 docker data 目录做全量快照。
虽然有 data 目录全量快照,但是能不能恢复还得看运气(快照的时候没对 sql 的容器 stop ,有概率回滚失败)
不知道有没有什么更好的更优雅的备份方案
(要是能像阿里云 rds 一样分钟或者小时级别回滚,有易用的 webui 就更好了)
1 huangpeng0v0 187 天前 via Android MySQL 部分, 1.逻辑备份 采用 mysqldump+cron 2.物理备份 percon 的 PXB 和 PTK 有校验/备份/恢复全套工具,拿来即用, 另外阿里还有个 channel 的开源项目,也很实用 ,利用 MySQL 主从复制热备 |
2 huangpeng0v0 187 天前 via Android MySQL 部分, 1.逻辑备份 采用 mysqldump+cron 2.物理备份 percona 的 PXB 和 PTK 有校验/备份/恢复全套工具,拿来即用, 另外阿里还有个 canal 的开源项目,也很实用 ,利用 MySQL 主从复制热备 https://github.com/alibaba/canal ps:忽略第一条回复,手机码错字,项目太久没用名字也记错了 |
![]() | 3 ysicing 187 天前 我用 restic 备份的 |
![]() | 4 zhucegeqiu 187 天前 我都是 docker stop 了再 rsync |
![]() | 5 rekulas 187 天前 可以加上主从增量备份 canal 我之前也用过,但是感觉比较麻烦,运维上需要投入一些时间,推荐试试 dbsyncer ,成都的一家公司开发的,很稳,我用来同步数据到国外基本都没断过 |
6 cnlaok999 187 天前 via iPhone kopia |
7 traffic 187 天前 不建议在容器内跑有状态应用,特别是数据库 |
8 wfhtqp 187 天前 borgmatic 定时 加 云盘同步 |
![]() | 9 superchijinpeng 187 天前 kopia |
![]() | 10 89ao 187 天前 生产级的备份,首先要定义的就是服务水平和成本,再谈方案。 所以你要先明确,你的数据库能承受什么级别的损失,宕机能否接受?数据需要实时备份还是小时级别,还是天级别的备份? 有了这两个答案方案就简单了 |
![]() | 11 superchijinpeng 187 天前 @traffic 哥们 2025 年了,政府的 DB 大部分都跑在 K8S 上了 |
![]() | 12 vczyh 187 天前 每天 XtraBackup 全量备份一次,每小时备份一次 Binlog ,这样可以通过 1 个物理备份+N 个 Binlog 实现任意时间点恢复 |
13 zhengfan2016 OP @89ao 损失我当然是希望越小越好,首先,能从灾难中恢复,其次,备份空间占用尽可能小,不要停止容器备份,也不要加全局锁,粒度尽可能细能够分库回滚,最后尽量损失的时间粒度越小越好 ![]() |
14 JerryYuan 186 天前 via Android @traffic 如果 docker 中不推荐跑有状态的数据库,那对于家庭 homelab server 场景的话,应该跑在哪里么?另开虚拟机裸机跑 mysql 吗 |
![]() | 15 shiny 186 天前 WAL-G ,秒级的回滚。实测 PostgreSQL 里运作很好,MySQL 增量备份不太好使 |
16 victimsss 186 天前 t/1054000#reply25 我之前写过 pg 的,要简单快捷就 docker exec 进去然后执行 dump 命令进行备份就行了,然后直接 docker cp 拷出来,将 脚本加到 cron 就行了。 |
17 star7th 186 天前 做全盘的备份就好。确保能恢复备份。上层的应用就不需要额外备份了。 至于说 有概率回滚失败。那就是备份问题了。备份无法恢复,那就想办法临时停止容器再备份。 |
![]() | 18 zoharSoul 186 天前 同求 想知道可以自建秒级恢复吗 |
![]() | 19 dcalsky 186 天前 推荐我刚刚出炉的: https://github.com/dcalsky/postgres-backup-r2 自动备份 docker pg 到 cloudflare r2 ,完全免费 |
![]() | 20 yihy8023 186 天前 我在 lxc 容器部署了 pg 和 mysql ,然后每天 pve 会对磁盘快照备份。 |
21 ExplodingDragon 186 天前 > 我在 lxc 容器部署了 pg 和 mysql ,然后每天 pve 会对磁盘快照备份。 @yihy8023 #20 这种通过拍摄磁盘快照的方式备份有概率丢失数据或者导致数据库损坏 (pve lxc 是不会备份内存数据的) |
![]() | 23 89ao 185 天前 @zhengfan2016 那很明确了 首先你能接受宕机,就不需要高可用 然后你要不停机备份,就走 mysqldump 备份空间小,就要增量备份 找这几个方案就行了,最后备份出来的数据遵守 3+2+1 ,或者干脆 2 副本就行了 |
![]() | 24 chinni 185 天前 正常备份出来的脚本文件 restic(rustic), borgbackup, kopia 三选一。 好用的很 |