Use o pg_dump para criar um backup lógico de uma instância ApsaraDB RDS for PostgreSQL e exportar o arquivo de backup para armazenamento local ou migração.
O pg_dump faz backup de um banco de dados por vez. Para consultar a referência oficial, visualize pg_dump.
Pré-requisitos
Antes de começar, verifique se:
O endereço IP da sua instância Elastic Compute Service (ECS) ou do host local está adicionado à lista de permissões de endereços IP da instância RDS. Para mais informações, consulte Configurar uma lista de permissões de endereços IP.
Sua instância ECS ou host local executa a mesma versão do PostgreSQL que sua instância RDS.
Os exemplos neste tópico usam CentOS 7 e PostgreSQL 15.
Observações de uso
Use a conta privilegiada da instância RDS para executar o pg_dump. Para obter instruções sobre como criar uma conta privilegiada, consulte Criar uma conta.
Seleção de endpoint
Todos os comandos de backup exigem um endpoint de conexão (-h). Escolha com base na sua configuração de rede:
Endpoint interno: A instância ECS e a instância RDS devem usar o mesmo tipo de rede. Se ambas usarem Virtual Private Cloud (VPC), precisam residir na mesma VPC. Para mais informações, consulte Visualizar e alterar os endpoints e números de porta de uma instância ApsaraDB RDS for PostgreSQL.
Endpoint público: Aloque um endpoint público à instância RDS antes de usá-lo. Para mais detalhes, consulte Visualizar e alterar os endpoints e números de porta e Solicitar ou liberar um endpoint público.
Fazer backup de um banco de dados
Faça login na sua instância ECS ou host local e execute:
pg_dump -h '<hostname>' -U <username> -p <port> -Fc <dbname> > <dumpdir>
Parâmetros
|
Parâmetro |
Descrição |
|
|
O endpoint da instância RDS. |
|
|
O nome de usuário da conta privilegiada. |
|
|
A porta da instância RDS. |
|
|
Gera a saída em formato personalizado. Obrigatório para o |
|
|
O nome do banco de dados para backup. |
|
|
O caminho de saída e o nome do arquivo de backup. |
Exemplo
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -Fc zht01 > /tmp/testdb.dump
Insira a senha da conta privilegiada quando solicitado e pressione Enter.
Para verificar se o arquivo de backup foi criado (Linux):
ll /tmp/testdb.dump

[root@iZbpxxxxxx ~]# pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -Fc zht01 > /tmp/testdb.dump
Password:
[root@iZbpxxxxxx ~]# ll /tmp/testdb.dump
-rw-r--r-- 1 root root 34095 Aug 8 13:49 /tmp/testdb.dump
Fazer backup de uma ou mais tabelas
Acesse sua instância ECS ou host local e execute:
pg_dump -h '<hostname>' -U <username> -p <port> -t <Schema>.<table> -Fc <dbname> > <dumpdir>
Adicione -t <Schema>.<table> várias vezes para incluir tabelas adicionais.
Parâmetro adicional
|
Parâmetro |
Descrição |
|
|
A tabela para backup, especificada como |
Para os demais parâmetros (hostname, username, port, -Fc, dbname, dumpdir), consulte Fazer backup de um banco de dados.
Exemplo
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -t zhttest0808 -Fc zht01 > /tmp/testdb2.dump
Insira a senha da conta privilegiada quando solicitado e pressione Enter.
Para confirmar a criação do arquivo de backup (Linux):
ll /tmp/testdb2.dump

[root@iZbpxxxxxx ~]# pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -t zhttest0808 -Fc zht01 > /tmp/testdb2.dump
Password:
[root@iZbpxxxxxx ~]# ll /tmp/testdb2.dump
-rw-r--r-- 1 root root 2841 Aug 8 14:17 /tmp/testdb2.dump
Fazer backup de um banco de dados excluindo tabelas
Conecte-se à sua instância ECS ou host local e execute:
pg_dump -h '<hostname>' -U <username> -p <port> -T <table> -Fc <dbname> > <dumpdir>
Repita o parâmetro -T <table> para excluir outras tabelas.
Parâmetro adicional
|
Parâmetro |
Descrição |
|
|
A tabela a ser excluída do backup. |
Para os demais parâmetros, consulte Fazer backup de um banco de dados.
Exemplo
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -T zhttest0808 -Fc zht01 > /tmp/testdb3.dump
Insira a senha da conta privilegiada quando solicitado e pressione Enter.
Para validar a existência do arquivo de backup (Linux):
ll /tmp/testdb3.dump

[root@iZbpxxxxxx ~]# pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -T zhttest0808 -Fc zht01 > /tmp/testdb3.dump
Password:
[root@iZbpxxxxxx ~]# ll /tmp/testdb3.dump
-rw-r--r-- 1 root root 32604 Aug 8 14:21 /tmp/testdb3.dump
Fazer backup do schema de um banco de dados
Entre na sua instância ECS ou host local e execute:
pg_dump -h '<hostname>' -U <username> -p <port> -s -Fc <dbname> > <dumpdir>
Parâmetro adicional
|
Parâmetro |
Descrição |
|
|
Faz backup apenas do schema do banco de dados. Os dados não são incluídos. |
Para os demais parâmetros, consulte Fazer backup de um banco de dados.
Exemplo
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -s -Fc zht01 > /tmp/testdb4.dump
Insira a senha da conta privilegiada quando solicitado e pressione Enter.
Para verificar se o arquivo de backup foi gerado (Linux):
ll /tmp/testdb4.dump

[root@iZbpxxxxxx ~]# pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -s -Fc zht01 > /tmp/testdb4.dump
Password:
[root@iZbpxxxxxx ~]# ll /tmp/testdb4.dump
-rw-r--r-- 1 root root 33580 Aug 8 14:23 /tmp/testdb4.dump
O retorno completo é o seguinte:

Próximos passos
Para restaurar dados de um arquivo de backup lógico, consulte Restaurar dados de um arquivo de backup lógico.