在使用Ubuntu 12.04 LTS映像的Azure上,我们正在尝试更改Postgres 9.3的默认数据和日志文件path,并且在辅助驱动器/mnt/pgdata上首次初始化它们。 我们已经从Postgres 9.3通过apt-get进行全新安装的angular度出发了。
我们已经停止了postgres: sudo service postgresql stop 。
我们试着运行pg_createcluster
以下只显示帮助/手册页。 可能是因为它缺less版本和名称参数。
pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto
即使在/mnt/pgdata没有任何内容,以下结果将显示“错误:集群configuration已经存在”。
pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto
我们对Linux一般都比较陌生,所以请具体回答一下。
另外,我们有以下问题:
出现此错误的原因是: "Error: cluster configuration already exists"是名称main已被分配给最初创build的群集。
如果您没有任何数据,您可以在创build自己的数据之前删除它:
pg_dropcluster 9.3 main
这也将有一个理想的效果,你的新集群将被分配端口号5432而不是非默认的5433 。
无论使用直接装载path还是符号链接都无关紧要,但请注意,configuration文件将在数据目录的/etc/postgresql/<version>/<clustername>/之外创build。
根据其手册页, 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看看它是如何configuration来处理/var/log/postgresql/*.log
在我的机器上,通过这样做解决了
mkdir /var/run/postgresql chown postgres:postgres /var/run/postgres service postgresql restart