首页 > 解决方案 > 直接备份和恢复postgresql数据文件夹

问题描述

到目前为止,我一直在使用 备份我的 postgresql 数据pg_dump,它将数据导出到一个 sql 文件mydb.sql,然后使用psql -U user -d db < mydb.sql.

由于某种原因,在psql不存在的环境中更直接地恢复数据库内容会更方便......特别是在主机服务器上,其中 postgresql 安装在主机上运行的 docker 容器中,但不在主机本身。

我的计划是将其内容备份/var/lib/postgresql/data/到一个 tar 文件中,并在需要时(例如,当创建一个托管 postgresql 容器的新服务器时)将其恢复到相同的路径。docker 容器中的文件夹/var/lib/postgresql/data/映射到主机服务器上的文件夹,因此我将在主机上创建此备份,而不是在 postgres 容器内。

这是一种有效的方法吗?有什么“陷阱”吗?是否有/var/lib/postgresql/data/可以从 tar 文件中排除的子文件夹?我不想备份单纯的“家务”信息。

标签: postgresqldocker

解决方案


您可以这样做,但如果您不希望数据库损坏,则必须正确执行。

在复制数据目录之前停止 PostgreSQL,或者按照文档中的说明进行在线备份。


推荐阅读