pg_dumpall

Nome

pg_dumpall -- salva os bancos de dados de um agrupamento 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 usados 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 se conectar como um superusuário para poder gerar uma cópia completa. Também será necessário o privilégio de superusuário para executar o script produzido, para poder criar 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 se conectar várias vezes ao servidor PostgreSQL (uma vez para cada banco de dados), podendo ser necessário solicitar a senha cada uma destas vezes. Neste caso é conveniente existir o arquivo $HOME/.pgpass.

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 dado).
-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 possam ser carregadas em outros bancos de dados que não o PostgreSQL.
-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, mas é necessário se for desejado mudar a ordem das colunas.
-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_dump e o servidor de banco de dados. O pg_dump 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 deve ser usada quando a coluna OID é referenciada de alguma maneira (por exemplo, em uma restrição de chave estrangeira). Caso contrário, esta opção não deve ser usada.
-s
--schema-only
Salva somente o esquema (definições dos dados), não os dados.
-v
--verbose
Especifica o modo verboso. Faz a aplicação pg_dumpall exibir mensagens de progresso na saída de erro padrão.
-x
--no-privileges
--no-acl
Impede salvar os privilégios de acessos (comandos GRANT/REVOKE).

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 está executando. Se o nome iniciar por uma barra (/) é usado 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 de arquivo do soquete do domínio Unix local, onde o servidor está escutando as conexões. O padrão é obter a partir da variável de ambiente PGPORT, se esta estiver definida, senão o 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 se referem 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).

Veja também

pg_dump . Veja aí os detalhes sobre as condições de erro possíveis.

SourceForge.net Logo