Postgresql 8.4->;9.1 pg#U升级失败,因为数据库';模板0';存在
我一直在努力将Postgresql数据库从8.4升级到9.1。我遇到了无数的问题(可能与Ubuntu的文件放置有关),但我想我已经看到了终点。 Pg_升级几乎可以正常工作,但当它到达第一个数据库“template0”时失败,因为它“已经存在”Postgresql 8.4->;9.1 pg#U升级失败,因为数据库';模板0';存在,postgresql,database-migration,postgresql-9.1,postgresql-8.4,Postgresql,Database Migration,Postgresql 9.1,Postgresql 8.4,我一直在努力将Postgresql数据库从8.4升级到9.1。我遇到了无数的问题(可能与Ubuntu的文件放置有关),但我想我已经看到了终点。 Pg_升级几乎可以正常工作,但当它到达第一个数据库“template0”时失败,因为它“已经存在” psql:/var/lib/postgresql/pg_upgrade_dump_globals.sql:36: ERROR: database "template0" already exists There were problems execut
psql:/var/lib/postgresql/pg_upgrade_dump_globals.sql:36: ERROR: database "template0" already exists
There were problems executing "/usr/lib/postgresql/9.1/bin/psql" --set ON_ERROR_STOP=on --no-psqlrc --port 5432 --username "postgres" -f "/var/lib/postgresql/pg_upgrade_dump_globals.sql" --dbname template1 >> "/dev/null"
Failure, exiting
这个template0数据库当然是每个新集群的一部分,不能删除。我尝试在新集群上重命名template0和template1(为了安全)(在重新创建之后),但是随后的pg_升级调用也失败了,但这次抱怨template1在新集群上不存在
"/usr/lib/postgresql/9.1/bin/pg_ctl" -w -l "/dev/null" -D "/var/lib/postgresql/9.1/main" -o "-p 5432 -b" start >> "/dev/null" 2>&1
connection to database failed: FATAL: database "template1" does not exist
unable to connect to new postmaster started with the command: "/usr/lib/postgresql/9.1/bin/pg_ctl" -w -l "/dev/null" -D "/var/lib/postgresql/9.1/main" -o "-p 5432 -b" start >> "/dev/null" 2>&1
Failure, exiting
我再次尝试,只是重命名了template0,但再次失败,但这次postgres本身出现了一些断言问题
executing: SELECT datcollate, datctype FROM pg_catalog.pg_database WHERE datname = 'template0'
pg_upgrade: /build/buildd/postgresql-9.1-9.1.3/build/../contrib/pg_upgrade/check.c:310: set_locale_and_encoding: Assertion `PQntuples(res) == 1' failed.
Aborted (core dumped)
理智检查注意事项:如果有人认为“只需执行完整的sql转储并恢复它”也不能很好地工作,这就是为什么我试图让pg_升级正常工作的原因。我还确保每次升级失败时都会删除并重新创建集群,以防止过去的任何故障继续影响升级。数据库在Amazon卷上,所以我不能真正破坏任何东西,而且总是有备份。我在Ubuntu12上,两个数据库并排安装
我目前没有任何不涉及postgresql源代码的想法,非常感谢任何关于下一步尝试的帮助和建议。提前谢谢。停下来。泡杯茶/咖啡,然后坐下