O ApsaraDB RDS for MySQL utiliza replicação lógica. Depois que a instância primária executa uma transação, ela envia os eventos de binlog para uma réplica, que os aplica para garantir a consistência dos dados. Nessa arquitetura, no entanto, transações grandes e de longa duração podem causar latência de replicação significativa na réplica. Para resolver esse problema, o ApsaraDB RDS for MySQL introduz um recurso de aplicação em tempo real para transações grandes. Esse recurso permite que a réplica comece a executar uma transação grande enquanto a instância primária ainda a processa. Ao executar a transação em ambas as instâncias simultaneamente, esse recurso elimina quase totalmente a latência de replicação resultante e garante a alta disponibilidade da sua instância.
Como funciona

Latência de replicação para transações grandes (diagrama à esquerda): No MySQL, a réplica só começa a aplicar uma transação grande após o commit na instância primária. Isso significa que o tempo de execução da transação na réplica se torna a latência de replicação. Durante esse período, a réplica não pode aplicar outras transações confirmadas na instância primária, e isso atrasa as atualizações de dados.
Otimização de aplicação em tempo real para transações grandes (diagrama à direita): A otimização principal executa a transação grande simultaneamente na réplica e na instância primária. Quando a transação grande recebe commit na instância primária, ela também recebe commit na réplica. Quando a transação grande sofre rollback na instância primária, ela também sofre rollback na réplica.
Pré-requisitos
Para usar o recurso de aplicação em tempo real para transações grandes, sua instância deve atender ao seguinte requisito:
Versão do mecanismo de banco de dados: MySQL 8.0 com versão secundária do mecanismo 20260228 ou posterior. Se a sua instância não atender a esse requisito, atualize a versão secundária do mecanismo ou atualize a versão do mecanismo de banco de dados.
Procedimento
Acesse a página Instances. Na barra de navegação superior, selecione a região da instância RDS. Em seguida, localize a instância RDS e clique em seu ID.
No painel de navegação à esquerda, clique em Parameters.
-
Na aba Editable Parameters, pesquise e configure os seguintes parâmetros:
-
Ative o recurso de aplicação em tempo real para transações grandes:
Defina
loose_binlog_realtime_apply_long_trx_enabledcomoON.Defina
loose_binlog_realtime_transmit_source_enabledcomoON.Defina
loose_binlog_realtime_transmit_replica_enabledcomoON.
-
Outros parâmetros obrigatórios:
Parâmetro
Descrição
Valor recomendado
loose_binlog_realtime_replica_long_transaction_limit_sizeEspecifica o limiar de tamanho para uma transação acionar a replicação em tempo real. Quando os eventos de binlog gerados por uma transação excedem esse valor, o sistema ativa esse recurso automaticamente.
64 MB
loose_binlog_realtime_enable_log_messagEspecifica se o sistema deve gravar os logs de replicação em tempo real no log de erros. Recomendamos ativar este parâmetro.
ONloose_binlog_realtime_apply_workers
Controla o número de threads Brr Worker para replicação em tempo real.
8
-
Clique em OK e, em seguida, clique em Submit Parameters. Na caixa de diálogo exibida, escolha quando aplicar as alterações. As alterações de parâmetros entram em vigor imediatamente, sem necessidade de reiniciar a instância.
Resultados da otimização
O exemplo a seguir mostra o efeito desse recurso em uma transação de importação de dados que envolve 5 milhões de linhas na instância primária:
Antes da otimização: A instância primária executa a transação primeiro. Após o commit, a réplica a aplica. A latência de replicação é igual ao tempo de execução da transação.
Após a otimização: O sistema executa a transação na instância primária e na réplica simultaneamente, eliminando a latência de replicação.
