Hello!
I'm trying to update a database from version 9.0 to 9.1 by pg_upgrade.
The test is normal, but the actual conversion fails.
This is a bug from pg_upgrade?
I just saw this in the newsletter similar error with a note that it has been fixed in 9.1.2, but I already install
9.1.7.
My environment
centos 6.3
# uname -rm
2.6.32-279.14.1.el6.x86_64 x86_64
# rpm -qa |grep postgres
postgresql90-devel-9.0.11-1PGDG.rhel6.x86_64
postgresql91-9.1.7-1PGDG.rhel6.x86_64
postgresql90-9.0.11-1PGDG.rhel6.x86_64
postgresql90-server-9.0.11-1PGDG.rhel6.x86_64
postgresql91-libs-9.1.7-1PGDG.rhel6.x86_64
postgresql91-server-9.1.7-1PGDG.rhel6.x86_64
postgresql91-devel-9.1.7-1PGDG.rhel6.x86_64
postgresql90-libs-9.0.11-1PGDG.rhel6.x86_64
postgresql90-contrib-9.0.11-1PGDG.rhel6.x86_64
postgresql91-contrib-9.1.7-1PGDG.rhel6.x86_64
# time sudo -u postgres sh -c '/usr/pgsql-9.1/bin/pg_upgrade -b /usr/pgsql-9.0/bin/ -B /usr/pgsql-9.1/bin/ -d
/var/lib/pgsql/9.0/data/-D /var/lib/pgsql/9.1/data/ -vvv -c -l ./log 2>&1 | iconv -f cp1251 -t utf-8'
Running in verbose mode
.....
Running in verbose mode
Running in verbose mode
Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories ok
Checking cluster versions ok
"/usr/pgsql-9.0/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.0/data" -o "-p 5432 -c autovacuum=off -c
autovacuum_freeze_max_age=2000000000"start >> "./log" 2>&1
Checking database user is a superuser ok
Checking for prepared transactions ok
Checking for reg* system oid user data types ok
Checking for contrib/isn with bigint-passing mismatch ok
"/usr/pgsql-9.0/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.0/data" stop >> "./log" 2>&1
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" -o "-p 5432 -b" start >> "./log" 2>&1
Checking for presence of required libraries ok
Checking database user is a superuser ok
Checking for prepared transactions ok
*Clusters are compatible*
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" stop >> "./log" 2>&1
real 0m4.344s
user 0m0.029s
sys 0m0.051s
Checking current, bin, and data directories ok
Checking cluster versions ok
"/usr/pgsql-9.0/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.0/data" -o "-p 5432 -c autovacuum=off -c
autovacuum_freeze_max_age=2000000000"start >> "./log
" 2>&1
Checking database user is a superuser ok
Checking for prepared transactions ok
Checking for reg* system oid user data types ok
Checking for contrib/isn with bigint-passing mismatch ok
Creating catalog dump "/usr/pgsql-9.1/bin/pg_dumpall" --port 5432 --username
"postgres"--schema-only --binary-upgrade
-f "/var/lib/pgsql/pg_upgrade/pg_upgrade_dump_all.sql"
ok
"/usr/pgsql-9.0/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.0/data" stop >> "./log" 2>&1
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" -o "-p 5432 -b" start >> "./log" 2>&1
Checking for presence of required libraries ok
Checking database user is a superuser ok
Checking for prepared transactions ok
| If pg_upgrade fails after this point, you must
| re-initdb the new cluster before continuing.
| You will also need to remove the ".old" suffix
| from /var/lib/pgsql/9.0/data/global/pg_control.old.
Performing Upgrade
------------------
Adding ".old" suffix to old global/pg_control ok
Analyzing all rows in the new cluster "/usr/pgsql-9.1/bin/vacuumdb" --port 5432 --username
"postgres"--all --analyze >> "./log" 2>&1
ok
Freezing all rows on the new cluster "/usr/pgsql-9.1/bin/vacuumdb" --port 5432 --username
"postgres"--all --freeze >> "./log" 2>&1
ok
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" stop >> "./log" 2>&1
Deleting new commit clogs ok
Copying old commit clogs to new server cp -Rf "/var/lib/pgsql/9.0/data/pg_clog"
"/var/lib/pgsql/9.1/data/pg_clog"
ok
Setting next transaction id for new cluster "/usr/pgsql-9.1/bin/pg_resetxlog" -f -x 728832600
"/var/lib/pgsql/9.1/data"> /dev/null
ok
Resetting WAL archives "/usr/pgsql-9.1/bin/pg_resetxlog" -l 3,2349,11
"/var/lib/pgsql/9.1/data">> "./log" 2>&1
ok
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" -o "-p 5432 -b" start >> "./log" 2>&1
Setting frozenxid counters in new cluster ok
Creating databases in the new cluster "/usr/pgsql-9.1/bin/psql" --set ON_ERROR_STOP=on
--no-psqlrc--port 5432 --username "postgres" -f
"/var/lib/pgsql/pg_upgrade/pg_upgrade_dump_globals.sql" --dbname template1 >> "./log"
ok
Adding support functions to new cluster ok
Restoring database schema to new cluster "/usr/pgsql-9.1/bin/psql" --set ON_ERROR_STOP=on
--no-psqlrc--port 5432 --username "postgres" -f
"/var/lib/pgsql/pg_upgrade/pg_upgrade_dump_db.sql" --dbname template1 >> "./log"
psql:/var/lib/pgsql/pg_upgrade/pg_upgrade_dump_db.sql:153584: ПРЕДУПРЕЖДЕНИЕ: => как имя оператора считается
устаревшим
DETAIL: Это имя может быть вовсе запрещено в будущих версиях PostgreSQL.
ok
Removing support functions from new cluster ok
Removing support functions from new cluster ok
"/usr/pgsql-9.1/bin/pg_ctl" -w -l "./log" -D "/var/lib/pgsql/9.1/data" stop >> "./log" 2>&1
Restoring user relation files
Mismatch of relation names: database "database", old rel public.lob.ВерсияВнешнегоДокумента$Документ_pkey, new rel
public.plob.ВерсияВнешнегоДокумент
а$Документ
Failure, exiting
real 0m28.443s
user 0m4.868s
sys 0m0.921s