问候,硬盘故障后,我有一个PostgreSQL数据库恢复,但操作系统不工作。 我尝试将它复制到另一个服务器与更新版本的PostgreSQL,但我设法得到的是:
find了旧版本的数据库格式。 在使用PostgreSQL之前,您需要升级数据格式。 有关更多信息,请参阅/usr/share/doc/postgresql-8.1.22/README.rpm-dist。
我不知道旧的版本号。
请给我一些build议。
如果您能够获取数据目录中的所有文件,则应该有一个PG_VERSION文件。 使用这个,你可以用这个版本构build一个数据库。 从我的分析,我没有find一种方法来恢复数据库数据没有正确的版本的数据库。
如果您知道版本,以下是一些恢复步骤:
http://archives.postgresql.org/pgsql-general/2009-09/msg01152.php
如果你知道你的最新版本是8.3或更高,这应该工作:
http://www.postgresql.org/docs/9.0/static/pgupgrade.html
不是一个愉快的答案。
寻找pg_version文件的build议是好的,也应该能够对$ PGDATA运行pg_controldata并获取一些信息。 在最糟糕的情况下,只要继续安装主要版本(7.4.x,8.0.x,8.1.x等),直到find兼容的匹配项。
你有一个正在运行的数据库,你可以担心如果需要升级。 pg_dump / restore是一个选项。 pg_upgrade将在8.3+上工作。 您也可以select使用像slony这样的复制系统来执行跨版本复制(它将如何工作取决于最终版本)。
对于所有这些方法(包括pg_upgrade),您都需要系统的一个运行副本,所以首先尝试查找匹配/兼容版本。