Abhijit Gharami wrote:
> During major version upgrade from PostgreSQL v9.4 to v9.6 I facing following 
> error:
> 
> Performing Consistency Checks
> -----------------------------
> Checking cluster versions                                   ok
> 
> connection to database failed: FATAL:  root page 3 of index 
> "pg_class_oid_index" has level 0, expected 1
> 
> 
> could not connect to old postmaster started with the command:
> "/postgresql94/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D 
> "/data/directory/postgresql" -o "-p 5432 -b  -c listen_addresses='' -c 
> unix_socket_permissions=0700 -c
> unix_socket_directories='/home/postgresql_user'" start
> Failure, exiting
> 
> 
> Again, I was trying to take the pg_dumpall of the same database 
> cluster(PostgreSQL v9.4) and it failed with error:
> pg_dump: [archiver (db)] connection to database "template1" failed: FATAL:  
> root page 3 of index "pg_class_oid_index" has level 0, expected 1
> pg_dumpall: pg_dump failed on database "template1", exiting
> 
> Please suggest how should I proceed with major version upgrade in this case.

You are experiencing catalog corruption.

Try stopping the cluster and starting it with

  postgres -P -D /path/to/data/dir

Then connect and run

  REINDEX TABLE pg_catalog.pg_class;

That should fix the corrupted index.

If you have data corruption, you shouldn't use pg_upgrade to upgrade.
pg_dumpall / psql is the way to go.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com



Reply via email to