В Azure с образом Ubuntu 12.04 LTS мы пытаемся изменить данные 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, поэтому просьба дать конкретный ответ.
Также у нас есть следующие вопросы:
Причина этой ошибки: "Error: cluster configuration already exists"
это имя main
уже назначен кластеру, который создается изначально.
Если у вас нет в нем данных, вы можете удалить его, прежде чем создавать свои:
pg_dropcluster 9.3 main
Это также будет иметь желаемый эффект, так как вашему новому кластеру будет присвоен номер порта. 5432
вместо нестандартного 5433
.
Независимо от того, используете ли вы прямой путь монтирования или символическую ссылку, на самом деле не имеет значения, но обратите внимание, что файлы конфигурации будут созданы в /etc/postgresql/<version>/<clustername>/
вне каталога данных.
Согласно его man-странице, 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
На моей машине это было решено следующим образом:
mkdir /var/run/postgresql
chown postgres:postgres /var/run/postgres
service postgresql restart