Altere e inicialize os diretórios de log e dados padrão do Postgresql 9.3 no Ubuntu 12.04 LTS

5

No Azure com imagem do Ubuntu 12.04 LTS, estamos tentando alterar os dados padrão do Postgres 9.3 e os caminhos do arquivo de log e também inicializá-los pela primeira vez em uma unidade secundária /mnt/pgdata . Nós começamos a partir do ponto em que o Postgres 9.3 era uma instalação nova via apt-get.

Paramos o postgres: sudo service postgresql stop .

Nós tentamos executar o pg_createcluster

O seguinte mostra apenas as páginas help / man. Provavelmente porque está faltando a versão e o nome params.

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Os resultados a seguir são "Erro: a configuração de cluster já existe", embora não exista nada em /mnt/pgdata .

pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Somos relativamente novos no Linux em geral, portanto, seja específico com sua resposta.

Além disso, temos as seguintes perguntas:

  1. Há algum problema em usar o caminho de montagem direta ou é melhor usar um link simbólico?
  2. Há mais alguma coisa que precisamos fazer ou mudar para configurar o Postgres 9.3 com esse diretório de dados padrão na porta padrão e iniciar automaticamente com o servidor?
  3. Alguma outra recomendação?
por thames 04.10.2013 / 17:33

2 respostas

5

O motivo desse erro: "Error: cluster configuration already exists" é que o nome main já está atribuído ao cluster que é criado inicialmente.

Se você não tem dados, você pode soltá-lo antes de criar o seu próprio com:

pg_dropcluster 9.3 main

Isso também terá o efeito desejável de que seu novo cluster receberá o número de porta 5432 em vez do não-padrão 5433 .

Não importa se você usa um caminho de montagem direta ou um link simbólico, observe que os arquivos de configuração serão criados em /etc/postgresql/<version>/<clustername>/ fora do diretório de dados.

De acordo com sua manpage, o comando pg_createcluster espera as opções antes da versão e nome, então o comando seria:

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main

Além disso, ter o arquivo de log em /mnt/pgdata torna-o inacessível para logrotate , por isso crescerá indefinidamente. Você pode olhar para /etc/logrotate.d/postgresql-common para ver como ele está configurado para processar /var/log/postgresql/*.log

    
por 07.10.2013 / 11:03
0

Na minha máquina, isso foi resolvido fazendo:

mkdir /var/run/postgresql
chown postgres:postgres /var/run/postgres
service postgresql restart
    
por 15.06.2015 / 15:58