你如何阻止PostgreSQL在linux下启动集群(Ubuntu)

由于在首次创建时设置了一些不正确的参数,我需要重新构建一个集群.特别是集群中的每个数据库都设置为en_GB.UTF8的LC_COLLATE,需要更改为C.

我很乐意使用pg_dumpall备份集群,创建具有正确配置参数的新集群,然后将备份还原到新集群.

为了尽可能降低风险,我希望尽可能保持现有集群不变,以便可以根据请求启动,但不会在sudo service postgresql start等调用自动启动.有足够的磁盘空间来执行此操作.编辑:为了清楚这一点,我想保留旧的集群,只是没有启动.

如何将群集保留在原位,但是没有自动启动以及新的(正确配置的)替换?也就是说,我如何阻止Postgresql启动旧集群,即使它启动了新集群?

我花了一些时间在谷歌上,并且由于另一个答案的争论,请阅读启动程序.事实证明这很简单:

禁用旧群集

在每个群集的配置文件下(/ etc / postgresql /< version> /< cluster> /),有一个名为start.conf的文件.这只包含一个未注释的单词 – auto.通过简单地将其更改为手动,启动脚本将完全忽略此群集.

要手动启动集群,您可以使用pg_ctlcluster< version> <名称&gt ;.

重命名旧/新群集

Postgresql脚本的工作原理是可以在/ etc / postgresql /< version> /< cluster name> /postgresql.conf中找到每个集群的postgresql.conf文件.

很容易认为您可以简单地重命名此目录以更改群集名称(保持版本名称相同).实际上它几乎就是那么简单.

但是postgresql.conf引用了一些其他文件,例如pg_hba.conf.重命名目录时也会移动它们.因此,重命名目录后,还需要在postgresql.conf中更新这些引用.

无需重命名数据目录,但如果数据目录名称遵循群集名称,则有助于保持您的理智.再次重命名,请记住在postgresql.conf中更新它.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...