web-dev-qa-db-fra.com

Erreur 1236 du maître après réplication restaurée

J'ai essayé de restaurer une réplication cassée causée par une interruption de puissance. Lors de la vérification du SLAVEDB, il était déjà cassé alors je configurais une nouvelle réplication. Et sur soi-disant complétant la réplication, je suis bloqué avec ceci: Obtenez une erreur fatale 1236 de Master lors de la lecture de données de journal binaire: "Identifiant MASTER-Server mal configuré n'a pas été défini"

Nous exécutons Percona Server 5.5. Voici les procédures que j'ai faites:

1.) Sur le serveur principal MasterDB (IP = 10.0.0.20, serveur_id = 1), j'ai rannoobackupex pour faire une sauvegarde à chaud. vérifié le xtrabackup_binlog_info et noté slavedb-bin.000609 et 113535960 comme le fichier binlog et position.

2.) Restauré la sauvegarde sur le SLAVEDB (IP = 10.0.0.40) et configurez la réplication comme suit -modifier le maître en maître_host = '10 .0.0.20 ', master_user =' Utilisateur ', master_password =' ​​Mot de passe ', master_log_file =' slavedb-bin.000609 ', master_log_pos = 11353596 (Comme indiqué à partir du xtrabackup_binlog_info de la sauvegarde Innobackupex.

3.) Après avoir démarré l'esclave, je reçois l'erreur 1236 ci-dessus avec un maître mal configuré, mais le maître Server_ID est 1.

J'ai lu en ligne sur un ancien fil d'une solution possible pour accéder au fichier binlog suivant, car il aurait pu être corrompu avec les transactions appliquées.

Mais comment allais-je passer au prochain fichier binlog? Est-ce le prochain binlog de l'innobackupex xtrabackup_binlog_info? " ou dois-je vérifier le journal principal et découvrir le dernier binlog écrit avant de ne pas se bloquer?

J'ai essayé de passer devant le binlog à partir de ce que Innobackupex m'a donné, allant à Slavedb-bin.000610 et pos = 0, mais il a toujours eu la même erreur.

4
paacharon3

Ceci est une supposition, mais veuillez noter que l'option server-id ne peut pas être activé de manière chaude . Dans mon expérience, il s'agit d'une cause commune de problèmes lors de la mise en place de la réplication pour la première fois, spécialement parce que , le maître accepte la syntaxe suivante sans se plaindre :

mysql> SET GLOBAL server_id = 1;
Query OK, 0 rows affected (0.04 sec)

Et l'ID de serveur semble avoir pris effet:

mysql> SHOW GLOBAL VARIABLES like 'server\_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 1     |
+---------------+-------+
1 row in set (0.02 sec)

Mais il ne fonctionne pas , (il n'a pas d'effet avant de redémarrer et de lire à partir de la my.cnf ou passé comme un paramètre). L'esclave se plaint jusqu'à ce que le maître soit redémarré.

La documentation officielle est trompeuse, alors qu'il est dit que c'est dynamique En réalité, ce n'est pas (ou au moins cela n'est pas lors de la configuration pour la première fois ou la configuration avec la valeur par défaut, etc.). Voir Ce bogue pour plus de détails , mentionne la documentation trompeuse.

En résumé, l'activation des journaux binaires et de la configuration d'ID de serveur nécessite un redémarrage du serveur. Je vous recommande donc toujours de le faire au moment de l'installation. Changez-le sur le [mysqld]section de votre fichier de configuration et redémarrez le service.

4
jynus