Restaurando backup com pg_restore

Informática

10/06/2008

pg_restore --  restaura um banco de dados do PostgreSQL a partir de um arquivo gerado pelo pg_dump

Synopsis

pg_restore [ -a ] [ -c ] [ -C ] [ -d nome_bd ] [ -f arquivo_de_saída ] [ -F formato ] [ -i índice ] [ -l ] [ -L arquivo_da_listagem ] [ -N | -o | -r ] [ -O ] [ -P nome_da_função ] [ -R ] [ -s ] [ -S ] [ -t tabela ] [ -T gatilho ] [ -v ] [ -x ] [ -X palavra_chave] [ -h hospedeiro ] [ -p porta ] [ -U nome_do_usuário ] [ -W ] [ arquivo_de_exportação ]

Descrição:

O pg_restore é um utilitário para restaurar um banco de dados do PostgreSQL a partir de um arquivo gerado pelo pg_dump em um dos formatos não-texto-puro. São executados os comandos necessários para criar novamente todos os tipos, funções, tabelas, índices, agregações e operadores definidos pelo usuário, assim como os dados das tabelas.

Os arquivos de exportação contêm informações para o pg_restore reconstruir o banco de dados, mas também permitem ao pg_restore selecionar o que deve ser restaurado, ou mesmo reordenar a restauraração dos itens. Os arquivos de exportação são projetados para serem portáveis entre arquiteturas.

O pg_restore pode operar de dois modos: Se um nome de banco de dados for especificado, o arquivo de exportação é restaurado diretamente no banco de dados. Senão, um script contendo os comandos SQL necessários para reconstruir o banco de dados é criado (e escrito em um arquivo ou na saída padrão), semelhante aos scripts criados pelo pg_dump no formato texto-puro. Algumas das opções que controlam a criação do script são, portanto, análogas às opções do pg_dump.

Obviamente, o pg_restore não pode restaurar informações que não estejam presentes no arquivo de exportação; por exemplo, se o arquivo de exportação foi gerado usando a opção "exportar dados como INSERT", o pg_restore não poderá importar os dados usando o comando COPY.
Opções

O pg_restore aceita os seguintes argumentos de linha de comando (As formas longas das opções estão disponíveis em algumas plataformas apenas).

nome_do_arquivo_exportado
    Especifica a localização do arquivo de exportação a ser restaurado. Se não for especificado, a entrada padrão é usada.

-a
--data-only

    Importa somente os dados, não o esquema (definições dos dados).

-c
--clean

    Exclui (drop) os objetos do banco de dados antes de criá-los..

-C
--create

    Cria o banco de dados antes de restaurá-lo (Quando esta opção está presente, o banco de dados designado por -d é usado apenas para executar o comando CREATE DATABASE inicial. Todos os dados são restaurados no banco de dados cujo nome aparece no arquivo de exportação).

-d nome_bd
--dbname=nome_bd

    Conecta ao nome_bd e restaura diretamente no banco de dados. Os objetos grandes somente podem ser restaurados usando uma conexão direta ao banco de dados.

-f arquivo_de_saída
--file=arquivo_de_saída

    Especifica o nome do arquivo contendo o script gerado, ou a listagem quando for utilizado com a opção -l. Por padrão a saída padrão.

-F formato
--format=formato

    Especifica o formato do arquivo de exportação. Não é necessário especificar o formato, porque o pg_restore reconhece o formato automaticamente. Se for especificado, poderá ser um dos seguintes:

t

        O arquivo de exportação está no formato tar. Este formato de arquivo de exportação permite reordenar e/ou excluir elementos do esquema durante a importação. Também permite limitar quais dados são recarregados durante a importação.
   
c

        O arquivo de exportação está no formato personalizado do pg_dump. Este é o formato mais flexível porque permite a reordenação da importação dos dados e dos elementos do esquema. Este formato também é comprimido por padrão.

-i índice
--index=índice

    Restaura a definição do índice para o índice especificado apenas.

-l
--list

    Lista o conteúdo do arquivo de exportação. A saída deste comando pode ser usada com a opção -L para restringir e reordenar os itens que são restaurados.

-L arquivo_da_listagem
--use-list=arquivo_da_listagem

    Restaura apenas os elementos presentes no arquivo_da_listagem, e na ordem em que aparecem neste arquivo. As linhas podem ser movidas e, também, podem virar comentário colocando-se um ; no seu início.

-N
--orig-order

    Restaura os itens na ordem original de exportação. Por padrão, o pg_dump irá exportar os itens em uma ordem conveniente para o pg_dump, e depois salvar o arquivo de exportação em uma ordem de OID modificada. Esta opção substitui a da ordem de OID.

-o
--oid-order

    Restaura os itens na ordem de OID. Por padrão o pg_dump irá exportar exporta os itens em uma ordem conveniente para o pg_dump, e depois salvar o arquivo de exportação em uma ordem de OID modificada. Esta opção impõe a estrita ordem de OID.

-O
--no-owner

    Impede qualquer tentativa de restaurar o dono original do objeto. O dono dos objetos será o usuário conectado ao banco de dados.

-P nome_da_função
--function=nome_da_função

    Especifica o procedimento ou a função a ser restaurada.

-r
--rearrange

    Restaura os itens na ordem modificada de OID. Por padrão, o pg_dump irá exportar os itens em uma ordem conveniente para o pg_dump, e depois salvar o arquivo de exportação em uma ordem de OID modificada. A maior parte dos objetos é restaurada na ordem de OID, mas alguns elementos (por exemplo, regras e índices) são restaurados no fim do processo sem respeitar os OIDs. Esta é a opção padrão.

-R
--no-reconnect

    Durante a restauração do arquivo de exportação, o pg_restore usualmente necessita reconectar ao banco de dados vária vezes com nomes de usuário diferentes, para definir o dono correto dos objetos criados. Se isto não for desejável (por exemplo, se a intervenção manual for necessária para cada reconexão), esta opção proíbe o pg_restore requisitar reconexões (uma requisição de conexão em modo texto-puro, não conectado ao banco de dados, é feita emitindo o comando \connect do psql). Entretanto, esta opção é um instrumento bastante rudimentar, porque faz o pg_restore perder a informação sobre o dono, a menos que seja usada a opção -X use-set-session-authorization.

-s
--schema-only

    Restaura somente o esquema (definições dos dados), sem os dados. Os valores das seqüências são substituídos.

-S nome_do_usuário
--superuser=nome_do_usuário

    Especifica o nome do superusuário a ser usado para desativar os gatilhos e/ou definir o dono dos elementos do esquema. Por padrão, o pg_restore usa o nome do usuário corrente se este for um superusuário.

-t tabela
--table=tabela

    Restaurar o esquema/dados da tabela apenas.

-T gatilho
--trigger=gatilho

    Restaurar a definição do gatilho apenas.

-v
--verbose

    Especifica o modo verboso.

-x
--no-privileges
--no-acl

    Proíbe a restauração dos privilégios de acesso (comandos GRANT/REVOKE).

-X use-set-session-authorization
--use-set-session-authorization

    Normalmente, se ao restaurar um arquivo de exportação for necessário trocar o usuário corrente do banco de dados (por exemplo, para definir o dono correto do objeto), uma nova conexão ao banco de dados deve ser aberta, o que poderá requerer intervenção manual (por exemplo, senhas). Se for usada a opção -X use-set-session-authorization, então o pg_restore vai usar o comando SET SESSION AUTHORIZATION. Embora produza o mesmo efeito, requer que o usuário que for fazer a importação do banco de dados a partir do arquivo de exportação gerado seja um superusuário. Esta opção substitui a opção -R.

O pg_restore também aceita os seguintes argumentos de linha de comando para os parâmetros de conexão:

-h hospedeiro
--host=hospedeiro

    Especifica o nome da máquina onde o servidor está executando. Se o nome iniciar por uma barra (/), é considerado como sendo o diretório do soquete do domínio Unix.

-p porta
--port=porta

    Especifica a porta Internet TCP/IP, ou o soquete do domínio local Unix, onde o servidor está aguardando as conexões. O padrão para o número da porta é 5432, ou o valor da variável de ambiente PGPORT (se estiver definida).

-U nome_do_usuário

    Nome do usuário para se conectar.

-W

    Força a solicitação da senha. Deve acontecer automaticamente se o servidor requerer autenticação por senha.


Exemplos:
$ pg_restore -d bd_novo bd.tar



Fonte:Manual de referência do postgresql

Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.


Colunista Portal - Educação

por Colunista Portal - Educação

O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.

Portal Educação

UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93