Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Como soluciono problemas de atraso na minha réplica de leitura do Amazon RDS para SQL Server?
Eu tenho uma instância do Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server com réplica de leitura. Quero solucionar o atraso de réplica na minha instância do Amazon RDS para SQL Server.
Breve descrição
O Amazon RDS para SQL Server Enterprise Edition é compatível com a criação de réplicas de leitura na mesma região AWS e entre regiões. A replicação de dados é assíncrona e usa a tecnologia Always-On para replicar dados de uma instância primária para uma instância de réplica. O RDS para SQL Server não reduz automaticamente o alto atraso de réplica entre uma instância de banco de dados de origem e as réplicas de leitura.
Resolução
Verificar a utilização dos recursos
Use os Amazon CloudWatch Enhanced Monitoring and Performance Insights para verificar a utilização de recursos em suas instâncias primárias e replicadas em detalhes.
Confirme se a utilização da CPU não está limitada. Se você usa um tipo de instância expansível, verifique se você tem créditos de CPU disponíveis ou se ativou o modo Ilimitado.
Certifique-se de que haja memória livre suficiente e que ReadIOPS e WriteIOPS atendam às cotas provisionadas. Se você usar um volume gp2, confirme se o equilíbrio de intermitência está disponível.
Verifique se ReadThroughput e WriteThroughput atingiram as cotas do tipo de instância.
Observação: a falta de recursos na instância de réplica pode causar atraso na réplica. O recomendado é criar instâncias primárias e de réplica com o mesmo tipo de instância, tipo de armazenamento e número de IOPS.Também é possível aumentar ou reduzir a escala verticalmente da réplica de leitura quando o uso for mínimo em comparação com a instância primária.
Identifique o período em que o atraso da réplica começou a aumentar e, em seguida, execute as seguintes ações:
- Verifique as métricas WriteIOPS, WriteThroughput, NetworkReceiveThroughput e NetworkTrasmitThroughput na instância primária. Determine se a atividade de gravação causou o atraso. Em seguida, verifique as mesmas métricas no mesmo período na réplica de leitura.
- Verifique se há transações de longa duração na instância primária. Para verificar o status das transações ativas, execute uma consulta semelhante à seguinte:
SELECT * FROM sys.sysprocesses WHERE open_tran = 1;
Identificar esperas e impasses
Verifique se há esperas ou impasses de bloqueio na instância de réplica. Os impasses ocorrem entre as transações Select e DDL/DML e causam atrasos na aplicação dos logs de transações da instância primária.
Para verificar o bloqueio, execute uma consulta semelhante à seguinte:
SELECT * FROM sys.sysprocesses WHERE blocked > 0;
Verificar o atraso da réplica
Execute uma consulta na instância primária para verificar o atraso da réplica e o atraso máximo da réplica.
Atraso da réplica
Execute a seguinte consulta:
SELECT AR.replica_server_name, DB_NAME (ARS.database_id) 'database_name', AR.availability_mode_desc, ARS.synchronization_health_desc, ARS.last_hardened_lsn, ARS.last_redone_lsn, ARS.secondary_lag_seconds, FROM sys.dm_hadr_database_replica_states ARS INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id WHERE DB_NAME(ARS.database_id) = 'database_name' ORDER BY AR.replica_server_name;
Observação: substitua database_name pelo nome do seu banco de dados.
Verifique se o valor de last_hardened_lsn progride na réplica de leitura.
Atraso máximo da réplica
No SQL Server, a métrica ReplicaLag é o atraso máximo dos bancos de dados atrasados em segundos. Por exemplo, se você tiver dois bancos de dados com atraso de 5 segundos e 10 segundos, ReplicaLag será 10 segundos. Para calcular a métrica ReplicaLag, execute a seguinte consulta na instância primária:
SELECT max(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;
Gerenciar a sincronização de dados e a integridade da instância
Quando você cria uma réplica de leitura, o Amazon RDS tira um snapshot da instância primária e depois restaura o snapshot para criar uma instância de réplica de leitura. O Amazon RDS reproduz os logs de transações para sincronizar os dados com a instância primária. No entanto, depois de criar uma nova instância, o carregamento lento da instância causa atraso na réplica. Esse é o comportamento esperado. Para reduzir os efeitos do carregamento lento, use o tipo de volume io1 ou io2 ao criar a réplica de leitura. Depois de criar a réplica, é possível convertê-la novamente em um tipo de volume gp2 ou gp3.
Execute transações em lotes na instância primária para evitar transações longas e mantenha o tamanho do arquivo de log de transações pequeno. Reinicie a instância de réplica somente quando necessário durante um alto atraso na réplica. Caso contrário, o Amazon RDS atrasa as reproduções de logs de transações e os bancos de dados podem entrar no estado de Recuperação.
Como os logs são processados a partir da instância primária, o atraso da réplica pode ocorrer temporariamente quando você modifica o tipo de instância na instância primária ou de réplica.
Além disso, quando você modifica o tipo ou o tamanho do armazenamento, o atraso na réplica pode ocorrer temporariamente até que a otimização do armazenamento seja concluída. Não é possível monitorar o progresso da otimização do armazenamento.
Se continuar enfrentando atrasos na réplica, verifique o status dos bancos de dados do usuário na instância de réplica. Para reproduzir os logs, o status do banco de dados deve ser On-line.
Observação:
- o Amazon RDS inclui bancos de dados recém-criados no cálculo do atraso somente depois de serem acessíveis na réplica de leitura.
- ReplicaLag retorna -1 quando o Amazon RDS não consegue determinar o atraso, como durante a configuração da réplica ou quando a réplica de leitura está no estado de Erro.
Informações relacionadas
Trabalhar com réplicas de leitura para Microsoft SQL Server no Amazon RDS

Conteúdo relevante
- feita há um mêslg...
- Resposta aceitafeita há um mêslg...
- feita há um mêslg...
- feita há um dialg...
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 meses
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos