Práticas recomendadas para implantações azul/verde do Amazon Aurora
Veja as práticas recomendadas para implantações azul/verde.
Tópicos
Práticas recomendadas gerais para implantações azuis/verdes
Considere as seguintes práticas recomendadas gerais ao criar uma implantação azul/verde.
-
Teste minuciosamente o cluster de banco de dados do Aurora no ambiente verde antes da transição.
-
Mantenha seus bancos de dados no ambiente verde somente leitura. Recomendamos que você habilite as operações de gravação no ambiente verde com cuidado, pois elas podem causar conflitos de replicação. Elas também podem ocasionar dados não intencionais nos bancos de dados de produção após a transição.
-
Ao usar uma implantação azul/verde para implementar alterações de esquema, faça somente alterações compatíveis com a replicação.
Por exemplo, é possível adicionar novas colunas ao final de uma tabela sem interromper a replicação da implantação azul para a implantação verde. No entanto, alterações de esquema, como renomear colunas ou renomear tabelas, transformam a replicação na implantação verde.
Para ter mais informações sobre alterações compatíveis com replicação, consulte Replicação com diferentes definições de tabela na origem e na réplica
na documentação do MySQL e Restrições na documentação de replicação lógica do PostgreSQL. -
Use o endpoint do cluster, o endpoint do leitor ou o endpoint personalizado para todas as conexões nos dois ambientes. Não use endpoints de instância nem endpoints personalizados com listas estáticas ou de exclusão.
-
Ao realizar a transição de uma implantação azul/verde, siga as práticas recomendadas de transição. Para ter mais informações, consulte Práticas recomendadas de transição.
Práticas recomendadas do Aurora MySQL para implantações azuis/verdes
Considere as seguintes práticas recomendadas ao criar uma implantação azul/verde em um cluster de banco de dados do Aurora MySQL.
-
Se o ambiente verde apresentar atraso na réplica, pense no seguinte:
-
Desabilite a retenção de logs binários, se não for necessária, ou desabilite-a temporariamente até que a replicação seja atualizada. Para fazer isso, redefina o parâmetro
binlog_format
de cluster de banco de dados como0
e reinicialize a instância verde de banco de dados do gravador. -
Defina o parâmetro
innodb_flush_log_at_trx_commit
temporariamente como 1 no grupo de parâmetros verde do banco de dados. Depois de você atualizar a replicação, reverta aos valores padrão antes da transição. Se ocorrer um desligamento inesperado ou uma falha com os valores dos parâmetros temporários, compile o ambiente verde novamente para evitar a corrupção de dados não detectada. Para obter mais informações, consulte Configurar a frequência com que o buffer de log é liberado.
-
Práticas recomendadas do Aurora PostgreSQL para implantações azuis/verdes
Considere as seguintes práticas recomendadas ao criar uma implantação azul/verde em um cluster de banco de dados do Aurora PostgreSQL.
-
Monitore o cache de gravação de replicação lógica do Aurora PostgreSQL e realize ajustes no buffer de cache, se necessário. Para ter mais informações, consulte Monitorar o cache de gravação simultânea de replicação lógica do Aurora PostgreSQL.
-
Aumente o valor do parâmetro de banco de dados
logical_decoding_work_mem
no ambiente azul. Isso permite menos decodificação no disco e uso da memória. Para ter mais informações, consulte Ajustar a memória de trabalho para decodificação lógica.-
É possível monitorar o estouro de transações que está sendo gravado em disco usando a métrica
ReplicationSlotDiskUsage
do CloudWatch. Essa métrica oferece insights sobre o uso do espaço em disco por slots de replicação, ajudando a identificar quando os dados da transação excedem a capacidade de memória e são armazenados em disco. Você pode monitorar a memória livre com a métrica doFreeableMemory
do CloudWatch. Para ter mais informações, consulte Métricas no nível da instância do Amazon Aurora. -
No Aurora PostgreSQL versão 14 e posterior, é possível monitorar o tamanho dos arquivos de estouro lógico usando a visualização
pg_stat_replication_slots
do sistema.
-
-
Atualize todas as extensões do PostgreSQL para a versão mais recente antes de criar uma implantação azul/verde. Para ter mais informações, consulte Atualizar extensões do PostgreSQL.
-
Se você estiver usando a extensão
aws_s3
, conceda ao cluster de banco de dados verde acesso ao Amazon S3 por meio de um perfil do IAM após a criação do ambiente verde. Isso permite que os comandos de importação e exportação continuem funcionando após a transição. Para obter instruções, consulte Configurar o acesso a um bucket do Amazon S3. -
Se você especificar uma versão posterior do mecanismo para o ambiente verde, execute a operação
ANALYZE
em todos os bancos de dados para atualizar a tabelapg_statistic
. As estatísticas do otimizador não são transferidas durante uma atualização de versão principal, portanto, é necessário gerar novamente todas as estatísticas para evitar problemas de performance. Para conhecer práticas recomendadas adicionais durante as principais atualizações de versões, consulte Realizar uma atualização da versão principal. -
Evite configurar gatilhos como
ENABLE REPLICA
ouENABLE ALWAYS
se o gatilho for usado na origem para manipular dados. Caso contrário, o sistema de replicação propagará as alterações e executará o gatilho, o que ocasiona duplicação. -
Transações de longa duração podem causar um atraso significativo na réplica. Para reduzir o atraso na réplica, pense no seguinte:
-
Reduza as transações de longa duração e as subtransações que podem ser adiadas até que o ambiente verde alcance o ambiente azul.
-
Reduza as operações em massa no ambiente azul até que o ambiente verde alcance o ambiente azul.
-
Inicie uma operação manual de congelamento de vacuum em tabelas ocupadas antes de criar a implantação azul/verde. Para conferir instruções, consulte Realização de um congelamento manual de vacuum.
-
No PostgreSQL versão 12 e posterior, desabilite o parâmetro
index_cleanup
em tabelas grandes ou muito utilizadas para melhorar a eficiência da manutenção normal em bancos de dados azuis. Para ter mais informações, consulte Aspirar uma tabela o mais rápido possível.nota
Ignorar regularmente a limpeza do índice durante a aspiração pode causar inchaço no índice, o que pode prejudicar o desempenho da limpeza. Como prática recomendada, utilize essa abordagem somente ao usar uma implantação azul/verde. Depois que a implantação estiver concluída, recomendamos retomar a manutenção e a limpeza regulares do índice.
-
Poderá ocorrer atraso na réplica se as instâncias de banco de dados azul e verde estiverem subdimensionadas para a workload. Garanta que as instâncias de banco de dados não estejam atingindo os limites de recurso para o tipo de instância. Para ter mais informações, consulte Usar métricas do Amazon CloudWatch para analisar o uso de recursos do Aurora PostgreSQL.
-
-
A replicação lenta pode fazer com que remetentes e destinatários sejam reiniciados com frequência, o que atrasa a sincronização. Para garantir que eles permaneçam ativos, desabilite os tempos limite definindo o parâmetro
wal_sender_timeout
como0
no ambiente azul e o parâmetrowal_receiver_timeout
como0
no ambiente verde. -
Analise o desempenho das instruções UPDATE e DELETE e avalie se a criação de um índice na coluna utilizada na cláusula WHERE pode otimizar essas consultas. Isso pode melhorar o desempenho quando as operações são repetidas no ambiente verde. Para obter mais informações, consulte Verificar filtros de predicados em busca de consultas que geram esperas.
-
Se você estiver usando gatilhos, garanta que eles não interfiram na criação, atualização e eliminação de objetos
pg_catalog.pg_publication
,pg_catalog.pg_subscription
epg_catalog.pg_replication_slots
cujos nomes comecem com “rds”. -
Se o Babelfish estiver ativado no cluster de banco de dados de origem, os seguintes parâmetros deverão ter as mesmas configurações no grupo de parâmetros do cluster de banco de dados de destino para o ambiente verde e no grupo de parâmetros do cluster de banco de dados de origem:
-
rds.babelfish_status
-
babelfishpg_tds.tds_default_numeric_precision
-
babelfishpg_tds.tds_default_numeric_scale
-
babelfishpg_tsql.default_locale
-
babelfishpg_tsql.migration_mode
-
babelfishpg_tsql.server_collation_name
Para mais informações sobre esses parâmetros, consulte Configurações de grupo de parâmetros de cluster de banco de dados para o Babelfish.
-