Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Obter e analisar logs binários de uma instância RDS for MySQL

Última atualização: Oct 12, 2026

Este tópico descreve como obter logs binários remotamente de uma instância Alibaba Cloud RDS for MySQL e analisá-los com o utilitário mysqlbinlog.

Importante
  • Antes de executar operações de risco, como modificar configurações ou dados da instância, garanta que ela tenha tolerância a desastres e a falhas para proteger seus dados.

  • Se você for alterar configurações ou dados de uma instância (ECS ou RDS, por exemplo), crie um snapshot ou ative o backup de logs da instância RDS antes de prosseguir.

  • Caso tenha concedido permissões ou enviado informações sensíveis (como nomes de usuário e senhas) na plataforma Alibaba Cloud, altere essas informações imediatamente.

Obter logs binários

Método 1: Baixar pelo console do RDS

  • Instâncias com discos cloud: após ativar o recurso de backup de logs (habilitado por padrão), os logs locais (logs binários) são enviados ou copiados em tempo real para um espaço de armazenamento de backup, formando backups de logs. Baixe o backup de logs correspondente ao momento desejado. Para mais informações, consulte Download from cloud disk instances.

  • Instâncias com disco local de alto desempenho: para mais informações, consulte Download from high-performance local disk instances.

Nota

Para saber como ativar o backup de logs, consulte Back up an Alibaba Cloud RDS for MySQL instance.

Método 2: Obter logs binários remotamente

  1. Connect to an Alibaba Cloud RDS for MySQL instance.

    Importante

    A versão do cliente MySQL deve corresponder à versão da instância RDS.

  2. Execute a instrução SHOW BINARY LOGS; para visualizar os nomes dos arquivos de log binário. Anote o nome do arquivo necessário, como mysql-bin.xxx, na coluna Log_name.

    SHOW BINARY LOGS;

    A saída será semelhante a esta:

    mysql> SHOW BINARY LOGS;
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | mysql-bin.000022 |    406039 |
    | mysql-bin.000023 |     71497 |
    +------------------+-----------+
    2 rows in set (0.01 sec)
  3. Use o nome do arquivo obtido na etapa anterior para buscar o log binário remotamente e salvá-lo localmente.

    1. Execute o comando abaixo para sair da CLI do MySQL e retornar ao sistema operacional:

      exit;
    2. Execute o seguinte comando para obter o log binário remotamente e salvá-lo na sua máquina local:

      mysqlbinlog -u<$User> -p<$Password> -h<$Host> --read-from-remote-server --raw <mysql-bin.XXX>

      A tabela a seguir descreve os parâmetros.

      Parâmetro

      Descrição

      -u&lt;$User&gt;

      Nome de usuário para conexão ao servidor MySQL.

      -p&lt;$Password&gt;

      Senha para conexão ao servidor MySQL.

      -h&lt;$Host&gt;

      Endpoint da instância Alibaba Cloud RDS. Para saber como localizar o endpoint, consulte View the endpoints and port numbers of an Alibaba Cloud RDS for MySQL instance.

      --read-from-remote-server

      Conecta ao servidor MySQL remoto especificado para obter o log binário.

      --raw

      Quando usado com --read-from-remote-server, faz com que o mysqlbinlog grave o log binário em um arquivo local mantendo seu formato original.

      &lt;mysql-bin.XXX&gt;

      Nome do arquivo de log binário a ser obtido, conforme identificado na etapa 2.

Visualizar arquivos de log binário com mysqlbinlog

Execute o comando mysqlbinlog abaixo para visualizar o conteúdo de um arquivo de log binário.

Importante

A versão do cliente MySQL deve corresponder à versão da instância RDS.

mysqlbinlog -vv --base64-output=decode-rows <mysql-bin.XXX> | more

Para salvar o conteúdo analisado para consulta posterior, direcione a saída para um arquivo.

mysqlbinlog -vv --base64-output=decode-rows <mysql-bin.XXX> > [$File_Name]

A tabela a seguir descreve os parâmetros.

Parâmetro

Descrição

-vv

Exibe saída detalhada, incluindo o conteúdo completo de cada evento analisado.

--base64-output=decode-rows

Imprime eventos de linha do log binário em formato decodificado.

&lt;mysql-bin.XXX&gt;

Nome do arquivo de log binário a ser analisado. Substitua XXX pelo nome real do arquivo.

| more

Direciona a saída para o comando more para exibição paginada.

&gt; [$File_Name]

Arquivo local onde o conteúdo analisado será gravado.

Nota

Para mais detalhes sobre a análise de logs binários, consulte a documentação oficial MySQL documentation.

A saída será semelhante a esta:

[root@iZbp****** ~]# mysqlbinlog -vv --base64-output=decode-rows mysql-bin.000022 | more
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#230911  9:27:28 server id 26718053  end_log_pos 123 CRC32 0xa231cb44   Start: binlog v 4, server v 5.7.42-log created 230911  9:27:28
# at 123
#230911  9:27:28 server id 26718053  end_log_pos 194 CRC32 0x078b6dc1   Previous-GTIDs
# a63b4ed1-4c86-11ee-9029-00163e157053:1-27339
# at 194
#230911  9:27:32 server id 26718053  end_log_pos 259 CRC32 0x59b848c3   GTID    last_committed=0        sequence_number=1       rbr_only=yes    original_committed_ti
mestamp=0       immediate_commit_timestamp=0    transaction_length=0
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
# original_commit_timestamp=0 (1970-01-01 08:00:00.000000 CST)
# immediate_commit_timestamp=0 (1970-01-01 08:00:00.000000 CST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'a63b4ed1-4c86-11ee-9029-00163e157053:27340'/*!*/;
# at 259
#230911  9:27:32 server id 26718053  end_log_pos 327 CRC32 0xc0dddaec   Query   thread_id=16849 exec_time=0     error_code=0
SET TIMESTAMP=1694395652/*!*/;
SET @@session.pseudo_thread_id=16849/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=2097152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb3 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN

Perguntas frequentes

Esta seção aborda problemas comuns ao utilizar o utilitário mysqlbinlog.

  • Ao receber o erro abaixo, verifique a versão do utilitário mysqlbinlog. Esse problema, que pode ocorrer na versão 3.3, foi corrigido na versão 3.4. Para resolvê-lo, utilize uma versão mais recente do mysqlbinlog.

    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 151, event_type: 35
    ERROR: Could not read entry at offset 120: Error in log format or read error.
  • Se o parâmetro --base64-output=decode-rows não for especificado ao executar o mysqlbinlog, a saída permanecerá codificada.

    image.png

  • Caso encontre este erro, verifique se o arquivo de configuração my.cnf contém o campo default-character-set=utf8mb4. Se estiver presente, adicione o parâmetro --no-defaults ao comando para corrigir o problema. Exemplo: mysqlbinlog --no-defaults -u[$User] -p[$Password] -h[$Host] --read-from-remote-server mysql-bin.XXX > [$File_Name].

    mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'
  • Se os carimbos de data/hora no log analisado estiverem incorretos, confirme se o fuso horário do ambiente local corresponde ao fuso horário do banco de dados.

    Os logs binários do MySQL armazenam carimbos de data/hora no formato Unix time, sem informações de fuso horário. O comando mysqlbinlog converte esses valores usando o fuso horário local do sistema onde é executado. Uma divergência de fuso horário entre o ambiente cliente e o servidor de banco de dados resultará em carimbos de data/hora incorretos na saída.

Aplicável a

Alibaba Cloud RDS for MySQL