我将 Ubuntu 8.04 升级到了 Ubuntu 10.04。不幸的是,升级过程还将 Postgres 8.3 安装更新为 Postgres 8.4 安装。我的感觉是,虽然数据库引擎二进制文件已更新,但数据库本身并未迁移,因此无法由 8.4 加载。由于 8.3 数据格式与 8.4 格式不兼容,因此更改 postgresql.conf 是不够的,我也无法将 pg_dump 与 8.4 安装一起使用。
我需要一种方法将我之前的基础从 8.3 升级到 8.4,但无法使用 8.3 引擎,只能使用 8.4。
有什么线索吗?
谢谢 !
答案1
读/usr/share/doc/postgresql-8.4/README.Debian.gz
和man pg_upgradecluster
。
答案2
我刚刚通过从源代码编译 8.3 解决了这个问题:./configure --enable-integer-datetimes --without-readline,然后 make 和 make install
之后,使用以下命令启动 8.3:/usr/local/pgsql/bin/postgres -D /var/lib/postgresql/8.3/main -c config_file=/etc/postgresql/8.3/main/postgresql.conf,然后转储我的 8.3 基础:sudo /usr/bin/pg_dumpall -o -U postgres > /local_pc/tmp/backup.txt
重新启动 8.4,然后使用 pg_restore 进行恢复,效果很好。