当前位置:  开发笔记 > 数据库 > 正文

将Postgresql 8.3数据库文件升级到8.4

如何解决《将Postgresql8.3数据库文件升级到8.4》经验,为你挑选了1个好方法。

我将Ubuntu 8.04升级到Ubuntu 10.04.不幸的是,升级过程还将Postgres 8.3安装更新为Postgres 8.4安装.我的感觉是虽然数据库引擎二进制文件已经更新,但数据库本身并没有迁移,因此8.4无法加载它.由于8.3数据格式与8.4格式不兼容,因此更改postgresql.conf是不够的,我也无法使用pg_dump8.4安装.

我需要一种方法将我以前的基础从8.3升级到8.4,无法访问8.3引擎,只有8.4.

任何线索?



1> Erik Forsber..:

Debian中的postgres包,以及Ubuntu,有一个非常明确的从Postgres版本升级到另一个版本的方式.该过程记录在/usr/share/doc/postgresql-common/README.Debian中,如下所示:

Default clusters and upgrading
------------------------------
When installing a postgresql-X.Y package from scratch, a default
cluster 'main' will automatically be created. This operation is
equivalent to doing 'pg_createcluster X.Y main --start'.

Due to this default cluster, an immediate attempt to upgrade an
earlier 'main' cluster to a new version will fail and you need to
remove the newer default cluster first. E. g., if you have
postgresql-8.2 installed and want to upgrade to 8.3, you first install
postgresql-8.3:

  apt-get install postgresql-8.3

Then drop the default 8.3 cluster:

  pg_dropcluster 8.3 main --stop

And then upgrade the 8.2 cluster to 8.3:

  pg_upgradecluster 8.2 main

执行此操作的最佳时间是升级到Ubuntu的版本之前,其中当前正在运行的Postgresql版本已被删除,即在此示例中,在Ubuntu版本上可以同时安装Postgres 8.3和Postgres 8.4.在我的情况下,我从jaunty变为karmic,升级到8.3到8.4,然后从karmic变为lucid.

如上所述的升级过程非常顺利.*pg_upgradecluster*命令将停止旧版本,迁移数据,然后在与旧版本相同的端口上启动新版本,最后在新端口上启动旧版本.

如果您在迁移到缺少postgres 8.3的Ubuntu版本之前没有迁移8.3 postgres数据,那么迁移仍然很简单.首先将karmic ubuntu存储库添加到/etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe

安装postgresql-8.3:

apt-get update && apt-get install postgresql-8.3

删除8.4群集.警告:如果您有任何数据,这将删除postgresql 8.4安装中的数据.但是如果你只是因为你需要将8.3升级到8.4,那么你的8.4群集中就没有数据了.

pg_dropcluster 8.4 main --stop

然后将8.3群集升级到8.4:

  pg_upgradecluster 8.3 main

最后,删除postgresql-8.3软件包,从/etc/apt/sources.list中删除jaunty-line ,然后再次运行apt-get update.

像往常一样,在执行上述任何操作之前备份你的postgres目录总是一个好主意.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有