Banco de dados não iniciando no init.d

0

Estou tentando configurar um pequeno banco de dados postgresql em um beaglebone black. O aplicativo está lento, então estou armazenando o banco de dados em um cartão microsd de 64 GB. Formatei o disco, montei tudo corretamente.

Eu fiz o login como postgres

sudo su postgres

crie o cluster de banco de dados

./initdb /data   # the mountpoint is /data

Tudo pareceu funcionar corretamente. Eu posso

./postgres -D /data and the cluster seems to start correctly.

Eu quero que o banco de dados inicie no init.d, então editei as três linhas em /etc/postgresql/9.1/postgresql.conf e apontei as três entradas para / data. Quando eu inicio a máquina, o banco de dados falha com o seguinte no arquivo de log

autovacuum launcher started
database system is ready
incomplete startup packet
received smart shutdown request
autovacuum launcher shutting down
database system is shutdown

Eu obviamente perdi alguma coisa, qualquer indicação de onde encontrar o que eu sentia falta seria apreciado.

    
por Sting 17.03.2016 / 17:42

1 resposta

0

Os scripts de inicialização pegarão sua instância de postgres se você a criar com as ferramentas destinadas a trabalhar com esses scripts, ou seja:

Por exemplo, em vez de executar initdb e supondo que você tenha instalado o pacote postgresql-9.1 , espera-se que você faça:

sudo pg_createcluster --datadir=/data 9.1 mycluster

Em seguida, um diretório específico será criado para essa instância em /etc/postgresql/9.1 para postgresql.conf e outros arquivos de configuração, entre os quais start.conf com esses conteúdos:

# 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).

auto

Você pode editar esse arquivo para fazer o cluster iniciar automaticamente ou não na inicialização.

Por outro lado, se você tem o know-how do postgres, é possível contornar o modo de pacote do Ubuntu de lidar com o PostgreSQL e emitir diretamente initdb , postgres -D ... como mencionado na pergunta, mas então você deve fazer todo o caminho e use seu próprio script de inicialização e arquivos de configuração.

Piggybacking no material empacotado para apenas uma parte do trabalho administrativo tenderá a não funcionar, por exemplo, a edição /etc/postgresql/9.1/postgresql.conf não conseguirá muito, já que sua chamada initdb personalizada terá criado o postgresql.conf logo abaixo do seu O diretório /data e uma chamada direta de postgres -D /data selecionará esse arquivo, não aquele sob /etc/...

    
por Daniel Vérité 18.03.2016 / 14:34