如何将我的 postgres 数据从 8.4 迁移到 9.1?

如何将我的 postgres 数据从 8.4 迁移到 9.1?

我已经将我的 ubuntu 开发机器从 11.04 升级到 11.10。在此过程中,我的 postgres 也从 8.4 升级到了 9.1。

但我似乎丢失了所有数据。如果我查看,我可以看到 8.4 的数据在文件夹中/var/lib/postgres/8.4/main,而我的新数据库在 中/var/lib/postgres/9.1/main

将我的数据迁移到新版本的最佳方法是什么?我可以只复制文件吗?

答案1

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

起初,这对我来说不起作用,原因有二。首先,postgresql-8.4 曾经被卸载过,所以我必须重新安装它:

sudo apt-get install postgresql-8.4

然后我必须进入 8.4postgresql.conf并更改max_connections为 10。然后它就成功了。您应该能够在以下位置找到 conf 文件/etc/postgresql/8.4/main/postgresql.conf

答案2

升级到11.10后,安装了PostgreSQL 9.1,但运行的版本是8.4。

我试过了:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

它报告了错误:

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

因此,在另一个窗口中:

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

然后再说一遍:

pg_upgradecluster 8.4 main

报告了与 pgRouting 相关的错误。这花了一段时间(一整夜!),但之后数据库升级到了 9.1。PostGIS 也升级到了 1.5.3。

答案3

当没有足够的时间进行转储和恢复时,使用 pg_upgrade: http://www.postgresql.org/docs/devel/static/pgupgrade.html

相关内容