Jesteś na Ubuntu i oczywiście masz pg_wrapper
zainstalowany Martin Pitt (sądząc po pg_ctlcluster
), który jest dostarczany przez pakiet postgresql-common
i jest dostarczany ze standardowymi pakietami Debiana. Używam tego samego na Debianie .
W systemie Linux uruchom which
w powłoce, aby zobaczyć, który plik wykonywalny jest rzeczywiście wybrany:
postgres@db:~$ which pg_dump
/usr/bin/pg_dump
postgres@db:~$ ls -l /usr/bin/pg_dump
lrwxrwxrwx 1 root root 37 4. Jun 18:57 /usr/bin/pg_dump -> ../share/postgresql-common/pg_wrapper
pg_dump
jest faktycznie dowiązaniem symbolicznym pg_wrapper
, które dynamicznie wybiera odpowiednią wersję programu klienckiego dla klastra db, z którym działasz pg_dump
. Cytuję stronę podręcznika użytkownika pg_wrapper
:
Ten program działa tylko jako łącze do nazw, które odpowiadają programom PostgreSQL w / usr / lib / postgresql / version / bin. Określa skonfigurowany klaster i bazę danych dla użytkownika i wywołuje odpowiednią wersję żądanego programu, aby połączyć się z tym klastrem i bazą danych, podając dowolne określone opcje dla tego polecenia.
The target cluster is selected by the following means, in descending order of precedence:
1. explicit specification with the --cluster option
2. explicit specification with the PGCLUSTER environment variable
3. matching entry in ~/.postgresqlrc (see postgresqlrc(5)), if that file exists
4. matching entry in /etc/postgresql-common/user_clusters (see user_clusters(5)), if that file exists
5. If only one local cluster exists, that one will be selected.
6. If several local clusters exist, the one listening on the default port 5432 will be selected.
If none of these rules match, pg_wrapper aborts with an error.
IOW, właściwą wersję należy wybrać automatycznie - chyba że w jakiś sposób zepsułeś instalację. Zawsze możesz dodać opcję, --cluster
aby być konkretnym.
--cluster
opcji wiersza polecenia.używam
źródło