Configurar o transporte de um banco de dados PostgreSQL - Amazon Relational Database Service

Configurar o transporte de um banco de dados PostgreSQL

Antes de começar, certifique-se de que as instâncias de banco de dados do RDS for PostgreSQL atendam aos seguintes requisitos:

  • As instâncias de banco de dados do RDS for PostgreSQL para a origem e o destino devem ser executadas na mesma versão do PostgreSQL.

  • O banco de dados de destino não pode ter um banco de dados com o mesmo nome do banco de dados de origem que você deseja transportar.

  • A conta que você usa para executar o transporte precisa dos privilégios rds_superuser nos bancos de dados de origem e de destino.

  • O grupo de segurança da instância de banco de dados de origem deve permitir acesso de entrada da instância de banco de dados de destino. Isso pode já ser o caso se as instâncias de banco de dados de origem e de destino estiverem localizadas na VPC. Para obter mais informações sobre grupo de seguranças, consulte Controlar acesso com grupos de segurança.

O transporte de bancos de dados de uma instância de banco de dados de origem para uma instância de banco de dados de destino requer várias alterações no grupo de parâmetros de banco de dados associado a cada instância. Isso significa que você deve criar um grupo de parâmetros de banco de dados personalizado para a instância de banco de dados de origem e criar um grupo de parâmetros de banco de dados personalizado para a instância de banco de dados de destino.

nota

Se suas instâncias de banco de dados já estiverem configuradas usando grupos de parâmetros de banco de dados personalizados, você poderá começar com a etapa 2 no procedimento a seguir.

Para configurar os parâmetros de grupos de banco de dados personalizados para o transporte de bancos de dados

Para as etapas a seguir, use uma conta que tenha os privilégios rds_superuser.

  1. Se as instâncias de banco de dados de origem e de destino usarem um grupo de parâmetros de banco de dados padrão, você precisará criar um grupo de parâmetros de banco de dados personalizado usando a versão apropriada para suas instâncias. Você faz isso para poder alterar valores para vários parâmetros. Para obter mais informações, consulte Grupos de parâmetros para Amazon RDS.

  2. No grupo de parâmetros de banco de dados personalizado, altere os valores dos seguintes parâmetros:

    • shared_preload_libraries: adicionar pg_transport à lista de bibliotecas.

    • pg_transport.num_workers: o valor padrão é 3. Aumente ou reduza esse valor conforme necessário para o banco de dados. Para um banco de dados de 200 GB, recomendamos não mais que 8. Tenha em mente que, se você aumentar o valor padrão desse parâmetro, você também deverá aumentar o valor de max_worker_processes.

    • pg_transport.work_mem: o valor padrão é 128 MB ou 256 MB, dependendo da versão do PostgreSQL. A configuração padrão geralmente pode ser deixada inalterada.

    • max_worker_processes: o valor desse parâmetro precisa ser definido usando o seguinte cálculo:

      (3 * pg_transport.num_workers) + 9

      Esse valor é obrigatório no destino para lidar com vários processos de operador em segundo plano envolvidos no transporte. Para saber mais sobre max_worker_processes, consulte Consumo de recursos na documentação do PostgreSQL.

    Para obter mais informações sobre parâmetros do pg_transport, consulte Referência de parâmetros de bancos de dados transportáveis .

  3. Reinicialize a instância de banco de dados do RDS for PostgreSQL de origem e a instância de destino para que as configurações dos parâmetros entrem em vigor.

  4. Conecte-se à sua instância de banco de dados do RDS for PostgreSQL de origem.

    psql --host=source-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  5. Remova extensões estranhas do esquema público da instância de banco de dados. Somente a extensão pg_transport é permitida durante a operação de transporte real.

  6. Instale a extensão pg_transport da seguinte forma:

    postgres=> CREATE EXTENSION pg_transport; CREATE EXTENSION
  7. Conecte-se à sua instância de banco de dados do RDS for PostgreSQL de destino. Remova qualquer extensão estranha e, em seguida, instale a extensão pg_transport.

    postgres=> CREATE EXTENSION pg_transport; CREATE EXTENSION