Ao recuperar o banco de dados Postgresql de um servidor Ubuntu 12.04 invadido, copiei o diretório de dados para outro local, reinstalei o sistema operacional e o PostgreSQL, interrompi o serviço PostgreSQL, removi o conteúdo do diretório de dados e copiei de volta o conteúdo da instalação anterior.
Problema: PostgreSQL não inicia agora, apresentando os erros abaixo. Por que isso está acontecendo e como podemos resolver o problema?
service postgresql restart
* Restarting PostgreSQL 9.1 database server
* Error: could not exec /usr/lib/postgresql/9.1/bin/pg_ctl /usr/lib/postgresql/9.1/bin/pg_ctl start -D /var/lib/postgresql/9.1/main -l /var/log/postgresql/postgresql-9.1-main.log -s -o -c config_file="/etc/postgresql/9.1/main/postgresql.conf" :
Atualizar
Reiniciar o serviço PostgreSQL agora dá o erro:
* Restarting PostgreSQL 9.1 database server
* The PostgreSQL server failed to start. Please check the log output:
2013-04-16 01:52:10 EDT PANIC: could not open control file "global/pg_control": Permission denied
Eu tive o mesmo problema. Para esclarecer o que Nyxynyx sugere em seu comentário, a resolução foi dar permissões para acessar o diretório db cluster (o caminho que segue
-D
no erro):Existem algumas pré-condições que devem ser atendidas para que isso funcione. Eu vejo o seu caso basicamente como um backup e restauração física, que é bem abordado na documentação . Os principais pontos são:
pg_clog/
E para mim parece que sua mensagem de erro tem pelo menos uma linha a seguir, que provavelmente informa qual é o problema.
Apenas para o caso de alguém ter o problema no Windows Server :
Dar ao grupo "Serviço de rede" acesso total à pasta de dados resolve isso.