As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Transporte bancos de dados PostgreSQL entre duas instâncias de banco de dados Amazon RDS usando pg_transport
Criado por Raunak Rishabh (AWS) e Jitender Kumar (AWS)
Resumo
Esse padrão descreve as etapas para migrar bancos de dados extremamente grandes entre duas instâncias de banco de dados Amazon Relational Database Service (Amazon RDS) para PostgreSQL usando a extensão pg_transport. Esta extensão fornece um mecanismo de transporte físico para mover cada banco de dados. Ao fazer streaming dos arquivos do banco de dados com o mínimo de processamento, ele fornece um método extremamente rápido para migrar grandes bancos de dados entre instâncias de banco de dados com o mínimo de tempo de inatividade. Essa extensão usa um modelo pull, em que a instância do banco de dados de destino importa o banco de dados da instância de banco de dados de origem.
Pré-requisitos e limitações
Pré-requisitos
Ambas as instâncias de banco de dados devem executar a mesma versão principal do PostgreSQL.
O banco de dados não deve existir no destino. Caso contrário, ocorrerá uma falha no transporte.
Nenhuma extensão diferente de pg_transport deve ser habilitada no banco de dados de origem.
Todos os objetos do banco de dados de origem devem estar no espaço de tabela padrão pg_default.
O grupo de segurança da instância de banco de dados de origem deveria permitir tráfego da instância de banco de dados de destino.
Instale um cliente PostgreSQL, como
o psql, PgAdmin ou para trabalhar com a instância de banco de dados PostgreSQL do Amazon RDS. Você pode instalar o cliente em seu sistema local ou usar uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Nesse padrão, usamos psql em uma EC2 instância.
Limitações
Você não pode transportar bancos de dados entre diferentes versões principais do Amazon RDS para PostgreSQL.
Os privilégios de acesso e a propriedade do banco de dados de origem não são transferidos para o banco de dados de destino.
Não é possível transportar bancos de dados em réplicas de leitura nem em instâncias pai de réplicas de leitura.
Não é possível usar os tipos de dados reg em nenhuma tabela de banco de dados que você planeja transportar com esse método.
É possível executar até 32 transportes totais ao mesmo tempo (inclusive importações e exportações) em uma instância de banco de dados.
Você não pode renomear ou incluir/excluir tabelas. Tudo é migrado como está.
Cuidado
Faça backups antes de remover a extensão, pois a remoção da extensão também remove objetos dependentes e alguns dados essenciais para a operação do banco de dados.
Considere a classe da instância e os processos em execução em outros bancos de dados na instância de origem ao determinar o número de operadores e os valores
work_mem
para pg_transport.Quando o transporte é iniciado, todas as conexões no banco de dados de origem são encerradas e o banco de dados é colocado no modo somente leitura.
nota
Quando o transporte está sendo executado em um banco de dados, ele não afeta outros bancos de dados no mesmo servidor.
Versões do produto
Amazon RDS para PostgreSQL 10.10 e posterior e Amazon RDS para PostgreSQL 11.5 e posterior. Para obter as informações sobre a versão mais recente, consulte Transporte de bancos de dados PostgreSQL entre instâncias de banco de dados na documentação do Amazon RDS.
Arquitetura

Ferramentas
pg_transport fornece um mecanismo de transporte físico para mover cada banco de dados. Ao fazer streaming dos arquivos do banco de dados com o mínimo de processamento, o transporte físico move os dados muito mais rapidamente que os processos tradicionais de despejo e carregamento e leva um tempo de inatividade mínimo. Os bancos de dados PostgreSQL transportáveis usam um modelo pull, em que a instância do banco de dados de destino importa o banco de dados da instância de banco de dados de origem. Você instala essa extensão em suas instâncias de banco de dados ao preparar os ambientes de origem e de destino, conforme explicado nesse padrão.
O psql
permite que você se conecte e trabalhe com suas instâncias de banco de dados PostgreSQL. Para instalar o psql em seu sistema, consulte a página de downloads do PostgreSQL.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um grupo de parâmetros para o sistema de destino. | Especifique um nome de grupo que o identifique como um grupo de parâmetros de destino; por exemplo, | DBA |
Modificar os parâmetros no grupo de parâmetros. | Defina os seguintes parâmetros:
Para obter mais informações sobre estes parâmetros, consulte a documentação do Amazon RDS. | DBA |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um grupo de parâmetros para o sistema de origem. | Especifique um nome de grupo que o identifique como um grupo de parâmetros de origem; por exemplo, | DBA |
Modificar os parâmetros no grupo de parâmetros. | Defina os seguintes parâmetros:
Para obter mais informações sobre estes parâmetros, consulte a documentação do Amazon RDS. | DBA |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma nova instância de banco de dados Amazon RDS para PostgreSQL para a qual transportar seu banco de dados de origem. | Determine a classe da instância e a versão do PostgreSQL com base nos requisitos da sua empresa. | DBA, administrador de sistemas, arquiteto de banco de dados |
Modifique o grupo de segurança do destino para permitir conexões na porta da instância de banco de dados a partir da EC2 instância. | A porta padrão para a instância PostgreSQL é 5432. Se você estiver usando outra porta, as conexões com essa porta devem estar abertas para a EC2 instância. | DBA, administrador de sistemas |
Modifique a instância e atribua o novo grupo de parâmetros de destino. | Por exemplo, | DBA |
Reiniciar a instância de banco de dados do Amazon RDS. | Os parâmetros | DBA, administrador de sistemas |
Conecte-se ao banco de dados a partir da EC2 instância usando psql. | Use o comando:
| DBA |
Crie a extensão pg_transport. | Execute a consulta a seguir como usuário com a função
| DBA |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Modifique o grupo de segurança da origem para permitir conexões na porta da instância de banco de dados da instância Amazon e da EC2 instância de banco de dados de destino | A porta padrão para a instância PostgreSQL é 5432. Se você estiver usando outra porta, as conexões com essa porta devem estar abertas para a EC2 instância. | DBA, administrador de sistemas |
Modifique a instância e atribua o novo grupo de parâmetros de origem. | Por exemplo, | DBA |
Reinicie a origem de banco de dados do Amazon RDS. | Os parâmetros | DBA |
Conecte-se ao banco de dados a partir da EC2 instância usando psql. | Use o comando:
| DBA |
Crie a extensão pg_transport e remova todas as outras extensões dos bancos de dados a serem transportados. | O transporte falhará se houver alguma extensão diferente de pg_transport instalada no banco de dados de origem. Esse comando deve ser executado por um usuário com a função | DBA |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Execute uma simulação. | Use a função
O último parâmetro dessa função (determinado como Essa função exibe todos os erros que você veria ao executar o transporte principal. Resolva os erros antes de executar o transporte principal. | DBA |
Se a execução a seco for bem-sucedida, inicie o transporte do banco de dados. | Execute a função
O último parâmetro dessa função (definido como | DBA |
Execute as etapas pós-transporte. | Depois que o transporte do banco de dados estiver concluído:
| DBA |