Como Iniciar o PostgreSQL

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.

  1. 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".
  2. 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.

  1. Para corrigir este problema acesse o menu iniciar> computador> disco local> Arquivos de programas (Ou Program Files)>  PostgreSQL> 9.0> Data.
  2. Em seguida exclua o arquivo postermaster.pid. 
  3. 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.

  1. 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.
  2. Na aba Geral, verifique o caminho do executável.
  3. 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.
  4. 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. 

  1. Para abrir o visualizador de eventos acesse em seu  Painel de controle a opção  Ferramentas administrativas - Visualizador de eventos.
  2. Selecione Logs do Windows - Aplicativo. Verifique os logs que têm a "fonte" PostgreSQL.
  3. 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.

  1. Faça isto acessando  Computador -   Arquivos de programas (Ou ProgramFiles) - PostgreSQL -  9.0. 
  2. Clique com o botão direito sobre a pasta Data e selecione propriedades.
  3. Selecione a aba Segurança> e clique na opção "Editar".
  4. 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.

  1. Para finalizar os processos, clique com o botão direito sobre a barra de tarefas e selecione a opção "iniciar Gerenciador de tarefas".
  2. Clique na aba 'Processos' localize o "postgres.exe" clique com o botão direito sobre, selecione "Finalizar processo".
  3. 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.

  1. Para verificar os logs do postgreSQL acesse> computador> Arquivos de programas (Ou Program Files)> PostgreSQL> 9.0.> Data> pg_log.
  2. Abra o log mais recente.
  3. O log ao lado é um dos mais comuns:
  4. 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.

  1. Após acesse o prompt de comando (cmd), como administrador.
  2. Digite: cd C:\Program Files\PostgreSQL\9.0\bin
  3. Dê enter.
  4. Digite: pg_resetxlog -f "C:\Program Files\PostgreSQL\9.0\data"
  5. Dê enter.
  6. No cmd ira apresentar a mensagem "Log de transação reiniciado"
  7. 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.

  1. Para verificarmos o logon de serviço podemos acessar o painel de controle> ferramentas administrativas> Serviços> 
  2. Selecione o serviço "postgresql-x64-9.0", 
  3. Clique com o botão direito sobre, e selecione a opção propriedades.
  4. Selecione a aba Logon.
  5. Caso esteja como na tela, ou com a opção "conta do sistema local" marcada, devemos configurar para o usuário postgres.
  6. Para configurar o usuário postgres marque a opção "esta conta", se não estiver marcado, digite .\postgres.
  7. Digite a senha padrão do postgres: # abc123 # e confime a senha. Clique em aplicar.
  8. Feito isso, inicie o PostgreSQL