From d6050bfa974c3d77e097cb92b7707ef70e836851 Mon Sep 17 00:00:00 2001 From: emorino Date: Mon, 29 Jul 2019 10:53:44 +0200 Subject: [PATCH] Ajout error 1594 - Relay log read failure --- HowtoMySQL/Replication.md | 77 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/HowtoMySQL/Replication.md b/HowtoMySQL/Replication.md index 2a5bd948..0ae9de86 100644 --- a/HowtoMySQL/Replication.md +++ b/HowtoMySQL/Replication.md @@ -393,6 +393,83 @@ Souvent un binlog corrompu, voir le *Relay_Master_Log_File* `SHOW SLAVE STATUS`. **Note**: Jusqu'à MySQL <= 5.1 au moins, changer la position dans un `Relay_log` avec un `CHANGE MASTER TO` ne marche pas. Voir [Changement de la position dans un Relay_log](#ChangementdelapositiondansunRelay_log). +**Error 1594 - Relay log read failure - Could not parse relay log event entry** + +On peut changé la position du Relay_log, sur le serveur slave, il faut bien identifié sur quel **Relay_Master_Log_File** et a quelle position du **Exec_Master_Log_Pos** se trouve le slave. + +Il faut, avant toute chose, faire un **SHOW SLAVE STATUS\G** pour voir les valeurs de **Relay_Master_Log_File** et **Exec_Master_Log_Pos** : + +~~~ +MariaDB [(none)]> SHOW SLAVE STATUS\G + +************************* 1. row *************************** + + Slave_IO_State: Waiting for master to send event + Master_Host: 192.168.194.74 + Master_User: replicator + Master_Port: 3306 + Connect_Retry: 60 + Master_Log_File: mysql-bin.001274 + Read_Master_Log_Pos: 1045327404 + Relay_Log_File: 3_dbbackup.003821 + Relay_Log_Pos: 617884398 + Relay_Master_Log_File: mysql-bin.001273 + Slave_IO_Running: Yes + Slave_SQL_Running: No + Replicate_Do_DB: + Replicate_Ignore_DB: + Replicate_Do_Table: + Replicate_Ignore_Table: + Replicate_Wild_Do_Table: + Replicate_Wild_Ignore_Table: + Last_Errno: 1594 + Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave. + Skip_Counter: 0 + Exec_Master_Log_Pos: 617884110 + Relay_Log_Space: 3192816253 + Until_Condition: None + Until_Log_File: + Until_Log_Pos: 0 + Master_SSL_Allowed: No + Master_SSL_CA_File: + Master_SSL_CA_Path: + Master_SSL_Cert: + Master_SSL_Cipher: + Master_SSL_Key: + Seconds_Behind_Master: NULL +Master_SSL_Verify_Server_Cert: No + Last_IO_Errno: 0 + Last_IO_Error: + Last_SQL_Errno: 1594 + Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave. + Replicate_Ignore_Server_Ids: + Master_Server_Id: 13 + Master_SSL_Crl: + Master_SSL_Crlpath: + Using_Gtid: No + Gtid_IO_Pos: + Replicate_Do_Domain_Ids: + Replicate_Ignore_Domain_Ids: + Parallel_Mode: conservative +~~~ + +Il faut donc stoppé le slave : + +~~~ +MariaDB [(none)]> STOP SLAVE; +~~~ + +Ensuite faire un **CHANGE MASTER TO** en indiquant le Relay_Master_Log_File et la position du Exec_Master_Log_Pos comme ceci dans l'exemple ci-dessus : + +~~~ +MariaDB [(none)]> CHANGE MASTER TO master_log_file='mysql-bin.001273', master_log_pos=617884110; + +MariaDB [(none)]> START SLAVE; +~~~ + +Normalement a ce stade là, la réplication continue à la position indiqué. + + **Erreur fatale à la lecture du binlog** Erreur : `Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'`