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
.
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.
No grupo de parâmetros de banco de dados personalizado, altere os valores dos seguintes parâmetros:
shared_preload_libraries
: adicionarpg_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 demax_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 recursosna 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 .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.
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 --passwordRemova 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.Instale a extensão
pg_transport
da seguinte forma:postgres=>
CREATE EXTENSION pg_transport;
CREATE EXTENSION
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