Замените переменную PostgreSQL PGDATA с systemctl

Я хочу изменить каталог данных пост-ГРЭС на /home/postgres/data редактирование th postgresql.service вместо изменения файл /etc/postgresql/10/main/postgresql.conf.

Так, я отредактировал сервис с

sudo systemctl edit postgresql.service

И добавил это строки:

[Service]
Environment=PGDATA=/home/postgres/data

И перезапустите de сервис с sudo servicetl restart postgresql.service.

Но каталог данных не делает измененный.

Также редактирование postgresql@10-main.service и перезагружают мой ноутбук, но каталог данных не изменился.

Как я могу изменить каталог данных для пост-ГРЭС с помощью systemctl сервисы или единицы?

1
задан 29 October 2018 в 21:51

1 ответ

Каталог данных должен быть установлен в postgresql.conf файлах.

Почему?

Способ, которым PostgreSQL упакован в Ubuntu, postgresql.service является зонтичной службой, которая может управлять несколькими экземплярами PostgreSQL, работающими одновременно (например, вы можете иметь 112] и 10/main2 или 9.6/main), и они не могут использовать один и тот же $ PGDATA, поэтому определение его глобально на уровне зонтичной службы не может работать.

Кроме того, его локальное определение с помощью сервисных модулей, таких как postgresql@10-main.service, может вызвать проблемы у команд, управляющих экземплярами PG, таких как pg_lsclusters или pg_ctlcluster , так как это не ясно. как они найдут каталог данных этих экземпляров. В настоящее время эти команды анализируют файлы конфигурации. Они делают это для каталога данных, но также и для других битов данных, таких как номер порта или каталоги сокетов домена Unix. Эта часть предоставляется пакетом postgresql-common , который практически не зависит от systemd (и предшествует его принятию).

1
ответ дан 7 December 2019 в 15:12

Другие вопросы по тегам:

Похожие вопросы: