Tenho vários servidores PostgreSQL instalados. Como faço para desativar a inicialização automática para o servidor mais antigo?

23

Estou executando o Ubuntu 12.04 no Oracle VirtualBox. Alguns meses atrás, instalei a versão 9.1 do servidor PostgreSQL na minha máquina. Recentemente, aprendi que o servidor PostgreSQL 9.3 suporta tipos de dados JSON, então decidi atualizar.

Eu atualizei para 9.3 seguindo as instruções aqui:

link

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3

Esta versão do servidor instalado 9.3 na minha máquina, juntamente com a versão 9.1. Executando o pg_lsclusters após uma inicialização recente:

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

Eu fiz então a seguinte manutenção pós-atualização: Eu exportei várias tabelas do meu servidor 9.1 com o pg_dump e as restaurei para o meu servidor 9.3. Eu então abri meus arquivos de configuração para 9.1 e 9.3 em /etc/postgresql/$VERSION/main/postgresql.conf e troquei seus números de porta para que meu cliente psql se conecte ao novo servidor por padrão.

Minha pergunta é essa. Ambos 9.1 e 9.3 começam na inicialização. Eu gostaria de evitar 9.1 de inicialização automática, uma vez que ocupa cerca de 5% da minha memória do sistema. Como posso fazer isso?

Recursos consultados:

A página doc do PostgreSQL ao iniciar um servidor me aponta para o diretório init.d padrão. Meu diretório init.d contém o script postgresql . Parece que esse script pode ser configurado para iniciar apenas uma versão, mas a alteração necessária não é óbvia para mim.

link

A postagem abaixo foi muito informativa, mas mostra como remover um cluster, e não como desativá-lo na inicialização. Gostaria de deixar meu cluster antigo instalado, pois talvez eu queira recuperar mais informações dele.

eu acho que tenho vários servidores postgresql instalados, como identifico e excluo os 'extras'?

Eu considerei escrever um script para matar o servidor assim que o sistema terminar de carregar, mas isso parece ineficiente. Existe uma maneira mais limpa de desativar a versão 9.1 na inicialização?

    
por BitPusher16 17.03.2014 / 01:23

2 respostas

39

Por menos de um hack, edite /etc/postgresql/9.1/main/start.conf e substitua auto por manual ou disabled .

    
por 17.03.2014 / 22:28
10

O Debian criou vários scripts (como os utilitários de cluster pg_ *) para simplificar a execução de múltiplas versões ou instalações do PostgreSQL em um único servidor, e é por isso que isso não está documentado em postgresql.org.

Não tenho certeza se o pacote .deb do PostgreSQL usa o mesmo mecanismo de inicialização do Debian, mas olhando para o pacote que tenho, se você criar /etc/init.d/postgresql-9.1 (mesmo que seja um arquivo vazio) então /etc/init.d/postgresql Suponha que você queira controlar essa versão separadamente e não a iniciará por padrão. Você ainda pode iniciá-lo com

service postgresql start 9.1

para substituir a pesquisa de versão.

    
por 17.03.2014 / 01:53