Backup de banco de dados com pg_dump

Realizando backups no PostgreSQL utilizando a ferramenta nativa pg_dump. Backups são rotinas essenciais para manter nossos bancos de dados garantidos em casos de falhas, bugs, etc. Nunca se sabe quando um servidor pode parar, um hd queimar ou quem sabe, uma pane elétrica e o seu servidor ir para o espaço.

Por | @msantino Programação
Backups são rotinas essenciais para manter nossos bancos de dados garantidos em casos de falhas, bugs, etc. Nunca se sabe quando um servidor pode parar, um hd queimar ou quem sabe, uma pane elétrica e o seu servidor ir para o espaço.

Como dizia um professor meu: Se o backup não é importante, o seu emprego também não é!

Pensando nisso, nada melhor que deixar programada uma rotina de backup com a frequência mais adequada ao seu caso.

O PostgreSQL oferece uma ferramenta própria para backup chamada pg_dump. Com ela podemos realizar backups tanto do schema quanto dos dados (ou e/ou outro), para arquivo tar ou plain text.

Analisando o próprio help da ferramenta, podemos seguir seu padrão de uso:

    Usage:
    pg_dump [OPTION]... [DBNAME]

Um exemplo básico:
pg_dump -Ft -f arquivo.tar nome_do_banco

No exemplo acima não informamos nem usuário e nem o host da conexão. Sendo assim, o pg_dump assume que você realizará o login na própria máquina (localhost) e utilizará o mesmo usuário que está logado no sistema operacional. O -F informa qual tipo de arquivo utilizaremos para a saída dos dados (arquivo de destino), no caso, o tipo TAR e criaremos o arquivo chamado arquivo.tar.

Para informar o usuário usamos a opção -U e para o host a opção -h, como no exemplo abaixo:
pg_dump -Ft -U usuario_do_banco -h ip_do_banco -f arquivo.tar nome_do_banco

Ou
pg_dump -Ft -U postgres -h 192.168.1.10 -f arquivo.tar nome_do_banco

Podemos, ainda, definir uma série de parâmetros para personalizar nosso backup. Sendo eles:

Opções Gerais


    -v -> para exibir o progresso do processo na tela durante a execução
    -f ->para informar o nome do arquivo de destino
    -z ->para comprimir o arquivo de saída
    
    

Opções de controle da saída do conteúdo


    -a ->exporta somente os dados do banco
    -b ->inclui blobs (objetos longos) no dump
    -c ->limpa os objetos antes de recriar (durante o restore)
    -C ->inclui o comando para criar o banco de dados no restore
    -E -> especifica qual encoding será usado no backup
    -n ->especifica em qual schema será realizado o backup.
    -N ->exclui o schema informado do backup
    -o ->inclui os OIDs dos objetos
    -O ->não inclui a restauração do proprietário do objeto (owner) durante o restore.
    -s ->realiza backup apenas do schema, ou seja, da estrutura do banco de dados
    -t ->especifica o backup de apenas uma tabela
    -T ->exclui a tabela do backup
    -x ->não inclui os privilégios (grant/revoke)

    

Opções de Conexão


    -h ->host do servidor do banco de dados
    -p ->porta do servidor do banco de dados
    -U ->nome do usuário que logará e efetuará o backup no servidor
    -w ->não será solicitado password ao executar o comando
    -W -> forçará a solicitação de password


O comando pg_dump pode ser executado tanto via linux (linha de comando) quanto no windows através do prompt de comando.

Em breve postarei outro artigo falando sobre restaurar o backup utilizando o pg_restore.

Mais sobre: postgresql postgre backup
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo