Múltiplas instâncias do Postgres após o upgrade do Ubuntu

4

Atualizei o Ubuntu para a versão mais recente, mas agora tenho duas instâncias do Postgres.

8,4 e 9,1

O problema é que eu não sei em qual porta o segundo está sendo executado?

Como posso detectar em qual porta está sendo executada ...

SE eu executo cristi @ cristi-hp: / usr / share / postgresql-comum $ sudo -u postgres psql psql (8.4.8) Digite "help" para ajuda.

como posso usar o psql para 9.1?

ambos parecem rodar: cristi @ cristi-hp: / usr / share / postgresql-comum $ sudo /etc/init.d/postgresql start [sudo] senha para cristi:  * Iniciando o servidor de banco de dados PostgreSQL 8.4 [OK]  * Iniciando o servidor de banco de dados PostgreSQL 9.1

Obrigado ...

    
por Cris 22.10.2011 / 15:28

2 respostas

5

O Ubuntu sendo um sistema baseado no Debian tem a capacidade de executar várias instâncias do Postgres como você está vendo. Geralmente, a menos que configurado de outra forma, a primeira instância iniciada terá a porta Postgres padrão e cada instância subseqüente terá a próxima porta mais alta, se estiver disponível. Essas portas podem ser definidas nos arquivos de configuração em /etc/postgresql/<version>/<cluster>/ , para que não sejam alteradas caso você precise, mas eu realmente preciso. De fato, uma olhada superficial no /etc/init.d/postgresql também mostrará que você pode definir variáveis de ambiente através de /etc/postgresql/<version>/<cluster>/environment .

Os gerenciadores de pacotes foram bons o suficiente para incluir /usr/share/doc/postgresql-common/README.Debian.gz , que tem uma seção que explica rapidamente como o gerenciamento de cluster é tratado, incluindo o comando pg_lsclusters que lhe dará a versão Postgres e o número da porta junto com outros detalhes interessantes sobre cada cluster configurado.

Para responder à pergunta em um comentário sobre a interrupção de uma instância ... Você pode editar o arquivo start.conf em /etc/postgresql/<version>/<cluster>/ e alterá-lo de automático para desativado ou < strong> manual . Para citar o arquivo padrão start.conf em si ...

# 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).
    
por 22.10.2011 / 16:38
6

Se você quiser apenas encontrar a porta e / ou o layout do que está atualmente em execução, tudo o que você precisa fazer é executar "pg_lsclusters"

rtreat@xdw1:~$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
9.0     data1     5432 online postgres /var/lib/postgresql/9.0/data1      /var/log/postgresql/postgresql-9.0-data1.log
9.0     data2     5488 online postgres /var/lib/postgresql/9.0/data2      /var/log/postgresql/postgresql-9.0-data2.log
9.0     data3     5499 online postgres /var/lib/postgresql/9.0/data3      /var/log/postgresql/postgresql-9.0-data3.log
9.0     sanitize1 6544 online postgres /var/lib/postgresql/9.0/sanitize1  /var/log/postgresql/postgresql-9.0-sanitize1.log
9.0     sanitize2 6543 online postgres /var/lib/postgresql/9.0/sanitize2  /var/log/postgresql/postgresql-9.0-sanitize2.log
    
por 29.10.2011 / 16:52