postgres 从数据文件恢复 - 没有显示数据

postgres 从数据文件恢复 - 没有显示数据

我正在恢复一个数据库,我匆忙中没有使用 pg_dump,我只是将数据文件本身打包了。数据文件太旧(8.1),无法加载到我要将它们带到的机器上的 postgres 中,因此我编译(fc14)并安装了 postgres 8.1,以便加载它们并对其进行 pg_dump,从而获得一个转储文件以在新的数据库安装中恢复。

一切都很顺利,直到我尝试查看数据。也就是说,我用 pg_ctl start -D /mypath/mydata 启动 postmaster 并得到“postmaster 正在启动”,服务器正在运行,我可以连接到它。只是我期望看到的数据库不在那里。尝试连接到该数据库告诉我它不存在。

postgres=# \dn
    List of schemas
    Name        |  Owner   
--------------------+----------
 information_schema | postgres
 pg_catalog         | postgres
 pg_toast           | postgres
 public             | postgres
(4 rows)

postgres=# \c ridenetdb
FATAL:  database "ridenetdb" does not exist
Previous connection kept

我在数据文件中唯一接触过的东西是名为 pg_hba.conf 的东西,我将所有连接都设置为“信任”。我是不是可能漏掉了什么,还是这已经是无望的了?

答案1

您可能需要检查以下事项:

  • Postgres 数据文件与架构无关 - 您是否运行与原始主机相同的架构(虚拟化是您的朋友)
  • Postgres 数据文件只能在同一个版本中工作。为了确保获得完全相同的版本,尽管我相信补丁级别版本更改应该是兼容的

答案2

抱歉打扰了——原来我备份了错误的数据树,所以数据库自然不存在。幸运的是,当我意识到这一点时,那种沮丧的感觉几分钟后就消失了,因为我发现自己实际上已经对数据进行了文本转储。我真的需要更有条理……

为了不让这次冒险完全浪费时间,我确实发现了一个可能对任何点击此问题的人有用的小知识:在数据树中,文件 /global/pg_database 是一个小文本文件,显示了所包含数据库的名称。

相关内容