postgresql - 直接备份和恢复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 文件中排除的子文件夹?我不想备份单纯的“家务”信息。
解决方案
您可以这样做,但如果您不希望数据库损坏,则必须正确执行。
在复制数据目录之前停止 PostgreSQL,或者按照文档中的说明进行在线备份。
推荐阅读
- r - na.rm 不工作,无法计算平均值
- javascript - 如何使两个元素在同一个类中可拖动
- redux - 为什么我的方法不起作用?反应还原
- autodesk-forge - 使用 Forge API 翻译后,无法在 Autodesk Viewer 上显示翻译后的 .zip 文件
- php - 如何确定一个 php 对象是否代表一个顺序数组而不是关联字典?
- python - 如何使用 numba 在 GPU 上泛化快速矩阵乘法
- flutter - Json解码转换为List
而不是地图 - javascript - p5.js 中的矩形对象网格
- python - 如何写入文件名中包含空格和特殊字符的文件?
- php - Eloquent:仅过滤具有相关“子”行的行