Mover o banco de dados postgresql de um servidor para outro


9

Criei um banco de dados (espacial) em minha casa com vários gigabytes e desejo mover todo o banco de dados, pois ele é de um computador do meu computador de trabalho.

Nada de bom, vou criar uma nova instância do postgresql / postgis db no meu computador de trabalho. Os usuários do banco de dados podem ou não ter o mesmo nome nos dois computadores.

É possível? Sobre o que devo me preocupar? Como posso fazer isso sem dor?

Estou usando o postgresql v9.1.5 com extensão postgis. Ubuntu12.04 (kernel 3.2.0-31)


Veja este tópico semelhante no StackOverflow, Copiando o banco de dados PostgreSQL para outro servidor .
Basil Bourque

Respostas:


11

Você pode executar um despejo do banco de dados:

pg_dump yourdatabase | gzip -9 > outfile.sql.gz

e depois importe de volta para o PostgreSQL no seu computador de trabalho. Levará algum tempo e o arquivo resultante, mesmo se compactado, pode estar na faixa de gigabytes, mas deve ser pequeno o suficiente para estar em uma chave USB.

No seu computador de trabalho, crie o novo banco de dados e carregue o dump:

zcat outfile.sql.gz | psql yournewdatabase

Se você possui uma conexão rápida (ou pode demorar algum tempo), pode até transferir o banco de dados pela Internet através de uma conexão SSH criptografada ou ferramentas como o rsync.


11
E quanto aos privilégios de usuário / grupo? em minha casa eu tenho, por exemplo, usuário1, mas no trabalho seu usuário2. Isso importa?

2
Não deveria. Claro que você precisa definir o usuário correto no seu aplicativo. Como é o seu PC doméstico, tente renomear usuário1 para usuário2 e verifique se tudo funciona antes de descarregar. Então a transferência deve ser livre de problemas.

3
Use pg_dumpall para um despejo das funções de banco de dados.
24512 Frank Heikens

11
para ser capaz de despejar o banco de dados, você precisa instalar a mesma versão do PostgreSQL como no servidor antigo, consulte wiki.postgresql.org/wiki/Apt
rubo77

2

O pg_dumpall é a maneira mais segura de fazer isso. Eu recomendaria fazer um dumpall antes da migração de qualquer maneira. o grande problema é que pode demorar um pouco para restaurar se for grande.

Você também pode copiar o diretório de dados, de preferência após parar o servidor (você pode usar pg_start_backup () no lugar de parar, mas consulte todos os documentos sobre recuperação de ponto no tempo antes de seguir essa rota. Essa rota permitiria um tempo de inatividade quase zero Observe também que você só pode fazer isso se a arquitetura de SO e CPU for a mesma nos dois sistemas.Você não pode passar do Windows para o Linux ou do i686 para o x86-64 dessa maneira. Verifique também as versões do kernel do sistema operacional para para garantir que os sistemas sejam compatíveis.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.