I am encountering multiple issues in my attempt to upgrade from
PostgreSQL 9.0.4 to 9.1.0 on CentOS 5.6 i386.
The latest working version is 9.0.4 installed from the
http://yum.pgrpms.org/ site. After installing the 9.1 repo RPM and
installing 9.1 via yum I set up a script to do pg_upgrade with the
--check option. It is failing at the step when it tries to start the new
version. The last 4 lines of the upgrade log are (trimming the full path
from the log file name):
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "pg_upgrade.log" -D
"/var/lib/pgsql/9.1/data" -o "-p 5432 -b" start >> "upgrade.log" 2>&1
waiting for server to start....../usr/pgsql-9.1/bin/pg_ctl: symbol
lookup error: /usr/pgsql-9.1/bin/pg_ctl: undefined symbol: PQping
There were problems executing "/usr/pgsql-9.1/bin/pg_ctl" -w -l
"upgrade.log" -D "/var/lib/pgsql/9.1/data" -o "-p 5432 -b" start >>
"upgrade.log" 2>&1
pg_ctl failed to start the new server
Note, however, that the server does start. To check if things were
really running I tried to connect but psql returns an error of:
psql: invalid connection option "client_encoding"
I checked which version of psql is actually being called
readlink -f $(which psql)
/usr/pgsql-9.1/bin/psql
So the psql is, indeed, version 9.1. I have read that this error may be
related to psql loading an older library.
Note, there is also a minor bug in the package - the start-script error
message advising to run initdb includes the minor version:
[root@foo ~]# service postgresql-9.1 start
/var/lib/pgsql/9.1/data is missing. Use "service postgresql-9.1.0
initdb" to initialize the cluster first.
[FAILED]
[root@foo ~]# service postgresql-9.1.0 initdb
postgresql-9.1.0: unrecognized service
[root@foo ~]# service postgresql-9.1 initdb
Initializing database:
Any thoughts?
Cheers,
Steve