首页 > 解决方案 > 重置服务器后如何恢复 postgresql 数据库

问题描述


我最近完全重新安装了我的服务器,我正在努力恢复我以前拥有的数据库。
以前,我使用表空间将数据库保存到不同的 HDD 中,因此我在该 HDD 中有 db。(保存的文件路径如下:“**/{HDD_directory}/PG_10_201707211/16385”**)
对于主 postgres 文件夹,我在以前的系统中安装在不同的驱动器中,所以很遗憾我无法恢复以前使用的主文件夹。

因此,在我重新安装了服务器和 postgresql 后,我尝试通过将 **16385** 文件夹复制到“/var/lib.postgres/main/base”来恢复我的数据库。
但是 psql 不识别 db。(我猜是因为配置不同?)
我试图找到一个解决方案,但我能找到的只是使用 pg_restore 命令进行恢复,该命令需要 pg_dump 和备份文件。但是我没有备份文件(我只有 db 目录**16385**)。

我正在使用 ubuntu OS 和 postgres 版本 12。
请帮我解决这个问题。

标签: postgresqlrestoretablespace

解决方案


不幸的是,仅表空间文件不足以将其重新附加到数据库。这是来自文档的表空间部分的警告,解释了它:

即使位于主 PostgreSQL 数据目录之外,表空间也是数据库集群的一个组成部分,不能被视为数据文件的自治集合。它们依赖于主数据目录中包含的元数据,因此不能附加到不同的数据库集群或单独备份。同样,如果您丢失了表空间(文件删除、磁盘故障等),数据库集群可能会变得不可读或无法启动。将表空间放置在 RAM 磁盘等临时文件系统上会危及整个集群的可靠性。


推荐阅读