2

Я установил базу данных postgres на мое сжатие Debian. Для управления базой данных есть /etc/init.d/postresql. Когда я pstree -c , я получаю две трассировки с postgresql. После /etc/init.d/postgresl stop у меня остается еще одна трассировка с postgresql. Где я должен искать эту проблему? Есть ли запись для запуска другого postgresql во время загрузки? Где я могу это увидеть?

1 ответ1

1

Предполагая, что у вас установлен PostgreSQL из пакетов репозитория (например, postgresql-8.4), это вполне возможно, если второй кластер (скажем, test) установлен в manual режиме:

cat /etc/postgresql/8.4/test/start.conf 
# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
#         pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
#           circumvented and is only meant to be a small protection for
#           accidents).

manual

Вы можете проверить все зарегистрированные кластеры командой pg_lsclusters :

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 online postgres /var/lib/postgresql/8.4/main       /var/log/..
8.4     test      5433 online postgres /var/lib/postgresql/8.4/test       /var/log/..

pstree -c | grep postgres результат:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres
 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres

Ручной режим (в отличие от auto) означает, что кластер БД не обрабатывается скриптом /etc/init.d/postgresql , поэтому после:

# /etc/init.d/postgresql stop

есть еще один экземпляр работающего сервера:

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 down   postgres /var/lib/postgresql/8.4/main       /var/log/..
8.4     test      5433 online postgres /var/lib/postgresql/8.4/test       /var/log/..

и pstree возвращает оставшийся след:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres

Чтобы явно отключить оставшийся экземпляр, используйте:

# pg_ctlcluster 8.4 test stop

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .