O PolarDB for MySQL usa redo logs, mais avançados que os binary logs. O binary logging vem desativado por padrão. Ative-o quando precisar de compatibilidade com o ecossistema MySQL, por exemplo, para replicar dados pelo Data Transmission Service (DTS), transmitir alterações para o Elasticsearch ou AnalyticDB, ou sincronizar dados entre clusters.
Casos de uso
Replicação de dados: Sincronize dados de um cluster PolarDB for MySQL para uma instância ApsaraDB RDS for MySQL, de uma instância ApsaraDB RDS for MySQL para um cluster PolarDB for MySQL ou entre clusters PolarDB for MySQL.
Integração ao ecossistema: Conecte-se ao Elasticsearch ou ao AnalyticDB para análises e buscas.
Limites
Atualize clusters criados antes de 5 de abril de 2019 para a versão secundária mais recente antes de ativar o binary logging. Para obter detalhes, consulte Gerenciamento de versão de revisão. Clusters criados nessa data ou posteriormente já oferecem suporte nativo ao binary logging.
Faturamento
Os binary logs consomem espaço de armazenamento do cluster, cobrado conforme a taxa de armazenamento do seu cluster.
|
Método de faturamento de armazenamento |
Comportamento de faturamento |
|
Sem taxas adicionais, desde que o armazenamento total permaneça dentro da capacidade adquirida |
|
|
Cobrança baseada no armazenamento real ocupado pelos dados de binary log |
Impacto no desempenho
O binary logging afeta apenas operações de escrita (INSERT, UPDATE, DELETE); o desempenho de leitura permanece inalterado. O impacto típico fica abaixo de 10%, mas pode chegar a 40% sob cargas de trabalho extremas.
Commits de transações grandes podem bloquear outras transações e prolongar reinicializações ou alterações de configuração.
Ativar binary logging
Ativar durante a criação do cluster
Selecione Enable na seção Enable Binary Logging ao criar um cluster. Para obter detalhes, consulte Compra personalizada ou Comprar um cluster por assinatura.
Ativar para um cluster existente
A ativação do binary logging aciona uma reinicialização automática do cluster que geralmente leva de 5 a 15 minutos, com interrupção de serviço de aproximadamente 40 segundos. O tempo de recuperação varia conforme o volume de dados e a quantidade de tabelas. Execute essa operação em horários de baixa demanda e certifique-se de que sua aplicação suporte reconexão automática.
Método 1: Usar a página Binary Logs
Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. No canto superior esquerdo, selecione a região do cluster. Na lista de clusters, localize o cluster desejado e clique em seu ID para acessar a página Basic Information.
No painel de navegação à esquerda, clique em Binary Logs.
Clique em Enable Now.
Na caixa de diálogo Enable Binary Logging, defina o parâmetro Effective Mode como Now ou Scheduled. Se escolher Scheduled, especifique quando ativar o binary logging.
Clique em OK.
Método 2: Definir o parâmetro loose_polar_log_bin
Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. No canto superior esquerdo, selecione a região do cluster. Na lista de clusters, localize o cluster desejado e clique em seu ID para acessar a página Basic Information.
No painel de navegação à esquerda, escolha .
-
Localize o parâmetro loose_polar_log_bin e altere seu valor. Para obter detalhes, consulte a seção "Modificar parâmetros" em Configurar parâmetros de cluster e nó.
Versão do MySQL
Valor do parâmetro
MySQL 5.6
ON_WITH_GTID
MySQL 5.7 ou 8.0
ON
Desativar binary logging
Método 1: Usar a página Binary Logs
Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. No canto superior esquerdo, selecione a região do cluster. Na lista de clusters, localize o cluster desejado e clique em seu ID para acessar a página Basic Information.
No painel de navegação à esquerda, clique em Binary Logs.
Clique em Disable Binary Logging.
Na caixa de diálogo Disable Binary Logging, defina o parâmetro Effective Mode como Now ou Scheduled. Se escolher Scheduled, especifique quando desativar o binary logging. Opcionalmente, selecione Clear Local Binary Logs.
Clique em OK.
Método 2: Definir o parâmetro loose_polar_log_bin
Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. No canto superior esquerdo, selecione a região do cluster. Na lista de clusters, localize o cluster desejado e clique em seu ID para acessar a página Basic Information.
No painel de navegação à esquerda, escolha .
-
Localize o parâmetro loose_polar_log_bin e altere seu valor. Para obter detalhes, consulte Configurar parâmetros de cluster e nó.
Versão do MySQL
Valor do parâmetro
MySQL 5.6
OFF_WITH_GTID
MySQL 5.7 ou 8.0
OFF
Após desativar o binary logging, os arquivos de binary log existentes são retidos permanentemente. Para liberar espaço de armazenamento, reduza o período de retenção antes de desativar o recurso. Aguarde a limpeza automática dos logs mais antigos e, em seguida, desative o binary logging.
Retenção de binary logs
Políticas de retenção
|
Condição |
Retenção padrão |
|
Binary logging ativado |
3 dias |
|
Binary logging desativado |
Arquivos existentes retidos permanentemente |
Os arquivos de binary log são excluídos automaticamente após o término do período de retenção.
Para clusters PolarDB for MySQL adquiridos antes de 23 de novembro de 2023, os arquivos de binary log são retidos por duas semanas (14 dias) por padrão.
Para clusters PolarDB for MySQL adquiridos antes de 17 de janeiro de 2024, os arquivos de binary log são retidos por uma semana (sete dias) por padrão.
Modificar o período de retenção
Alterar o período de retenção não interrompe conexões nem exige reinicialização do cluster.
Se for necessário limpar um grande volume de binary logs (como 10 TB), podem ocorrer breves exceções em operações de escrita. Nesse caso, altere o período de retenção em horários de baixa demanda. Alternativamente, reduza o período progressivamente para limpar apenas uma parte dos logs por vez.
Arquivos de binary log excluídos não podem ser restaurados.
Modifique um dos seguintes parâmetros conforme a versão do seu MySQL:
|
Versão do MySQL |
Parâmetro |
Valores válidos |
Unidade |
Padrão |
|
5.6 |
loose_expire_logs_hours |
0-2376 |
Horas |
72 |
|
5.7 ou 8.0 |
binlog_expire_logs_seconds |
0-4294967295 |
Segundos |
259200 (3 dias) |
O valor 0 indica que os arquivos de binary log nunca serão excluídos automaticamente.
Para instruções sobre como modificar parâmetros, consulte Configurar parâmetros de cluster e nó.
Acionar limpeza imediata
Após alterar o parâmetro de retenção, os logs históricos não são limpos imediatamente. Use um destes métodos para acionar a limpeza:
Aguarde o arquivo de binary log ativo atingir o tamanho definido por
max_binlog_size. Durante a rotação, todos os arquivos expirados serão excluídos automaticamente.Execute flush binary logs com a conta privilegiada.
Reinicie o cluster.
Excluir binary logs quando o binary logging estiver desativado
Se o binary logging estiver desativado e você quiser remover os arquivos de log acumulados:
Reative o binary logging. Consulte Ativar binary logging.
Defina loose_expire_logs_hours ou binlog_expire_logs_seconds com um valor menor.
Aguarde a limpeza automática dos logs expirados.
Desative o binary logging novamente.
Visualizar e analisar binary logs
Use a ferramenta mysqlbinlog para recuperar e analisar binary logs remotamente. Para obter detalhes, consulte Obter e analisar remotamente os arquivos de binary log de um cluster PolarDB for MySQL.
Para verificar a última hora de escrita de cada arquivo de binary log, execute:
show full binary logs;
Esse comando retorna o nome do arquivo, o tamanho e a última hora de escrita de cada arquivo de binary log.
O comando show full binary logs exige uma das seguintes versões de revisão mínimas:
MySQL 8.0.2: revisão 8.0.2.2.0 ou posterior
MySQL 8.0.1: revisão 8.0.1.1.14 ou posterior
MySQL 5.7: revisão 5.7.1.0.27 ou posterior
MySQL 5.6: revisão 5.6.1.0.38 ou posterior
Notas de uso
Use o endpoint primário: Ao consumir binary logs pelo DTS ou outros serviços, conecte-se ao Primary Endpoint do seu cluster. Esse endpoint sempre aponta para o nó primário que gera os binary logs. Para localizar o endpoint primário, consulte a seção "Visualizar o endpoint e a porta" em Gerenciar os endpoints de um cluster.
Logging global versus nível de sessão: O parâmetro loose_polar_log_bin controla o binary logging no nível global. Para controle no nível de sessão, use o parâmetro sql_log_bin (desativado por padrão). Para ativar o sql_log_bin, acesse o Quota Center, localize a cota polardb SQL_log_bin parameter permissions e clique em Apply na coluna Actions.
Ativação automática durante migração: O DTS ativa automaticamente o binary logging ao migrar dados de uma instância ApsaraDB RDS para um cluster PolarDB.
Perguntas frequentes
O que significa Could not find first log file name in binary log index file?
O arquivo de binary log foi excluído. Arquivos excluídos não podem ser restaurados.
Posso usar o Canal para captura de alterações de dados?
Sim. Após ativar o binary logging, o Canal consegue capturar alterações do seu cluster PolarDB for MySQL.
Por que não consigo executar operações DDL sem bloqueio no DMS?
As operações DDL sem bloqueio no Data Management Service (DMS) exigem que o binary logging esteja ativado. Se não quiser ativá-lo, use o DDL online como alternativa.
O comando SHOW BINARY LOGS afeta o desempenho do cluster?
Não. Trata-se de uma consulta de metadados que não grava dados, portanto não causa impacto mensurável no desempenho de leitura ou escrita.
Como visualizo binary logs gerados em um momento específico?
Restaure os dados para aquele momento específico e, em seguida, analise os binary logs da instância restaurada. Para obter detalhes, consulte Restauração de banco de dados e tabela: Restaurar dados para um ponto anterior no tempo.