【发布时间】:2022-01-16 11:46:47
【问题描述】:
我是 Docker 新手,我想为在 docker 中运行的 postgress 数据库备份。我看到的所有解决方案都提供生成转储 sql 脚本并通过运行此脚本来恢复数据库。但我不想这样做?是否可以通过迁移db的二进制文件进行备份和恢复?
【问题讨论】:
标签: postgresql docker database-backups docker-volume
我是 Docker 新手,我想为在 docker 中运行的 postgress 数据库备份。我看到的所有解决方案都提供生成转储 sql 脚本并通过运行此脚本来恢复数据库。但我不想这样做?是否可以通过迁移db的二进制文件进行备份和恢复?
【问题讨论】:
标签: postgresql docker database-backups docker-volume
您可以从纯空 Postgres 数据库图像构建 Postgres 图像。在 Dockerfile 中,添加在数据库初始化 (docker-entrypoint-initdb.d) 上运行的 SQL 脚本。 SQL 脚本包含指向备份数据库的 dblink 和命令 create table my_table as select * from my_table@remotedb。在docker build 之后,您拥有原始数据库表的备份图像。
我用更复杂的 Oracle 做一些类似的事情(只复制原始数据库的子集、保留索引等)。 Oracle docker image 在某些属性上与 PG 不同,但我相信粗略的想法是适用的。前段时间我与 PG 合作过,所以我不会建议你如何迁移二进制文件(尽管我相信它也是可能的)。
【讨论】: