PostgreSQL: alterar diretório de dados… no Windows.

Acho que por conta do Post PostgreSQL: alterar diretório de dados, um colega me escreveu perguntando como fazer isto no Windows.

Faz muitos anos que não uso o PostgreSQL no Windows, mas segui os seguintes passos e funcionou.

– Baixei o PostgreSQL da EnterpriseDB. Baixei o 12, mas creio que o procedimento será o mesmo para qualquer versão.

– Instalei o PostgreSQL 12 no Windows com as opções padrão.

– Vi que o diretório data por padrão fica em C:\Program Files\PostgreSQL\12\data\. Vi que tinha a opção para alterar este diretório durante a instalação, mas isso não resolve o problema do colega.

– Abri um cmd com Executar como administrador, e parei o Serviço do PostgreSQL.

C:\Windows\system32>net stop postgresql-x64-12
O serviço de postgresql-x64-12 está sendo finalizado .
O serviço de postgresql-x64-12 foi finalizado com êxito.


C:\Windows\system32>

– Criei o Diretório C:\PostgreSQL, e movi o C:\Program Files\PostgreSQL\12\data\ para C:\PostgreSQL\data\ pelo Windows Explorer. Prefiro mover, para ter certeza de que o diretório antigo não está sendo utilizado.

– É necessário adicionar as permissões de “Ler & executar”, “Listar conteúdo da pasta” e “Leitura” para “SERVIÇO DE REDE” ou “NETWORK SERVICE” ao diretório C:\PostgreSQL\, como na figura abaixo. As permissões necessárias do data já foram junto quando ele foi movido.

– No arquivo C:\PostgreSQL\data\postgresql.conf, altere as seguintes linhas de acordo com o novo diretório (a barra é para a direita mesmo):

data_directory = 'C:/PostgreSQL/data'		# use data in another directory
hba_file = 'C:/PostgreSQL/data/pg_hba.conf'	# host-based authentication file
ident_file = 'C:/PostgreSQL/data/pg_ident.conf'	# ident configuration file

– Altere o Serviço do Windows que inicia o PostgreSQL com o comando abaixo (adeque para sua versão e diretório):

 C:\Windows\system32>sc config postgresql-x64-12 binPath= "\"C:\Program Files\PostgreSQL\12\bin\pg_ctl.exe\" runservice -N \"postgresql-x64-12\" -D \"C:\PostgreSQL\data\" -w"
[SC] ChangeServiceConfig ÊXITO

C:\Windows\system32>

– E finalmente, inicie o Serviço:

C:\Windows\system32>net start postgresql-x64-12
O serviço de postgresql-x64-12 está sendo iniciado.
O serviço de postgresql-x64-12 foi iniciado com êxito.


C:\Windows\system32>

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.