Tudo,
Cometi um erro fatal e acidentalmente executei o instalador principal do postgresql em vez do stackinstaller. Eu não percorri todo o processo de instalação, mas ainda definiu algo que o está impedindo de iniciar agora. Este é um banco de dados de produção e eu realmente preciso de algumas dicas sobre o que posso fazer para solucionar esse problema.
Estou executando o 9.2 em um servidor Windows 2008R2.
Desculpe, ainda não tenho representante suficiente para participar dos comentários, mas uso muito o PostgreSQL no Linux e no Windows.
Eu me deparei com esse mesmo problema outro dia. Executei o instalador 9.1.7 e ele quebrou meus clusters. Como disse Mike Christensen, a chave é executar pg_ctl START em uma janela de comando para obter uma mensagem de erro útil.
Eu tenho o comando para usar no painel Serviços. Ao visualizar as propriedades em sua definição de cluster, você verá o comando pg_ctl para iniciar o serviço. Copie esse comando e cole-o na janela de comando, altere o parâmetro "runservice" para "start" e use
runas.exe
para iniciar o comando comopostgres
usuário (9.1 e abaixo) ouLOCALSERVICE
conta (versões posteriores).Ele já deve conter o caminho para o diretório de dados do cluster. É assim que o meu se parece:
Verifique a mensagem de erro obtida desse comando e verifique também os logs do banco de dados.
No meu caso tive dois problemas. Primeiro, não consegui fazer o instalador funcionar até executá-lo na conta de administrador local do postgres. Mas quando fiz isso, minha conta de domínio não tinha mais privilégios. Tive que conceder a mim mesmo o controle total da árvore de diretórios do PostgreSQL. ( Editar CR: Não mexa com as permissões no diretório de dados do PostgreSQL, a menos que você saiba exatamente o que está fazendo, é provável que você torne qualquer problema muito pior, não melhor .)
Em seguida, tentei iniciá-lo novamente e recebi uma mensagem diferente indicando que a porta 5432 já estava em uso. Isso acabou sendo verdade. De alguma forma, o instalador deixou um processo postgres.exe órfão aberto na porta 5432, embora o painel Serviços mostrasse que o serviço não foi iniciado.
Eu tive que usar
netstat -ano
para encontrar o PID e matar o órfão do gerenciador de tarefas. Então tudo começou normalmente.Espero que ajude.
Brian
Se você executou um instalador 9.2 em um host com um banco de dados 9.2 em execução e o cancelou no meio, sua melhor aposta é provavelmente apenas executá-lo novamente e deixá-lo terminar. O instalador é usado para atualizações, bem como novas instalações e nunca removerá ou mexerá com um diretório de dados existente, portanto, isso é bastante seguro. No entanto, você deve interromper o serviço PostgreSQL (se estiver em execução)
services.msc
e fazer uma cópia do banco de dados no nível do sistema de arquivos antes de tentar corrigir o problema.Depois de voltar a funcionar, certifique-se de ter um bom regime de backup em vigor.
Tudo,
O feedback de todos tem sido maravilhoso! Acontece que um colega meu definiu o maintenance_work_mem fora do intervalo que deveria estar. Quando o instalador foi executado na última sexta-feira, forçou o reinício do banco de dados, o que gerou o erro. Não foi até que eu executei essas etapas que consegui descobrir qual era o problema. Este foi o meu próprio pequeno apocalipse! ~a