Uma constante dúvida e busca no desenvolvimento é como realizar um backup e restore de um banco PostgreSQL, apesar de simples, é algo que nem sempre vem a memória, e este é o motivo desta publicação.O PG Admin que é o gerenciador do banco, não funciona corretamente para exportação, por isso recomendamos utilizar este método.

Hoje o Manager eDoc, disponibiliza do utilitário backup agente (dentro da pasta utils), que faz o trabalho de backup, veja como funciona neste link aqui .

Porque o backup é importante?

O backup é importante e existe para auxiliar na prevenção de perda de dados, como registros apagados acidentalmente por falha física ou humana. Isso garante a integridade dos dados sejam mantidas. Além de ser muito útil em migração de servidores ou quando ocorre problema em um servidor.

Como fazer o backup binário do banco postgres

O banco de dados PostgreSQL nos disponibiliza algumas ferramentas, que são pequenos executáveis que fazem esse serviço de backup e restore.

Através do prompt de comando:

  1. Localize a pasta de instalação do PostgreSQL (c:\Arquivos de Programas\PostgreSQL\9.0\bin) especificamente a basta bin, dentro dela está localizado o executável pg_dump.exe que fará a exportação (dump).
  2.  Digite o comando: pg_dump.exe --host localhost --port 5432 --username postgres --format tar --file c:\nome_arquivo_que_sera_gerado.backup ManagerEDoc

O comando é auto explicativo, porém vamos ver em mais detalhes:
  --host localhost : define o local onde o banco se encontra, pode ser localmente ou externamente em outra rede.
  --port 5432 : é definida a porta utilizada, nesse caso a padrão postgres 5432.
  --username postgres : define qual é o usuário utilizado na comunicação.
  --format tar : o tipo de compressão do arquivo gerado.
  --file nomedoarquivo.backup : define com qual nome e caminho completo do arquivo que será gerado.
  ManagerEDoc : por último vai o nome do banco que se estará exportando, atenção neste ponto, pois é case sensitive, ou seja ele considera letras maiúsculas e minúsculas.

  1. Pronto, basta executar o comando e verificar se o arquivo exportado, está conforme definido no nome do arquivo.

Como fazer o restore binário do banco postgres

Através do prompt de comando:

  1. Localize a pasta de instalação do PostgreSQL (c:\Arquivos de Programas\PostgreSQL\9.0\bin) especificamente a basta bin, dentro dela está localizado o executável pg_restore.exe que fará o restore.
  2. Digite o comando: pg_restore.exe --host localhost --port 5432 --username postgres --dbname ManagerEDoc c:\nome_arquivo_exportado.backup

O comando é auto explicativo, porém vamos ver em mais detalhes:
  --host localhost : define o local onde o banco se encontra, pode ser localmente ou externamente em outra rede.
  --port 5432 : é definida a porta utilizada, nesse caso a padrão postgres 5432.
  --username postgres : define qual é o usuário utilizado na comunicação.
  --dbname ManagerEDoc : o nome do banco que se estará exportando, atenção neste ponto, pois é case sensitive, ou seja ele considera letras maiúsculas e minúsculas.
  por último, vai o caminho completo do arquivo que deseja restaurar.

  1. Pronto, basta executar o comando e verificar se o banco foi restaurado com sucesso.

Restaurando através do PG Admin

Uma outra forma de restore que recomendo é através do PG Admin, diferente da exportação, a restauração funciona perfeitamente e de forma bem simples no PG Admin. Confira imagens abaixo:

Selecione para qual banco sera restaurado, clique com botão direito, e clique em "Restore" conforme imagem.

Feito isso, basta procurar o arquivo que será restaurado, clicando nos ... (Três pontinhos de busca), e após selecionado clique em "OK".

Pronto seu banco foi restaurado com sucesso!!


Como realizar a exportação do sql de um banco com inserts

Este modo de dump, é arriscado pois muitas tabelas possuem relacionamentos, handles e sequences em andamento o que pode comprometer inserir em um novo banco de dados, porém pode ser útil em determinado momento. 
Ele consiste em fazer o dump de uma tabela em específico, segue abaixo um exemplo do comando.

1 - Localize a pasta de instalação do PostgreSQL (c:\Arquivos de Programas\PostgreSQL\9.0\bin) especificamente a basta bin, dentro dela está localizado o executável pg_dump.exe que fará a exportação (dump).  
2 - Estando lá, basta executar o seguinte comando:
    pg_dump.exe --host localhost --port 5432 --username postgres --format plain --data-only --inserts --column-inserts  --table "public.\"TspdNFCe\"" --file c:\TspdNFCe.sql ManagerEDoc

O TspdNFCe se refere à qual tabela será feito dump
3 - Feito isso, será gerado o arquivo com todos os inserts da tabela solicitada, conforme definido.