Por favor, esteja ciente que no PostgreSQL, seu diretório de dados de cluster é uma unidade independente que não pode ser restaurada de forma confiável em partes, conforme a documentação aqui .
Sua melhor esperança é usar o diretório de dados completo do servidor antigo e iniciar um servidor nele, depois restaurar a partir de um dump do banco de dados obtido a partir dele:
- Pegue um postgresql.conf que se encaixa na configuração do novo host (orienta-se pelos arquivos no antigo - que você altera aqui - e novos diretórios de dados)
- Descubra o nome de usuário do superusuário do PostgreSQL da instalação antiga - provavelmente o postgres.
- Crie este nome de usuário (usuário UNIX) no novo host, a menos que já esteja lá.
- Conceda (chown) o diretório de dados antigo a esse usuário, a menos que o uid corresponda ao do servidor antigo.
- Configure o pg_hba.conf no diretório de dados antigo para permitir conexões de usuários locais com o mesmo nome de usuário postgres (normalmente, isso é o padrão, mas verifique).
- Execute o antigo cluster de banco de dados como o usuário do UNIX com o mesmo nome do superusuário do diretório de dados antigo, por exemplo, para postgres de usuários:
sudo -u postgres postgres -D old_data_directory
or with su:
su postgres postgres -D old_data_directory - despejar o banco de dados antigo, novamente com o nome de usuário normal, postgres:
sudo -u postgres pg_dump -p /path/to/socket/for/old/directory database_name > dump_file.sql
becoming postgres with su analogous to above
- adapte o dump_file.sql aos nomes de usuário do novo servidor etc; criar o banco de dados vazio com apropriação adequada lá
- varrer o banco de dados para o novo servidor:
sudo -u postgres psql -p /path/to/socket/for/new/directory new_database_name
once again, getting postgres privileges using su analogous to above
Isso deve definir o caminho ou, pelo menos, mostrar um bom caminho para chegar lá.