在 Ubuntu 12.04 LTS 上更改和初始化 Postgresql 9.3 默认数据和日志目录

tha*_*mes 5 postgresql azure ubuntu-12.04

在带有 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 还很陌生,所以请具体说明您的答案。

此外,我们还有以下问题:

  1. 可以使用直接挂载路径还是使用符号链接更好?
  2. 我们还需要做什么或更改以在默认端口上使用这些默认数据目录设置 Postgres 9.3 并自动启动服务器吗?
  3. 还有其他推荐吗?

Dan*_*ité 5

此错误的原因是:"Error: cluster configuration already exists"名称main已分配给最初创建的集群。

如果您没有任何数据,您可以在创建自己的数据之前删除它:

pg_dropcluster 9.3 main
Run Code Online (Sandbox Code Playgroud)

这也将产生理想的效果,您的新集群将被分配端口号5432而不是非默认的5433

使用直接挂载路径还是符号链接并不重要,但请注意,配置文件将/etc/postgresql/<version>/<clustername>/在数据目录之外创建。

根据其手册页,pg_createcluster命令需要在版本和名称之前的选项,因此命令将是:

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main
Run Code Online (Sandbox Code Playgroud)

也有日志文件/mnt/pgdata使其无法访问logrotate,因此它将无休止地增长。你可以看看/etc/logrotate.d/postgresql-common它是如何配置来处理的/var/log/postgresql/*.log