一个在/usr/lib中
和/ opt中的一个
我在这一点上很困惑.如何删除额外的那些.哪些是额外的?我还需要确保我的rails env中的’pg’gem指向正确的posgresql数据库服务器.
对我的问题的任何想法都是巨大的.
简而言之,我认为您可能只有一个安装文件位于多个位置.
如果您想查看已安装的内容,这可能会有所帮助:
postgresql的结构如何:
为了让事情更清晰,postgres的结构如下:
>版本字面上指的是postgresql的哪个版本
程序二进制文件.每个安装的版本可能有
在该版本下安装的群集.如果没有那么那个版本就是
有效休眠,因为它没有数据或运行服务器关联.
>在每个版本下,有许多集群.你可以想
集群作为运行的prostgres服务器(进程).每个集群
必须有自己的端口/套接字文件供客户端连接.每
群集将由单个版本管理.
>每个集群内部都有许多数据库.当一个客户
连接它选择要连接的数据库.它可以要求改变哪个
数据库连接到没有打开新会话,但它只能
永远与一个人相连.
你安装了什么?
要找出安装的版本,您可以查看dpkg和apt.您应该能够使用apt和dpkg卸载版本,但在检查每个版本下的集群之前,请务必小心不要这样做.
要找出您拥有的集群,请使用命令pg_lsclusters.当我打电话给我时,我得到以下内容,你会得到一些不同的东西:
Version Cluster Port Status Owner Data directory Log file 9.1 main 5432 online <unknown> /var/lib/postgres/data/9.1/main /var/log/postgresql/postgresql-9.1-main.log
请注意“状态”列.如果群集不在线,那么它只是磁盘上的数据并且什么都不做.如果它在线,那么它正在运行.
你如何合并集群?
您可以使用pg_dumpall命令将内容从一个群集复制到另一个群集,以生成备份并使用psql将其导入要保留的群集.在开始之前,值得保留所有内容的备份.
如何删除不再使用的群集?
>使用pg_lsclusters获取有关群集的详细信息并注意
这些集群的数据目录和日志文件.
>使用pg_ctlcluster< version> <簇GT;
停止停止群集.
>删除数据文件夹和可选的日志文件.
>最后删除数据和配置.数据文件夹应为/ var / lib / postgres / data /< version> /< cluster>但检查pg_lsclusters的输出以确保这一点.群集的配置:所有群集都有
他们自己的配置文件夹
的/ etc / Postgresql的/<版本> /< cluser> /.
如果你从未问过它们,为什么你会得到多个集群?
通常,您必须专门请求创建一个集群才能获得一个新集群.唯一的例外是当您升级群集时,它将有效地创建一个新群集并保留旧群集.