Autor do artigo: ThaisAlves.sup.pack
Verifique se o PostgreSQL esta suspenso
Devido um conflito que geralmente ocorre em computadores com Windows 8 e 10, os processos do postgres.exe podem estar suspensos. Isto trava o processo impedindo sua execução, para liberar o processo será necessário reiniciar a máquina.
- Para verificar se o processo do postgres.exe foi suspenso clique com o botão direito sobre a barra de tarefas e selecione a opção "Iniciar Gerenciador de tarefas".
- Localize na aba "Processos" o "Postgres.exe" e verifique se na coluna "Status" existe algum processo como "Suspenso". Caso positivo será necessário reiniciar a máquina para conseguir iniciar o serviço do PostgreSQL.
Verificando se existe o arquivo Postermaster.pid que causa bloqueio na inicialização do PostgreSQL
Em alguns casos quando o serviço do PostgreSQL é finalizado de forma brusca, ele deixa para trás o arquivo postermaster.pid. Este arquivo funciona como um indicador de que o serviço esta ativo e bloqueia a tentativa de iniciar o serviço. Então quando o serviço é finalizado e este arquivo é mantido, o windows entende que o serviço esta ativo não permitindo que seja iniciado.
- Para corrigir este problema acesse o menu iniciar> computador> disco local> Arquivos de programas (Ou Program Files)> PostgreSQL> 9.0> Data.
- Em seguida exclua o arquivo postermaster.pid.
- Após esse procedimento, tente iniciar o serviço do PostgreSQL.
Este procedimento já é realizado pelo PgGuardian de forma automatizada.
Caso não o serviço PostgreSql não inicie com o procedimento acima, siga para o próximo passo.
Verificando o diretório da pasta data
Em alguns casos o diretório padrão do PostgreSQL é alterado, e quando o destino se torna inacessível o serviço não consegue iniciar.
- Para conferir onde está localizada a pasta Data acesse em seu Painel de Controle, a opção Ferramentas Administrativas - Serviços , selecione o serviço "postgresql-x64-9.0", clique com o botão direito sobre ele, e selecione a opção Propriedades.
- Na aba Geral, verifique o caminho do executável.
- Por padrão este caminho deve ser: "C:\Program Files\PostgreSQL\9.0\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.0" -D "C:/Program Files/PostgreSQL/9.0/data" -w.
- Deve ser verificado qual o destino do segundo caminho, que é onde ficam arquivados todos os dados que foram lançados na base.: "C:\Program Files\PostgreSQL\9.0\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.0" -D "C:/Program Files/PostgreSQL/9.0/data".
Verificando os logs de eventos
Os logs de eventos do Windows são bem úteis para identificar o erro.
- Para abrir o visualizador de eventos acesse em seu Painel de controle a opção Ferramentas administrativas - Visualizador de eventos.
- Selecione Logs do Windows - Aplicativo. Verifique os logs que têm a "fonte" PostgreSQL.
- Verifique abaixo alguns erros que podem ocorrer:
Não pôde criar arquivo de bloqueio "postermaster.pid": Permission denied.
O erro acima é apresentado quando o usuário de logon do serviço não tem permissão para ler e modificar a pasta Data. Caso isto ocorra, temos de liberar as permissões da pasta.
- Faça isto acessando Computador - Arquivos de programas (Ou ProgramFiles) - PostgreSQL - 9.0.
- Clique com o botão direito sobre a pasta Data e selecione propriedades.
- Selecione a aba Segurança> e clique na opção "Editar".
- Depois disso, inicie o postgreSQL.
Não pôde criar nenhum soquete TCP/IP
Caso apresente este erro, devemos finalizar os processos do postgreSQL.exe.
- Para finalizar os processos, clique com o botão direito sobre a barra de tarefas e selecione a opção "iniciar Gerenciador de tarefas".
- Clique na aba 'Processos' localize o "postgres.exe" clique com o botão direito sobre, selecione "Finalizar processo".
- Faça isto para todos os processos "postgres.exe". Concluindo, inicie o postgreSQL.
Verificando os logs do PostgreSQL
Este procedimento também pode nos auxiliar na identificação da causa do problema.
- Para verificar os logs do postgreSQL acesse> computador> Arquivos de programas (Ou Program Files)> PostgreSQL> 9.0.> Data> pg_log.
- Abra o log mais recente.
- O log ao lado é um dos mais comuns:
- Caso ocorra este erro, faz-se necessário dar um reset nos logs do postgreSQL.
Para realizar o procedimento, certifique-se que o arquivo postermaster.pid não esta na pasta data.
- Após acesse o prompt de comando (cmd), como administrador.
- Digite: cd C:\Program Files\PostgreSQL\9.0\bin
- Dê enter.
- Digite: pg_resetxlog -f "C:\Program Files\PostgreSQL\9.0\data"
- Dê enter.
- No cmd ira apresentar a mensagem "Log de transação reiniciado"
- Feito isso, inicie o PostgreSQL
Logon de serviço
O logon do serviço do postgreSQL também deve estar configurado corretamente, pois pode impedir a inicialização do serviço.
- Para verificarmos o logon de serviço podemos acessar o painel de controle> ferramentas administrativas> Serviços>
- Selecione o serviço "postgresql-x64-9.0",
- Clique com o botão direito sobre, e selecione a opção propriedades.
- Selecione a aba Logon.
- Caso esteja como na tela, ou com a opção "conta do sistema local" marcada, devemos configurar para o usuário postgres.
- Para configurar o usuário postgres marque a opção "esta conta", se não estiver marcado, digite .\postgres.
- Digite a senha padrão do postgres e confime a senha. Clique em aplicar.
- Feito isso, inicie o PostgreSQL