Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Obtenir et analyser les journaux binaires d'une instance RDS for MySQL

Dernière mise à jour :Oct 12, 2026

Cette rubrique explique comment obtenir à distance les journaux binaires d'une instance Alibaba Cloud RDS for MySQL et les analyser à l'aide de l'utilitaire mysqlbinlog.

Important
  • Avant d'effectuer des opérations à risque, telles que la modification des configurations ou des données de l'instance, assurez-vous que votre instance est tolérante aux pannes et aux sinistres afin de protéger vos données.

  • Si vous modifiez les configurations ou les données d'une instance, telle qu'une instance ECS ou RDS, créez un snapshot ou activez la sauvegarde des journaux pour l'instance RDS au préalable.

  • Si vous avez accordé des autorisations ou soumis des informations sensibles (telles que des noms d'utilisateur et des mots de passe) sur la plateforme Alibaba Cloud, modifiez ces informations rapidement.

Obtenir les journaux binaires

Méthode 1 : Téléchargement depuis la console RDS

  • Instances utilisant des disques cloud : après avoir activé la fonctionnalité de sauvegarde des journaux (activée par défaut), les journaux locaux (journaux binaires) sont chargés ou copiés en temps réel vers un espace de stockage de sauvegarde pour former des sauvegardes de journaux. Vous pouvez télécharger la sauvegarde de journal correspondant au point dans le temps souhaité. Pour plus d'informations, consultez Téléchargement depuis les instances à disque cloud.

  • Instances utilisant un disque local haute performance : pour plus d'informations, consultez Téléchargement depuis les instances à disque local haute performance.

Remarque

Pour savoir comment activer la sauvegarde des journaux, consultez Sauvegarder une instance Alibaba Cloud RDS for MySQL.

Méthode 2 : Obtention à distance des journaux binaires

  1. Se connecter à une instance Alibaba Cloud RDS for MySQL.

    Important

    La version du client MySQL doit correspondre à la version de l'instance RDS.

  2. Exécutez l'instruction SHOW BINARY LOGS; pour afficher les noms des fichiers de journaux binaires. Notez le nom du fichier dont vous avez besoin, tel que mysql-bin.xxx, à partir de la colonne Log_name.

    SHOW BINARY LOGS;

    Un résultat similaire s'affiche :

    mysql> SHOW BINARY LOGS;
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | mysql-bin.000022 |    406039 |
    | mysql-bin.000023 |     71497 |
    +------------------+-----------+
    2 rows in set (0.01 sec)
  3. Utilisez le nom de fichier de l'étape précédente pour obtenir le journal binaire à distance et l'enregistrer localement.

    1. Exécutez la commande suivante pour quitter l'interface CLI MySQL et revenir au système d'exploitation :

      exit;
    2. Exécutez la commande suivante pour obtenir le journal binaire à distance et l'enregistrer sur votre machine locale :

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

      Le tableau suivant décrit les paramètres.

      Paramètre

      Description

      -u<$User>

      Nom d'utilisateur utilisé pour se connecter au serveur MySQL.

      -p<$Password>

      Mot de passe utilisé pour se connecter au serveur MySQL.

      -h<$Host>

      Endpoint de l'instance Alibaba Cloud RDS. Pour savoir comment trouver l'endpoint, consultez Afficher les endpoints et les numéros de port d'une instance Alibaba Cloud RDS for MySQL.

      --read-from-remote-server

      Se connecte au serveur MySQL distant spécifié pour obtenir le journal binaire.

      --raw

      Lorsqu'il est utilisé avec --read-from-remote-server, cette option amène mysqlbinlog à écrire le journal binaire dans un fichier local dans son format d'origine.

      <mysql-bin.XXX>

      Nom du fichier de journal binaire à obtenir, tel qu'identifié à l'étape 2.

Afficher les fichiers de journaux binaires à l'aide de mysqlbinlog

Exécutez la commande mysqlbinlog suivante pour afficher le contenu d'un fichier de journal binaire.

Important

La version du client MySQL doit correspondre à la version de l'instance RDS.

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

Pour enregistrer le contenu analysé afin de le consulter ultérieurement, écrivez la sortie dans un fichier.

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

Le tableau suivant décrit les paramètres.

Paramètre

Description

-vv

Affiche une sortie détaillée, y compris le contenu détaillé de chaque événement analysé.

--base64-output=decode-rows

Affiche les événements de ligne du journal binaire sous forme décodée.

<mysql-bin.XXX>

Nom du fichier de journal binaire à analyser. Remplacez XXX par le nom de fichier réel.

`

more`

Redirige la sortie vers la commande more pour un affichage paginé.

> [$File_Name]

Fichier local dans lequel le contenu analysé est écrit.

Remarque

Pour plus d'informations sur l'analyse des journaux binaires, consultez la documentation officielle MySQL.

Un résultat similaire s'affiche :

[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

FAQ

Cette section décrit les problèmes courants lors de l'utilisation de l'utilitaire mysqlbinlog.

  • Si vous recevez l'erreur suivante, vérifiez la version de votre utilitaire mysqlbinlog. Cette erreur, qui peut survenir dans la version 3.3, est corrigée dans la version 3.4. Pour la résoudre, utilisez une version ultérieure de 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.
  • Si vous ne spécifiez pas le paramètre --base64-output=decode-rows lors de l'exécution de mysqlbinlog, la sortie reste encodée.

    image.png

  • Si vous recevez cette erreur, vérifiez si votre fichier de configuration my.cnf contient le champ default-character-set=utf8mb4. Si c'est le cas, ajoutez le paramètre --no-defaults à votre commande pour résoudre l'erreur. Par exemple : 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'
  • Si les horodatages dans le journal analysé sont incorrects, vérifiez que le fuseau horaire de votre environnement local correspond à celui de la base de données.

    Les journaux binaires MySQL stockent les horodatages au format Unix sans données de fuseau horaire. La commande mysqlbinlog convertit ces horodatages en utilisant le fuseau horaire local du système sur lequel elle est exécutée. Une incompatibilité de fuseau horaire entre l'environnement client et le serveur de base de données entraînera des horodatages incorrects dans la sortie.

S'applique à

Alibaba Cloud RDS for MySQL