Supondo que você tenha o PostgreSQL instalado a partir de pacotes de repositórios (por exemplo, postgresql-8.4
), isso é perfeitamente possível se segundo cluster (digamos que test
) está definido no modo 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
Você pode verificar todos os clusters registrados pelo comando 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
result:
|-postgres-+-postgres
| |-postgres
| |-postgres
| '-postgres
|-postgres-+-postgres
| |-postgres
| |-postgres
| '-postgres
Modo manual (como oposto a auto
) significa que o cluster de BD não é tratado pelo script /etc/init.d/postgresql
, portanto, após:
# /etc/init.d/postgresql stop
ainda há uma instância do servidor em funcionamento:
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/..
e pstree
retornam o rastreio restante:
|-postgres-+-postgres
| |-postgres
| |-postgres
| '-postgres
Para encerrar a instância restante, use explicitamente:
# pg_ctlcluster 8.4 test stop