每次我在 Ubuntu 18.04 中安装 PostgreSQL(即使我要求apt-get
使用 a 专门安装版本 11 sudo apt-get install postgresq-11
)我都会在我的系统中获得版本 10 和版本 11。
andre@linuxrocks:/var/lib/postgresql$ ls -la
total 48
drwxr-xr-x 5 postgres postgres 4096 jul 18 01:17 .
drwxr-xr-x 86 root root 4096 jul 5 14:54 ..
drwxr-xr-x 3 postgres postgres 4096 abr 16 10:19 10
drwxr-xr-x 3 postgres postgres 4096 jul 13 00:37 11
数据库中的对象在这两个文件夹中重复。
postgres=# \! find ~ -type f -name 16563
/var/lib/postgresql/11/main/base/13132/16563
/var/lib/postgresql/10/main/base/16385/16563
我有两个postgresql.conf
,每个文件夹中都有一个,尽管 DBMS 似乎只从 11 个文件夹中的一个中获取其配置。
ps -f -u postgres
在我查看所有 PostgreSQL 进程并看到我的系统创建了重复的进程(一个来自 10 文件夹,另一个来自 11)之后,我发现了这种奇怪的行为。所以我已经清除并重新安装了 PostgreSQL(使用sudo apt-get install postgresq-11
),现在我不再有重复的进程了。
andre@linuxrocks:~$ ps -f -u postgres
UID PID PPID C STIME TTY TIME CMD
postgres 1595 1 0 14:30 ? 00:00:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/mai
postgres 1684 1595 0 14:30 ? 00:00:00 postgres: 11/main: logger
postgres 1692 1595 0 14:30 ? 00:00:00 postgres: 11/main: checkpointer
postgres 1693 1595 0 14:30 ? 00:00:00 postgres: 11/main: background writer
postgres 1694 1595 0 14:30 ? 00:00:00 postgres: 11/main: walwriter
postgres 1695 1595 0 14:30 ? 00:00:00 postgres: 11/main: autovacuum launcher
postgres 1696 1595 0 14:30 ? 00:00:00 postgres: 11/main: stats collector
postgres 1697 1595 0 14:30 ? 00:00:00 postgres: 11/main: logical replication launcher
postgres 11074 11073 0 14:33 pts/0 00:00:00 bash
postgres 11078 11074 0 14:33 pts/0 00:00:00 /usr/lib/postgresql/11/bin/psql
postgres 11091 1595 0 14:33 ? 00:00:00 postgres: 11/main: postgres postgres [local] idle
即便如此,我有两个文件夹和重复的对象。为什么会这样?
简短的回答:发生这种情况是因为您在从其他一些非 Ubuntu 源安装版本 11 之前没有卸载版本 10(Ubuntu 18.04)。
查看 Ubuntu 存储库中版本 10 和 11 的可用性:
从中,我们学到了两件事:
1) 版本 10 和 11 有不同的包名。这意味着您可以并排安装多个版本。这似乎是你所做的。您可以简单地删除大部分您的
postgresql-10
或postgresql-10-*
包裹。(警告- 滥用通配符会损坏您的系统;始终--simulate
先运行并仔细阅读您的输出,以确保它只删除您想要的内容)2) 任何官方 Ubuntu 来源均不提供 18.04 版本 11。这意味着您添加了一些非 Ubuntu 源。所以在删除版本 10 时要加倍小心:我们不知道你添加了什么,从哪里添加,或者它拖入了哪些其他非 Ubuntu 依赖项。