Je face même problème et résolu en suivant les étapes suivantes. Le lien complet du fil est http://www.percona.com/forums/questions-discussions/percona-xtrabackup/11842-backup-stopped-working-slave-sql-running-no
Les étapes sont les mêmes que mentionnées par @ Luxknight007 sauf son étape 2. Cependant ce fil contient plus de détails, ce qui est très utile. Voici la solution que j'ai utilisée et cela a fonctionné. "Le premier problème est que vous avez modifié la position de la réplication au lieu de corriger l'erreur et utilisé un format de nom de fichier binlog incorrect (vous avez probablement utilisé celui de ce post que vous avez lié).Pour revenir à l'endroit où vous avez démarré, vous devez trouver le fichier binlog et la position à laquelle l'esclave sql_thread s'est arrêté. Selon la sortie de votre esclave, l'esclave lit un nouveau fichier binlog (vous pouvez voir que la valeur de Read_Master_Log_Pos est plus petite que la valeur Exec_Master_Log_Pos, ce qui signifie qu'il doit lire un fichier binlog plus récent que l'esclave sql_thread arrêté à), vous devez donc trouver le fichier binlog auquel l'esclave sql_thread a échoué. Regardez donc dans le journal d'erreur pour quelque chose comme ci-dessous:
code:
2013-10-08 12:48:51 37545 [ERROR] Slave SQL: Error 'Table 'testdb.test2' doesn't exist' on query. Default database: 'testdb'. Query: 'insert into test1 select * from test2', Error_code: 1146
2013-10-08 12:48:51 37545 [Warning] Slave: Table 'testdb.test2' doesn't exist Error_code: 1146
2013-10-08 12:48:51 37545 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000001' position 3427
Ceci est un exemple que je re-créé, si le vôtre sera un peu différent. Notez que l'ERREUR est similaire à ce que vous voyez dans votre statut d'esclave. Alors trouvez votre message d'erreur spécifique dans le fichier journal des erreurs, puis recherchez la partie finale où vous donne le nom et la position du fichier ("Nous nous sommes arrêtés au journal 'mysql-bin.000001' position 3427" dans mon exemple). La position doit être 315098143 en fonction de votre statut d'esclave de show, car c'est alors que l'esclave sql_thread a arrêté d'exécuter des événements (Exec_Master_Log_Pos) mais que le io_thread a continué à lire dans les nouveaux (Read_Master_Log_Pos). Une fois que vous avez trouvé le nom et la position du fichier binlog correct, réexécutez votre instruction change master sur votre esclave en utilisant les informations que vous avez trouvées dans le journal des erreurs. Notez que votre nom de fichier doit être quelque chose comme "newcrmdb1-bin.XXXXXX", pas mysql-bin.XXXXXX (vous pouvez voir cette convention de nommage votre statut d'esclave de show ci-dessus).
code:
mysql> change master to MASTER_LOG_FILE='newcrmdb1-bin.XXXXXX', Master_Log_Pos=315098143;
change master to MASTER_LOG_FILE='mysql-bin.000082' , Master_Log_Pos=47914844;
Une fois que vous êtes pointé à l'emplacement de réplication d'origine où le SQL_THREAD esclave a échoué, vous devez alors corriger l'erreur qu'il se plaignait sur le point de commencer. L'erreur de réplication initiale semble indiquer que le tableau asteriskcdr
. bpleadcf
n'existe pas sur l'esclave, donc l'instruction d'insertion échoue lorsqu'elle tente de sélectionner les données de cette table. Donc, le problème est que votre esclave semble être déjà désynchronisé avec votre maître. Si la table en question sur le maître est statique ou plutôt statique, vous pouvez probablement résoudre ce problème en exportant les données de cette table sur le maître en utilisant mysqldump et en le chargeant dans l'esclave. Si cela n'est pas possible ou si vous ne vous souciez pas de ces données, vous pouvez toujours ignorer l'instruction de réplication avec sql_slave_skip_counter, mais l'esclave ne sera plus synchronisé avec le maître.
Et si tout le reste échoue, vous pouvez toujours reconstruire l'esclave à partir du maître en dernier recours. =) "
2.REET SLAVE (ne doit pas exécuter cette commande) RESET SLAVE fait oublier à l'esclave sa position de réplication dans le journal binaire du maître. Utilisé pour un démarrage propre: Il supprime les fichiers master.info et relay-log.info, tous les fichiers journaux de relais et démarre un nouveau fichier journal de relais. [Link] (http://dev.mysql.com/doc/ refman/5.0/fr/reset-slave.html) –