pg_dumpall

Nome

pg_dumpall -- salva um agrupamento de bancos de dados do PostgreSQL em um arquivo de script

Sinopse

pg_dumpall [opção...]

Descrição

O pg_dumpall é um utilitário para salvar (dump) todos os bancos de dados de um agrupamento do PostgreSQL em um arquivo de script. O arquivo de script contém comandos SQL que podem ser utilizados como entrada do psql para restaurar os bancos de dados. Isto é feito chamando o pg_dump para cada banco de dados do agrupamento. O pg_dumpall também salva os objetos globais, comuns a todos os bancos de dados (O pg_dump não salva estes objetos). Atualmente são incluídas informações sobre os usuários do banco de dados e grupos, e permissões de acesso aplicadas aos bancos de dados como um todo.

Portanto, o pg_dumpall é uma solução integrada para realizar cópias de segurança dos bancos de dados. Entretanto, deve ser observada a seguinte limitação: não é possível salvar "objetos grandes", porque o pg_dump não pode salvar estes objetos em arquivos texto. Havendo bancos de dados contendo objetos grandes, estes devem ser salvos usando um dos modos de saída não-texto do pg_dump.

Como o pg_dumpall lê tabelas de todos os bancos de dados, muito provavelmente será necessário conectar como um superusuário para poder gerar uma cópia de segurança completa. Também serão necessários privilégios de superusuário para executar o script produzido, para poder adicionar usuários e grupos, e para poder criar os bancos de dados.

O script SQL é escrito na saída padrão. Devem ser usados operadores de linha de comando para redirecionar para um arquivo.

O pg_dumpall precisa conectar várias vezes ao servidor PostgreSQL (uma vez para cada banco de dados). Se for utilizada autenticação por senha, provavelmente será solicitada a senha cada uma destas vezes. Neste caso é conveniente existir o arquivo ~/.pgpass. Para obter mais informações deve ser consultada a Seção 27.12.

Opções

As seguintes opções de linha de comando controlam o conteúdo e o formato da saída:

-a
--data-only

Salva somente os dados, não salva o esquema (definições de dados).

-c
--clean

Inclui comandos para remover (DROP) os objetos do banco de dados antes dos comandos para criá-los.

-d
--inserts

Salva os dados como comandos INSERT, em vez de COPY. Torna a restauração muito lenta; sua utilização principal é para fazer cópias de segurança que podem ser carregadas em outros bancos de dados que não o PostgreSQL. Além disso, como esta opção gera um comando separado para cada linha, um erro ao recarregar uma linha faz com que somente esta linha seja perdida, em vez de todo o conteúdo da tabela. Deve ser observado que a restauração pode falhar inteiramente se a ordem das colunas tiver sido modificada. A opção -D é mais segura com relação à modificação da ordem das colunas, mas é ainda mais lenta.

-D
--column-inserts
--attribute-inserts

Salva os dados como comandos INSERT explicitando os nomes das colunas (INSERT INTO tabela (coluna, ...) VALUES ...). Torna a restauração muito lenta; sua utilização principal é para fazer cópias de segurança que podem ser carregadas em outros bancos de dados que não o PostgreSQL.

-g
--globals-only

Salva somente os objetos globais (usuários e grupos), e não os banco de dados.

-i
--ignore-version

Ignora a diferença de versão entre o pg_dumpall e o servidor de banco de dados.

O pg_dumpall pode tratar bancos de dados de versões anteriores do PostgreSQL, mas as versões muito antigas não são mais suportadas (atualmente as anteriores a 7.0). Esta opção deve ser utilizada se for necessário desconsiderar a verificação de versão (mas se o pg_dumpall não for bem-sucedido, não diga que não foi avisado).

-o
--oids

Salva os identificadores de objeto (OIDs) de todas as tabelas como parte dos dados. Esta opção deverá ser utilizada se a coluna OID for referenciada por um aplicativo de alguma maneira (por exemplo, em uma restrição de chave estrangeira). Caso contrário, esta opção não deverá ser utilizada.

-O
--no-owner

Não gera comandos para definir o dono dos objetos correspondendo ao banco de dados original. Por padrão, o pg_dumpall emite os comandos ALTER OWNER ou SET SESSION AUTHORIZATION para definir o dono dos objetos criados no bancos de dados. Estes comandos não serão bem-sucedidos quando o script for executado, a menos que o script seja iniciado por um superusuário (ou o mesmo usuário que possui todos os objetos presentes no script). Para gerar um script que pode ser restaurado por qualquer usuário, mas que tornará este usuário o dono de todos os objetos, deve ser especificada a opção -O.

-s
--schema-only

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

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

Especifica o nome de usuário do superusuário a ser usado para desativar os gatilhos. Somente é relevante quando é usada a opção --disable-triggers (Geralmente é melhor não utilizar esta opção e, em vez disso, executar o script produzido como um superusuário).

-v
--verbose

Especifica o modo verboso. Faz com que o pg_dumpall coloque os tempos de início/fim no arquivo de cópia de segurança, e envie mensagens de progresso na saída de erro padrão. Também ativa a saída verbosa no pg_dump.

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

Impede salvar os privilégios de acessos (comandos GRANT/REVOKE).

-X disable-dollar-quoting
--disable-dollar-quoting

Esta opção desativa a utilização do caractere cifrão ($) para delimitar o corpo da função, obrigando delimitar o corpo da função utilizando a sintaxe para cadeia de caracteres do padrão SQL.

-X disable-triggers
--disable-triggers

Esta opção somente é relevante ao criar um arquivo de cópia de segurança somente de dados. Esta opção faz o pg_dumpall incluir comandos para desativar, temporariamente, os gatilhos das tabelas de destino enquanto os dados são recarregados. Deve ser utilizada quando existem verificações de integridade referencial, ou outros gatilhos nas tabelas, que não se deseja que sejam chamados durante a recarga dos dados.

Atualmente, os comandos emitidos para a opção --disable-triggers devem ser executados por superusuários. Portanto, também deve ser especificado o nome de um superusuário com a opção -S ou, de preferência, executar, com cuidado, o script produzido como um superusuário.

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

Gera comandos SET SESSION AUTHORIZATION do padrão SQL em vez dos comandos OWNER TO para determinar o dono do objeto. Isto torna a cópia de segurança mais compatível com o padrão, mas dependendo da disposição dos objetos na cópia de segurança pode não restaurar de forma apropriada.

As seguintes opções de linha de comando controlam os parâmetros de conexão com o servidor de banco de dados:

-h hospedeiro

Especifica o nome de hospedeiro da máquina onde o servidor de banco de dados está executando. Se o nome iniciar por barra (/), será utilizado como o diretório do soquete do domínio Unix. O padrão é obter o nome a partir da variável de ambiente PGHOST, se esta estiver definida, senão tentar uma conexão pelo soquete do domínio Unix.

-p porta

Especifica a porta TCP, ou a extensão do arquivo de soquete do domínio Unix local, onde o servidor está atendendo as conexões. O padrão é obter o valor a partir da variável de ambiente PGPORT, se esta estiver definida, senão usar o valor padrão compilado.

-U nome_do_usuário

Conectar como o usuário especificado.

-W

Força a solicitação da senha, o que deve acontecer automaticamente quando o servidor requer autenticação por senha.

Ambiente

PGHOST
PGPORT
PGUSER

Parâmetros de conexão padrão.

Observações

Como o pg_dumpall chama o pg_dump internamente, algumas mensagens de diagnósticos fazem referência ao pg_dump.

Ao término da restauração, é aconselhável executar o comando ANALYZE em todos os bancos de dados para que o otimizador tenha estatísticas úteis. Também pode ser executado vacuumdb -a -z para analisar todos os bancos de dados.

Exemplos

Para salvar todos bancos de dados:

$ pg_dumpall > db.out

Para recarregar este banco de dados deve ser utilizado, por exemplo:

$ psql -f db.out template1

(Neste caso o banco de dados a se conectar não tem importância, porque o arquivo de script criado pelo pg_dumpall contém os comandos apropriados para criar e conectar aos bancos de dados salvos).

Consulte também

pg_dump. Veja neste comando os detalhes sobre as condições de erro possíveis. Veja, também, as variáveis de ambiente suportadas (Seção 27.11).

SourceForge.net Logo CSS válido!