Назад | Перейти на главную страницу

Изменение и инициализация каталогов данных и журналов по умолчанию Postgresql 9.3 в Ubuntu 12.04 LTS

В 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, поэтому просьба дать конкретный ответ.

Также у нас есть следующие вопросы:

  1. Можно ли использовать прямой путь монтирования или лучше использовать символическую ссылку?
  2. Есть ли что-то еще, что нам нужно сделать или изменить для настройки Postgres 9.3 с этим каталогом данных по умолчанию на порт по умолчанию и для автоматического запуска с сервером?
  3. Есть другие рекомендации?

Причина этой ошибки: "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