如题,目前我做的有全盘 raid1 ,每日凌晨对整个 docker data 目录做全量快照。
虽然有 data 目录全量快照,但是能不能恢复还得看运气(快照的时候没对 sql 的容器 stop ,有概率回滚失败)
不知道有没有什么更好的更优雅的备份方案
(要是能像阿里云 rds 一样分钟或者小时级别回滚,有易用的 webui 就更好了🐶)

MySQL 部分,
1.逻辑备份 采用 mysqldump+cron
2.物理备份 percon 的 PXB 和 PTK 有校验/备份/恢复全套工具,拿来即用,
另外阿里还有个 channel 的开源项目,也很实用 ,利用 MySQL 主从复制热备

MySQL 部分,
1.逻辑备份 采用 mysqldump+cron
2.物理备份 percona 的 PXB 和 PTK 有校验/备份/恢复全套工具,拿来即用,
另外阿里还有个 canal 的开源项目,也很实用 ,利用 MySQL 主从复制热备 github.com/alibaba/canal
ps:忽略第一条回复,手机码错字,项目太久没用名字也记错了

我用 restic 备份的

我都是 docker stop 了再 rsync

可以加上主从增量备份
canal 我之前也用过,但是感觉比较麻烦,运维上需要投入一些时间,推荐试试 dbsyncer ,成都的一家公司开发的,很稳,我用来同步数据到国外基本都没断过

kopia

不建议在容器内跑有状态应用,特别是数据库

borgmatic 定时 加 云盘同步

kopia

生产级的备份,首先要定义的就是服务水平和成本,再谈方案。
所以你要先明确,你的数据库能承受什么级别的损失,宕机能否接受?数据需要实时备份还是小时级别,还是天级别的备份?
有了这两个答案方案就简单了

哥们 2025 年了,政府的 DB 大部分都跑在 K8S 上了

每天 XtraBackup 全量备份一次,每小时备份一次 Binlog ,这样可以通过 1 个物理备份+N 个 Binlog 实现任意时间点恢复

损失我当然是希望越小越好,首先,能从灾难中恢复,其次,备份空间占用尽可能小,不要停止容器备份,也不要加全局锁,粒度尽可能细能够分库回滚,最后尽量损失的时间粒度越小越好

如果 docker 中不推荐跑有状态的数据库,那对于家庭 homelab server 场景的话,应该跑在哪里么?另开虚拟机裸机跑 mysql 吗😂

WAL-G ,秒级的回滚。实测 PostgreSQL 里运作很好,MySQL 增量备份不太好使

www.hesudu.com/t/1054000#reply25
我之前写过 pg 的,要简单快捷就 docker exec 进去然后执行 dump 命令进行备份就行了,然后直接 docker cp 拷出来,将 脚本加到 cron 就行了。

做全盘的备份就好。确保能恢复备份。上层的应用就不需要额外备份了。
至于说 有概率回滚失败。那就是备份问题了。备份无法恢复,那就想办法临时停止容器再备份。

同求
想知道可以自建秒级恢复吗

推荐我刚刚出炉的: github.com/dcalsky/postgres-backup-r2
自动备份 docker pg 到 cloudflare r2 ,完全免费

我在 lxc 容器部署了 pg 和 mysql ,然后每天 pve 会对磁盘快照备份。

我在 lxc 容器部署了 pg 和 mysql ,然后每天 pve 会对磁盘快照备份。

#20 这种通过拍摄磁盘快照的方式备份有概率丢失数据或者导致数据库损坏 (pve lxc 是不会备份内存数据的)