Configurar o log binário avançado para Aurora MySQL - Amazon Aurora

Configurar o log binário avançado para Aurora MySQL

O log binário avançado reduz a sobrecarga de performance computacional causada pela ativação do log binário, que pode chegar a até 50% em certos casos. Com o log binário avançado, essa sobrecarga pode ser reduzida para cerca de 13%. Para reduzir a sobrecarga, o log binário avançado grava os registros binários e de transações no armazenamento em paralelo, o que minimiza os dados gravados no momento da confirmação da transação.

O uso do log binário avançado também melhora o tempo de recuperação do banco de dados após reinicializações e failovers em até 99% em comparação com o log binário do MySQL da comunidade. O log binário avançado é compatível com as workloads existentes baseadas em log binário e você interage com ele da mesma forma que interage com o log binário do MySQL da comunidade.

O log binário avançado está disponível no Aurora MySQL versão 3.03.1 e posterior.

Configuração de parâmetros de log binário avançado

Você pode alternar entre o log binário do MySQL da comunidade e o log binário avançado ativando/desativando os parâmetros aprimorados do log binário. Os consumidores de log binário existentes podem continuar lendo e consumindo os arquivos de log binário sem nenhuma lacuna na sequência do arquivo de log binário.

Para ativar o log binário avançado, defina os seguintes parâmetros:

Parâmetro Padrão Descrição
binlog_format Defina o binlog_format parâmetro no formato de registro em log binário escolhido para ativar o log binário avançado. Garanta que binlog_format parameter não esteja definido como DESLIGADO. Para obter mais informações, consulte Configurar o registro em log binário do Aurora MySQL.
aurora_enhanced_binlog 0 Defina o valor desse parâmetro como 1 no grupo de parâmetros do cluster de banco de dados associado ao cluster do Aurora MySQL. Ao alterar o valor desse parâmetro, você deve reinicializar a instância do gravador quando o valor DBClusterParameterGroupStatus for exibido como pending-reboot.
binlog_backup 1 Desative esse parâmetro para ativar o log binário avançado. Para fazer isso, defina o valor deste parâmetro como 0.
binlog_replication_globaldb 1 Desative esse parâmetro para ativar o log binário avançado. Para fazer isso, defina o valor deste parâmetro como 0.
Importante

É possível desativar os parâmetros binlog_backup e binlog_replication_globaldb somente ao usar o log binário avançado.

Para desativar o log binário avançado, defina os seguintes parâmetros:

Parâmetro Descrição
aurora_enhanced_binlog Defina o valor desse parâmetro como 0 no grupo de parâmetros do cluster de banco de dados associado ao cluster do Aurora MySQL. Sempre que você alterar o valor desse parâmetro, reinicialize a instância do gravador quando o valor DBClusterParameterGroupStatus for exibido como pending-reboot.
binlog_backup Ative esse parâmetro ao desativar o log binário avançado. Para fazer isso, defina o valor deste parâmetro como 1.
binlog_replication_globaldb Ative esse parâmetro ao desativar o log binário avançado. Para fazer isso, defina o valor deste parâmetro como 1.

Para verificar se o log binário avançado está ativado, use o seguinte comando no cliente MySQL:

mysql>show status like 'aurora_enhanced_binlog'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | aurora_enhanced_binlog | ACTIVE | +------------------------+--------+ 1 row in set (0.00 sec)

Quando o log binário avançado está ativado, a saída mostra ACTIVE para aurora_enhanced_binlog.

Outros parâmetros relacionados

Quando você ativa o log binário avançado, os seguintes parâmetros são afetados:

  • O parâmetro max_binlog_size é visível, mas não pode ser modificado. O valor padrão 134217728 é automaticamente ajustado para 268435456 quando o log binário avançado é ativado.

  • Ao contrário do log binário do MySQL da comunidade, o binlog_checksum não atua como um parâmetro dinâmico quando o log binário avançado está ativado. Para que a alteração desse parâmetro tenha efeito, você deverá reinicializar manualmente o cluster de banco de dados mesmo quando ApplyMethod for immediate.

  • O valor definido no parâmetro binlog_order_commits não tem efeito na ordem das confirmações quando o log binário avançado é ativado. As confirmações são sempre ordenadas sem implicações adicionais na performance.

Diferenças entre o log binário avançado e o log binário do MySQL da comunidade

O log binário avançado interage de forma diferente com clones, backups e o banco de dados global do Aurora quando comparado ao log binário do MySQL da comunidade. Recomendamos que você entenda as seguintes diferenças antes de usar o log binário avançado.

  • Os arquivos de log binário avançado do cluster de banco de dados de origem não estão disponíveis em um cluster de banco de dados clonado.

  • Os arquivos de log binário avançado não estão incluídos nos backups do Aurora. Portanto, os arquivos de log binário avançado do cluster de banco de dados de origem não estão disponíveis após a restauração de um cluster de banco de dados, apesar de qualquer período de retenção definido nele.

  • Quando usados com um banco de dados global do Aurora, os arquivos de log binário avançado do cluster de banco de dados primário não são replicados para o cluster de banco de dados nas regiões secundárias.

Exemplos

Os exemplos a seguir ilustram as diferenças entre o log binário avançado e o log binário do MySQL da comunidade.

Em um cluster de banco de dados restaurado ou clonado

Quando o log binário avançado está ativado, os arquivos de log binário históricos não estão disponíveis no cluster de banco de dados restaurado ou clonado. Depois de uma operação de restauração ou clonagem, se o log binário estiver ativado, o novo cluster de banco de dados começará a gravar sua própria sequência de arquivos de log binário, começando com 1 (mysql-bin-changelog.000001).

Para ativar o log binário avançado após uma operação de restauração ou clonagem, defina os parâmetros necessários do cluster de banco de dados no cluster de banco de dados restaurado ou clonado. Para ter mais informações, consulte Configuração de parâmetros de log binário avançado.

exemplo Exemplo: operação de clonagem ou de restauração executada quando o log binário avançado está ativado

Cluster de banco de dados de origem:

mysql> show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog turned on +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

Em um cluster de banco de dados restaurado ou clonado, os arquivos de log binário não são copiados quando o log binário avançado é ativado. Para evitar a descontinuidade nos dados do log binário, os arquivos de log avançado gravados antes de ativar o log binário aprimorado também não estão disponíveis.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> New sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
exemplo Exemplo: operação de clonagem ou de restauração executada quando o log binário avançado está desativado

Cluster de banco de dados de origem:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

Em um cluster de banco de dados restaurado ou clonado, os arquivos de log binário gravados após a desativação do log binário avançado estão disponíveis.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)

Em um Amazon Aurora Global Database

Em um Amazon Aurora Global Database, os dados de log binário do cluster de banco de dados primário não são replicados para os clusters de banco de dados secundários. Após um processo de failover entre regiões, os dados do log binário não estão disponíveis no cluster de banco de dados primário recém-promovido. Se o log binário estiver ativado, o cluster de banco de dados recém-promovido iniciará sua própria sequência de arquivos de log binário, começando com 1 (mysql-bin-changelog.000001).

Para ativar o log binário avançado após o failover, defina os parâmetros necessários do cluster de banco de dados no cluster de banco de dados secundário. Para ter mais informações, consulte Configuração de parâmetros de log binário avançado.

exemplo Exemplo: a operação global de failover do banco de dados é executada quando o log binário avançado é ativado

Cluster de banco de dados primário antigo (antes do failover):

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog enabled +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

Novo cluster de banco de dados primário (após o failover):

Os arquivos de log binário não são replicados para regiões secundárias quando o log binário avançado está ativado. Para evitar a descontinuidade nos dados do log binário, os arquivos de log binário gravados antes de ativar o log binário avançado não estão disponíveis.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> Fresh sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
exemplo Exemplo: a operação global de failover do banco de dados é executada quando o log binário avançado é desativado

Cluster de banco de dados de origem:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

Cluster de banco de dados restaurado ou clonado:

Os arquivos de log binário gravados após a desativação do log binário avançado são replicados e estão disponíveis no cluster de banco de dados recém-promovido.

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 3 rows in set (0.00 sec)

Métricas do Amazon CloudWatch para o log binário avançado

As métricas a seguir do Amazon CloudWatch são publicadas somente quando o binlog avançado está ativado.

métrica do cloudwatch Descrição Unidades
ChangeLogBytesUsed A quantidade de armazenamento usada pelo log binário avançado. Bytes
ChangeLogReadIOPs O número de operações de E/S de leitura executadas no log binário avançado em um intervalo de cinco minutos. Contagem a cada 5 minutos
ChangeLogWriteIOPs O número de operações de E/S de disco de gravação executadas no log binário avançado em um intervalo de cinco minutos. Contagem a cada 5 minutos

Limitações de log binário avançado

As limitações a seguir se aplicam aos clusters de banco de dados Amazon Aurora quando o log binário avançado é ativado.

  • O log binário avançado é aceito apenas no Aurora MySQL versão 3.03.1 e posterior.

  • Os arquivos de log binário avançado gravados no cluster de banco de dados primário não são copiados para os clusters de banco de dados clonados ou restaurados.

  • Quando usados com o Amazon Aurora Global Database, os arquivos de log binário avançado do cluster de banco de dados primário não são replicados para os clusters de banco de dados secundários. Portanto, após o processo de failover, os dados históricos do log binário não estão disponíveis no novo cluster de banco de dados primário.

  • Os seguintes parâmetros de configuração do log binário são ignorados:

    • binlog_group_commit_sync_delay

    • binlog_group_commit_sync_no_delay_count

    • binlog_max_flush_queue_time

  • Você não pode eliminar ou renomear uma tabela corrompida em um banco de dados. Para eliminar essas tabelas, você pode entrar em contato com o AWS Support.

  • O cache de E/S do log binário é desabilitado quando o registro binário avançado é ativado. Para ter mais informações, consulte Otimizar a replicação de logs binários para Aurora MySQL.

    nota

    O log binário avançado fornece melhorias de performance de leitura semelhantes ao cache de E/S do log binário e avanços melhores na performance de gravação.

  • O recurso de retrocesso não é compatível. O log binário avançado não pode ser ativado em um cluster de banco de dados nas seguintes condições:

    • Cluster de banco de dados com o recurso de retrocesso atualmente habilitado.

    • O cluster de banco de dados com o recurso de retrocesso era habilitado anteriormente, mas agora está desabilitado.

    • Cluster de banco de dados restaurado com base em um cluster de banco de dados de origem ou de um snapshot com o recurso de retrocesso habilitado.