TL;DR: if both PostgreSQL instances are managed by the Ubuntu packages (as they should), just use the --cluster
option to select the PostgreSQL instance to backup, and it will automatically choose the corresponding version of pg_dump:
pg_dump --cluster 9.1/main [other pg_dump options]
or
pg_dump --cluster 9.3/main [other pg_dump options]
.
main
is just a default value, run pg_lsclusters
to see your actual names in the Cluster
column.
How it works: as installed by the Ubuntu packages, /usr/bin/pg_dump
is actually a soft-link to /usr/share/postgresql-common/pg_wrapper
, whose purpose is precisely to select the correct instance and run the corresponding binary. --cluster
does not exist in the stock PostgreSQL commands, it's a Debian/Ubuntu addition that is meant to address this multiple versions/multiple paths problem.
This is the same for psql
, createdb
, createuser
, etc. about 18 postgres commands in /usr/bin
are actually managed by pg_wrapper
.
See man pg_wrapper for more.
pg_dump
. Both are installed, but only one is the default. Seeupdate-alternatives
for the paths, ordpkg -L
the postgresql client package to see where they are. Don't have immediate access to an Ubuntu box to show you myself.PATH
environment variable the app runs with, then.