到目前为止,我一直在使用pg_dump
备份postgresql数据,该数据将数据导出到sql文件mydb.sql
,然后使用psql -U user -d db < mydb.sql
从该sql文件还原。 / p>
出于某种原因,在psql
不存在的环境中更直接地还原数据库内容会更方便...特别是在运行PostgreSQL容器的Docker服务器上运行的主机服务器上在主机上,但不在主机本身上。
我的计划是将/var/lib/postgresql/data/
的内容备份到tar文件中,并且在需要时(例如,当创建一个新的托管postgresql容器的服务器时)将其还原到相同的路径。 docker容器中的文件夹/var/lib/postgresql/data/
映射到主机服务器上的文件夹,因此我将在主机上创建此备份,而不是在postgres容器中创建
这是有效的方法吗?任何“陷阱”? /var/lib/postgresql/data/
中是否有我可以从tar文件中排除的子文件夹?我不想仅备份“客房整理”信息。
答案 0 :(得分:1)
您可以这样做,但是如果您不希望数据库损坏,则必须正确地进行操作。
要么在复制数据目录之前停止PostgreSQL,要么按照the documentation中的说明进行在线备份。