我的机器上似乎安装了一些 postgresql。我不确定这是否是一个错误,或者 Ubuntu 是否出于某种奇怪的原因复制了目录并将它们保留在其他地方。
我有一个 postgresql 目录 /etc
一进 /usr/lib
和一个 /opt
在这一点上我很困惑。
我如何去删除多余的?。
哪些是他额外的?
我还需要确保我的 rails env 中的“pg” gem 指向正确的 posgresql db 服务器。
关于我的问题的任何想法都会很大。
Phi*_*ing 30
人们对安装的含义可能有些困惑。
/etc/postgresql/文件夹是集群的配置文件夹。 /var/lib/postgresql/文件夹用于数据。 /usr/lib/postgresql/。 我真的不知道,/opt/postgresql因为我没有那个。但/opt用于“可选”二进制文件,因此您的安装可能在此处而不是/usr/lib/postgresql/.
简而言之,我认为您可能只有一个在多个位置包含文件的安装。
如果您想查看已安装的内容,这可能会有所帮助:
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
Run Code Online (Sandbox Code Playgroud)
请特别注意“状态”列。如果集群不在线,那么它只是磁盘上的数据并且什么都不做。如果它在线,那么它正在运行。
如何合并集群?
您可以使用该pg_dumpall命令将内容从一个集群复制到另一个集群以生成备份并用于psql将其导入要保留的集群。在开始之前保留所有内容的备份是值得的。
如何删除不再使用的集群?
使用pg_lsclusters以获取有关群集的详细信息,并记下这些集群的数据目录和日志文件。
使用pg_ctlcluster <version> <cluster>
stop停止集群。
删除数据文件夹和可选的日志文件。
最后删除数据和配置。数据文件夹应该/var/lib/postgres/data/<version>/<cluster>只是检查输出pg_lsclusters以确保这一点。集群的配置:所有集群都将在
/etc/postgresql/<version>/<cluser>/.
如果您从不要求它们,为什么会得到多个集群?
通常,您必须专门请求创建一个集群才能获得一个新集群。唯一的例外是当您升级集群时,它将有效地创建一个新集群并保留旧集群。
| 归档时间: |
|
| 查看次数: |
20586 次 |
| 最近记录: |