在使用Ubuntu 12.04 LTS映像的Azure上,我们尝试更改Postgres 9.3默认数据和日志文件路径,并在辅助驱动器/ mnt / pgdata上首次初始化它们.我们从Postgres 9.3通过apt-get进行全新安装开始.
我们已经停止了postgres:sudo service postgresql stop.
我们试过运行pg_createcluster
pg_createcluster -d / mnt / pgdata / data -l / mnt / pgdata / log –start-conf auto
以下结果为“错误:群集配置已存在”,即使/ mnt / pgdata中不存在任何内容.
pg_createcluster 9.3 main -d / mnt / pgdata / data -l / mnt / pgdata / log –start-conf auto
我们对Linux一般都是新手,所以请具体说明你的答案.
另外,我们还有以下问题:
>使用直接安装路径是否可以,或者使用符号链接更好?
>我们还需要做什么或更改以使用默认端口上的这些默认数据dir设置Postgres 9.3并自动启动服务器吗?
>还有其他建议吗?
出现此错误的原因:“错误:群集配置已存在”是名称main已分配给最初创建的群集.
如果您没有任何数据,可以在创建自己的数据之前删除它:
pg_dropcluster 9.3 main
这也会产生预期的效果,即为新群集分配端口号5432而不是非默认值5433.
无论您使用直接安装路径还是符号链接都无关紧要,但请注意,配置文件将在/ etc / postgresql /< version> /< clustername> /数据目录之外创建.
根据其联机帮助页,pg_createcluster命令需要版本和名称之前的选项,因此命令将为:
pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main
在/ mnt / pgdata中使用日志文件使得logrotate无法访问,因此它将无限增长.您可以查看/etc/logrotate.d/postgresql-common以查看它如何配置为处理/var/log/postgresql/*.log