Este artigo explica como configurar a replicação atrasada para instâncias somente leitura e iniciar/parar a replicação através do console MySQL. Você pode definir a replicação atrasada (ou seja, o atraso entre a instância somente leitura e a instância primária) e, durante o atraso, optar por iniciar a recuperação para um horário especificado ou GTID (Identificador de Transação Global) para alcançar uma reversão eficiente de dados e um rápido backtracking de falhas.
Replicação atrasada: permite que os usuários ativem e configurem o tempo de replicação atrasada entre a instância somente leitura e a instância primária por meio da configuração do grupo RO da instância somente leitura ou da página de gerenciamento da instância somente leitura.
Iniciar/Parar replicação: permite que os usuários iniciem ou parem manualmente a sincronização de dados entre a instância somente leitura e a instância primária.
Explicação sobre replicação atrasada
Quando a replicação atrasada é ativada em uma instância somente leitura, esta será removida do grupo somente leitura com seu peso definido como 0, acionando simultaneamente um alarme de remoção. Nesse cenário, ao acessar usando o endereço VIP do grupo somente leitura, o fluxo de tráfego não será encaminhado para a instância removida, que apenas poderá ser acessada diretamente através do seu próprio endereço VIP.
Se o grupo somente leitura tiver o recurso de remoção atrasada ativado, quando a replicação atrasada for desligada na instância somente leitura, o peso da instância será restaurado somente se o tempo de atraso da instância for menor que o limite de atraso do grupo. Simultaneamente à restauração do peso, um alarme de recuperação da instância removida será acionado.
Durante a iniciação da replicação de dados para um local especificado, não é possível realizar simultaneamente operações de reinicialização, ajuste de configuração, atualização de versão ou atualização de versão secundária do kernel.
Se o grupo RO for atualizado para o modo de rede pura Proxy, após a atualização, não será suportada a configuração de replicação atrasada para instâncias somente leitura. Para operações relacionadas à atualização, consulte Funcionalidade de encaminhamento de rede. Ativar a replicação atrasada
Observação:
A "replicação atrasada" da instância somente leitura é definida como "não ativada" por padrão. Quando ativada, será exibido o tempo de replicação atrasada.
Ativar através da configuração do grupo RO da instância somente leitura
1. Faça login no console do MySQL, na lista de instâncias, clique no ID da instância primária para acessar a página de gerenciamento de instâncias. 2. Na página de gerenciamento de instâncias, selecione a guia Instâncias somente leitura, na coluna do grupo RO, clique em Configurar para acessar a página de configuração do grupo RO.
3. Na página de configuração do grupo RO, ative a replicação atrasada da instância nas informações do grupo RO, defina o tempo de atraso e clique em Confirmar.
Replicação atrasada da instância: Permite configurar a replicação atrasada e, durante o período de atraso, optar por iniciar a recuperação para um horário especificado ou GTID (Identificador de Transação Global) para alcançar uma reversão eficiente de dados e um rápido backtracking de falhas.
Tempo de atraso: O tempo de replicação atrasada entre a instância somente leitura e a instância primária, com intervalo configurável de 1 segundo a 259200 segundos.
Remoção de instância por excesso de atraso: Define se a política de remoção está ativada. Instâncias removidas terão seu peso automaticamente definido como 0. Se uma instância somente leitura for removida por exceder o limite de atraso, um alarme será enviado ao usuário. Para configurar alarmes de remoção de instâncias somente leitura e objetos receptores, consulte Funcionalidade de alarme. Limite de atraso: Define um limite de atraso para instâncias somente leitura. Instâncias que excederem esse limite serão removidas do grupo RO.
Número mínimo de instâncias mantidas: O número mínimo de instâncias que deve ser garantido no grupo. Se a quantidade atual de instâncias somente leitura for menor ou igual a este mínimo e o tempo de atraso exceder o limite, as instâncias somente leitura existentes não serão removidas.
Distribuição de peso de leitura: O grupo RO suporta dois modos de configuração de peso: atribuição automática pelo sistema e peso personalizado. O intervalo de entrada do peso é de 0 a 100 e deve ser composto por números inteiros.
Rebalanceamento de carga:
Ao desligar o rebalanceamento de carga, a modificação do peso afeta apenas a nova carga adicionada, não altera a instância somente leitura acessada pelas conexões persistentes existentes e não causa interrupções breves no banco de dados.
Ao ativar o rebalanceamento de carga, ocorrerá uma interrupção momentânea no banco de dados para desconectar todas as conexões. As novas conexões serão distribuídas de forma equilibrada de acordo com os pesos configurados.
Ativar através da página de gerenciamento de instâncias somente leitura
1. Faça login no console do MySQL, na lista de instâncias, clique no ID da instância somente leitura ou em Gerenciar na coluna de Operação para entrar na página de detalhes da instância somente leitura. 2. Na página de detalhes da instância somente leitura, em Informações da instância > Replicação atrasada, clique em Ativar.
3. Na caixa de diálogo exibida, defina o tempo de atraso e clique em Confirmar.
Observação:
O intervalo do tempo de atraso é: 1 segundo - 259200 segundos.
A modificação do tempo de atraso da instância RO sincronizará a alteração com outras instâncias RO no grupo do qual pertencem.
Modificar replicação atrasada
Modificação de configuração através do grupo RO de instâncias somente leitura
1. Faça login no Console MySQL, na lista de instâncias, clique no ID da instância primária para acessar a página de gerenciamento de instâncias. 2. Na página de gerenciamento de instâncias, selecione a guia Instâncias somente leitura, na coluna do grupo RO, clique em Configurar para acessar a página de configuração do grupo RO.
3. Na página de configuração do grupo RO, modifique o tempo de atraso e clique em Confirmar.
Através da página de gerenciamento de instâncias somente leitura para modificar
1. Faça login no console do MySQL, na lista de instâncias, clique no ID da instância somente leitura para entrar na página de detalhes da instância somente leitura. 2. Na página de detalhes da instância somente leitura, em Informações da instância > Replicação atrasada, clique no ícone de edição.
3. Na caixa de diálogo exibida, defina o tempo de atraso e clique em Confirmar.
Desativar a replicação atrasada
Desativar por meio da configuração do grupo RO da instância somente leitura
1. Faça login no Console MySQL, na lista de instâncias, clique no ID da instância primária para acessar a página de gerenciamento de instâncias. 2. Na página de gerenciamento de instâncias, selecione a guia Instâncias somente leitura, na coluna do grupo RO, clique em Configurar para acessar a página de configuração do grupo RO.
3. Na página de configuração do grupo RO, desligue o botão atrás de Replicação de atraso da instância e clique em Confirmar.
Através da página de gerenciamento de instâncias somente leitura, desligue
1. Faça login no console do MySQL, na lista de instâncias, clique no ID da instância somente leitura para entrar na página de detalhes da instância somente leitura. 2. Na página de detalhes da instância somente leitura, em Informações da instância > Replicação atrasada, clique em Desativar.
3. Na caixa de diálogo exibida, confirme que está tudo correto e clique em Confirmar.
Observação:
Ao desligar a replicação atrasada, o tempo de atraso será definido como 0 segundo, ou seja, a sincronização de dados em tempo real será restaurada entre a instância somente leitura e a instância primária.
Iniciar a replicação de dados
Observação:
Quando a replicação de estado da instância somente leitura está definida como Normal por padrão, se o usuário configurar a replicação atrasada e excluir dados acidentalmente durante o período de atraso, é possível recuperar rapidamente os dados. Isso é feito ao posicionar a instância somente leitura antes do arquivo de log binário ou do GTID correspondente ao momento do erro operacional, por meio da localização e GTID registrados durante a operação incorreta.
1. Faça login no Console MySQL, na lista de instâncias, clique no ID da instância somente leitura para entrar na página de detalhes da instância somente leitura. 2. Na página de detalhes da instância somente leitura, abaixo de Informações da instância > Status de replicação, clique em Iniciar.
3. Na caixa de diálogo exibida, clique em Confirmar.
Observação:
Após iniciar a replicação, a instância somente leitura retoma a sincronização de dados com a instância primária.
4. Também é possível, após Informações da instância > Operação de replicação, selecionar Replicar para a posição especificada. Essa opção permite definir um ponto de tempo específico e o GTID correspondente. Após a recuperação para o momento exato ou GTID correspondente, a instância somente leitura interromperá a replicação até ser alternada para o modo de inicialização normal, quando a replicação será retomada.
O período: O intervalo de tempo selecionável varia desde o momento da parada da replicação até a hora atual do banco de dados primário.
O GTID: O intervalo selecionável abrange todos os logs após o binlog não aplicado pela instância somente leitura. Ao escolher o modo de inicialização por GTID, é possível parar a replicação precisamente antes de uma transação específica.
O server_uuid da instância possui comprimento fixo de 36 caracteres. O formato do GTID deve ser server_uuid:transaction_id.
Atenção:
Se a posição do log binário inserida já tiver sido aplicada na instância somente leitura ou for maior que a posição da instância primária, resultará em falha na inicialização da replicação.
Se houver pontos de interrupção no log binário durante a inicialização da replicação, resultará em falha ao iniciar a replicação.
Para evitar que o processo de replicação da instância somente leitura seja interrompido devido a atrasos, o que pode causar excedente de espaço em disco, quando a capacidade do disco da instância somente leitura for inferior a 5 GB, os threads de IO da instância serão suspensos.
5. Durante o processo de replicação para a posição especificada, é possível clicar em Reprodução de dados em andamento após Status de replicação para consultar os detalhes da tarefa. Essa opção suporta a atualização dos detalhes da tarefa.
6. Após a conclusão da replicação, clique em Iniciar após Status de replicação para que a instância somente leitura possa continuar a replicação.
Parar a replicação de dados
Observação:
A operação de parar a replicação só é permitida quando a função de replicação atrasada está ativada. Caso contrário, o botão Parar permanecerá indisponível.
Após parar a replicação, os threads de IO/SQL serão interrompidos simultaneamente.
1. Faça login no Console MySQL, na lista de instâncias, clique no ID da instância somente leitura para acessar a página de detalhes da instância somente leitura. 2. Na página de detalhes da instância somente leitura, abaixo de Informações da instância > Status de replicação, clique em Parar.
3. Na caixa de diálogo exibida, confirme que está tudo correto e clique em Confirmar.
Perguntas frequentes
Como obter o GTID?
Recomendamos que você execute o comando `flush log` para obter o arquivo binlog, a fim de localizar a posição e o GTID no momento da operação incorreta.
Como verificar o tempo de atraso?
Você pode verificar o tempo de atraso entre a instância somente leitura e a instância primária em Console > página Detalhes da instância > sob Diagrama de arquitetura da instância. Como visualizar as informações da tarefa de iniciar a replicação para a posição especificada?
Você pode verificar o progresso e detalhes das tarefas através da página de lista de tarefas no Console.