问一下大家的数据库备份方法

4 天前
 victimsss
先说现状,目前有不同区域的服务器,深圳韩国德国等,涉及到的数据库都是 mysql 和 postgre ,数据库有 容器和二进制运行的(感觉无所谓)。
目前想在后台(容器)加一个数据库备份(主动/定时, 开关)的功能,一开始想的是使用 Cron (定时) + 子进程 xx_dump (自带脚本)+ oss ( watch 相关目录,创建则上传到 oss 上)。
现在有一个问题是,后台服务是容器,且后台所处的服务器上的数据库也是容器,现在如何执行 xx_dump 呢,或者有其他方法吗?
1856 次点击
所在节点    数据库
25 条回复
tool2dx
4 天前
我们用的是 mysql ,每天凌晨三点,网络异地备份当天的差异化数据。
buyerhou
4 天前
使用 otter 开源的阿里云 mysql 数据库备份服务,可以实时备份。
rekulas
4 天前
dump 跟你容器没啥关系吧,只要数据库正常提供服务就可以备份,支持远程主机,不过考虑速度和网络稳定性,最好在内网备份
GoRoad
4 天前
容器也可以 dump 啊,这无所谓的,无非多一条从容器内拷贝出来的命令
victimsss
4 天前
@rekulas 因为我要在后台程序(容器)里面执行 dump ,执行不了, 而且 dump 工具本身也在另一个容器里面,大概是这样。如果继续之前的思路,我要的是在后台程序里面执行 docker exec 进入带有 dump 的容器,再在里面创建 .pgpass ,然后再去备份自己和其他服务器上的数据库。
Rollie
4 天前
心情好的时候,导出一下 SQL 文件然后再备份一下服务端。存储到数据盘里~嘿嘿。
guanzhangzhang
4 天前
看它是走 tcp 还是 data-dir 还是 sock 文件去操作的
IvanLi127
4 天前
子进程里写个脚本,脚本里直接 ssh 连宿主机,然后再根据条件去备份?如果能 ssh ,我感觉这种方法比较独立且灵活
kingchy
4 天前
我使用的 pg ,最后通过 tailscale 内网,将服务器上的数据 replicate 一份到家里完事。正好家里那份用来做数据分析,不影响服务器性能,完美😊
yeqizhang
4 天前
@GoRoad 挂载个目录,也不用拷贝
zx900930
4 天前
k8s
mysql 集群
percona-xtrabackup 每天定时备份到 minio 的桶里
要还原直接 xtrabackup --prepare 很方便。

一个好的 operator 帮你解决大部分运维的问题。
photon006
4 天前
我司数据库也是 docker 跑,但备份不跟它打交道,宿主机 pve 添加网络磁盘,直接备份 vm 整机,通过 smb 传到局域网 nas ,就跟腾讯云、阿里云备份数据卷一样,但成本低很多。
shiny
4 天前
https://github.com/wal-g/wal-g 用的这个,能同步到 S3 ,postgres 能接近实时备份
同时云服务器再开个自动快照策略,保留 7 -30 天的备份
laminux29
4 天前
1.让开发或熟悉业务的 DBA ,先写个把数据库的数据,全部导出的脚本。把该脚本放入 crontab 定期执行,执行后把结果写日志。运维工具,实时监控日志,如果日志中发现 Error 、fail 、timeout 等字符,就告警。这种备份方式,只是用来兜底的,出故障后,运维千万不要直接用这种方式得到的备份,进行恢复。如果只剩下这种备份了,交给开发去恢复。

2.把数据库做成多节点(多副本节点),形成一个 HA 集群,单个节点故障后,Client 自动访问别的节点,类似于 Oracle RAC 的工作模式。这种模式,单节点故障后,不需要开发介入,运维可以直接进行替换故障节点,类似于 raid 磁盘故障时的操作。银行级别的数据库,也是需要使用这种结构的。
MRlaopeng
4 天前
@tool2dx 请问大佬,怎么备份差异数据呢
e2k
3 天前
@tool2dx #1 请问大佬,怎么备份差异数据呢
tool2dx
3 天前
@MRlaopeng
@e2k

就是 mysql 增量备份,网上搜一下一大堆。

我情况比较特殊,数据库里每条记录都有最后修改日期,查询一下当天所有被修改过的记录,通过普通 sql 查询来备份的。
cslive
3 天前
不是很简单吗,容器里安装 client,然受执行 pg_dump -h ip 这种命令就可以将不同容器里的数据库数据备份出来,如果你的网不好那就慢了
vueli
3 天前
我比较菜,宝塔每天定时把数据库和站点页面打包备份,并且也备份到七牛
GoRoad
3 天前
@yeqizhang 那也行 哈哈哈 挂载出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054000

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX