我有一个 PostgreSQL 8.3 数据目录备份。我需要将此备份中的数据库复制到新的 PostgreSQL 实例中。由于旧服务器的问题,我无法对数据库进行 pg_dump。
我已经弄清楚哪个目录是有问题的数据库的。例如,在 MySQL 中,您通常要做的就是关闭服务器,复制目录并重新启动它,然后数据库就可以使用了。现在这不适用于 PostgreSQL,我怀疑这是因为数据库未在 global/pg_database 文件中列出。这个文件似乎是在 PostgreSQL 启动时自动生成的,那么我如何告诉系统数据库在那里?
请注意,根据此处的文档,在 PostgreSQL 中,您的集群数据目录是一个独立的单元,无法可靠地部分恢复。
您最好的希望是使用旧服务器的完整数据目录并在其上启动服务器,然后从您从那里获得的数据库转储中恢复:
这应该让你做好准备,或者至少显示一条通往那里的好道路。