Postgresql迁移灾难?

我正在运行Gentoo。 我从Postgresql 8.2.7升级到9.0.1。 升级过程中的某个地方,旧的Postgresql没有取得插槽,所以没有了。 旧版本也从portage中删除,所以我不能只是重新出现它。 我有我的数据库的Postgresql数据目录,但它是没用的,因为Postgresql 9.0.1由于版本不匹配而拒绝运行它。

我已经尝试了很多解决scheme,但一直无法解决这个问题。

我怎样才能得到我的旧8.2.7数据目录中的数据库与Postgresql 9.0.1?

将PostgreSQL数据库迁移到新的主要版本的正式方法是转储并重新导入:

一般来说,内部数据存储格式可能会在PostgreSQL的主要版本(第一个点后面的数字发生变化)之间发生变化。 […]当您在兼容版本之间进行更新时,可以简单地replace可执行文件并重新使用磁盘上的数据目录。 否则,您需要备份您的数据并在新服务器上进行恢复。

http://www.postgresql.org/docs/8.4/static/migration.html

所以你将需要一个8.2.7的运行安装。 一种select是在系统上手动安装8.2.7(通过自己构build,或者从Debian下载一些二进制包,然后手动解包和安装)。 另一种方法是只安装8.2.7的发行版(在备用硬件,备用分区或虚拟机上)。

然后复制你的文件,启动数据库,并做一个pg_dumpall 。 您可能需要调整PostgreSQL安装,以便它接受您的数据文件。

PS我希望我不必强调,你应该首先testing你的数据库文件(你当然有)的备份是否可以没有问题地恢复,以防万一…

而不是从源代码完全手动构build,也可以创build自己的覆盖图,从互联网上的某个地方find旧的ebuild,然后从覆盖图中重新生成8.2。