到目前为止,我一直使用pg_dump
备份我的postgresql数据,它将数据导出到sql文件mydb.sql
,然后使用psql -U user -d db < mydb.sql
从该sql文件恢复。
出于这样或那样的原因,在不存在psql
的环境中,更直接地恢复数据库内容会更方便……特别是在主机服务器上,其中postgresql安装在主机上运行的docker容器中,而不是在主机本身上。
我的计划是将/var/lib/postgresql/data/
的内容备份到一个tar文件中,当需要时(例如,当创建一个托管postgresql容器的新服务器时),只需将其恢复到相同的路径。docker容器中的文件夹/var/lib/postgresql/data/
被映射到主机服务器上的一个文件夹,因此我将在主机上创建此备份,而不是在postgres容器内。
这是一个有效的方法吗?有什么“明白了”吗?/var/lib/postgresql/data/
中有没有我可以从tar文件中排除的子文件夹?我不想仅仅备份“内务”信息。
发布于 2018-09-18 21:52:57
您可以这样做,但如果您不想让您的数据库损坏,就必须正确地这样做。
在复制数据目录之前停止PostgreSQL,或者按照the documentation中的说明进行联机备份。
https://stackoverflow.com/questions/52387909
复制相似问题