Por menos de um hack, edite /etc/postgresql/9.1/main/start.conf
e substitua auto
por manual
ou disabled
.
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:
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.
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?
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.