Quero minimizar o tempo de inatividade e otimizar o desempenho de um upgrade de versão principal do meu banco de dados do Amazon Relational Database Service (Amazon RDS) para PostgreSQL.
Breve descrição
Observação: upgrades de versão principal podem conter alterações no banco de dados que não são compatíveis com as suas aplicações. Antes de fazer o upgrade, certifique-se de testá-lo minuciosamente em um ambiente de não produção. Para obter mais informações, consulte Como atualizar a versão principal do RDS para PostgreSQL.
Para fazer upgrade da sua instância de banco de dados (DB), use um dos seguintes métodos:
- Restauração de snapshot
- Upgrade manual
- Implantação azul/verde
- AWS Database Migration Service (AWS DMS)
Pré-requisitos:
Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Otimize o desempenho do upgrade
Para minimizar possíveis problemas ao executar a versão principal do mecanismo, realize as seguintes ações:
Para identificar transações que estão no estado em execução por mais de 10 minutos, execute o seguinte comando:
SELECT * FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled','active')
AND state_change < current_timestamp - INTERVAL '10' MINUTE
AND usename != 'rdsadmin';
Se você identificar uma transação de longa duração, use pg_cancel_backend ou pg_terminate_backend para finalizar a transação. Para obter mais informações, consulte Server signaling functions (Funções de sinalização do servidor) no site do PostgreSQL.
Faça upgrade com uma restauração de snapshot
Crie um snapshot do banco de dados da sua instância de banco de dados, faça upgrade do snapshot para uma versão principal posterior e restaure-o para uma nova instância de banco de dados.
Observação: você deve usar um nome diferente para a nova instância de banco de dados e sua aplicação deve parar durante o processo de upgrade. Além disso, você deve atualizar os endpoints da aplicação após a conclusão do upgrade.
Faça upgrade manualmente da sua instância de banco de dados
Para fazer upgrade manualmente da sua instância de banco de dados, consulte Atualizar manualmente a versão do mecanismo.
Observação: upgrades manuais do banco de dados exigem tempo de inatividade. Para minimizar o tempo de inatividade, use uma implantação azul/verde.
Use um upgrade de implantação azul/verde
Para criar uma implantação azul/verde, consulte Criar uma implantação azul/verde no Amazon RDS. Quando você estiver no ambiente verde, especifique uma versão posterior do mecanismo.
Para obter mais informações sobre implantações azul/verde, consulte Limitações e considerações relativas às implantações azul/verde do Amazon RDS.
Use o AWS DMS para fazer o upgrade
Use o AWS Database Migration Service (AWS DMS) para migrar dados da sua instância de banco de dados atual para uma nova instância com a versão com upgrade. O AWS DMS oferece suporte à captura de dados de alteração (CDC) para replicação contínua.
Faça upgrade da tabela pg_statistics
Depois de concluir o upgrade da versão principal do mecanismo, execute o comando ANALYZE VERBOSE; em todos os bancos de dados para fazer upgrade da tabela pg_statistics. Para obter mais informações, consulte ANALYZE no site do PostgreSQL.