I'm trying to upgrade a PostgreSQL 9.2 database cluster to a 9.3 cluster on a new server.

I've copied the old 9.2 cluster (using rsync) to /srv/data/postgres on the new server and want to convert it to a new 9.3 cluster at /srv/home/postgres/data using:

/usr/pgsql-9.3/bin/pg_upgrade -d /srv/data/postgres/ -D /srv/home/postgres/data/ -b /usr/pgsql-9.2/bin/ -B /usr/pgsql-9.3/bin/ -u postgres --check

But I get an error:

SELECT c.oid, n.nspname, c.relname, c.relfilenode, c.reltablespace, pg_catalog.pg_tablespace_location(t.oid) AS spclocation FROM info_rels i JOIN pg_catalog.pg_class c ON i.reloid = c.oid JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid LEFT OUTER JOIN pg_catalog.pg_tablespace t ON c.reltablespace = t.oid ORDER BY 1; ERROR: could not create temporary file "base/pgsql_tmp/pgsql_tmp13803.0": No such file or directory

If I create an empty 9.2 cluster on the new server and run the same check, I get no errors.

Permissions seem to be the same for both the old, copied 9.2 cluster and the new initialized 9.2 test cluster (test 9.2 cluster on top; copied 9.2 cluster on bottom):

enter image description here

It's not clear to me what else I should try or what the problem is. Thanks!

  • Did rsync copy everything including empty directories and permissions? – Colin 't Hart Dec 4 '13 at 10:09

A message is clean - it cannot create a temp file in "base/pgsql_tmp" directory. From some reason, this directory is missing.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.