Answers:
您在Ubuntu上,显然已经pg_wrapper
安装了Martin Pitt的软件包(从判断pg_ctlcluster
),该软件包由软件包提供,postgresql-common
并随附标准的Debian软件包。我在Debian上使用了相同的方法。
在Linux系统上,which
在shell中运行以查看实际选择了哪个可执行文件:
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
实际上是的符号链接pg_wrapper
,它动态地为您运行的数据库集群选择适当版本的客户端程序pg_dump
。我引用以下手册页pg_wrapper
:
该程序仅作为指向与/ usr / lib / postgresql / version / bin中的PostgreSQL程序相对应的名称的链接运行。它为用户确定配置的集群和数据库,并调用所需程序的适当版本以连接到该集群和数据库,并为该命令提供任何指定的选项。
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,应该自动选择正确的版本-除非您以某种方式搞砸了安装。您始终可以添加--cluster
特定选项。
--cluster
命令行选项。