L' PURGE BINARY LOGS
instruction supprime tous les fichiers journaux binaires répertoriés dans le fichier d'index de journaux avant le nom de fichier journal ou l'horodatage spécifié. Les fichiers journaux supprimés sont également supprimés de la liste enregistrée dans le fichier d'index, de sorte que le fichier journal donné devient le premier de la liste.
J'espère que vous avez purgé les journaux binaires jusqu'à l' mysql-bin.000019
aide de la commande
PURGE BINARY LOGS TO 'mysql-bin.000019';
Si vous devez purger tous les journaux, faites comme
PURGE BINARY LOGS TO 'mysql-bin.000025';
Cela supprimera les journaux binaires jusqu'à mysql-bin.000025
.
MISE À JOUR
Tu peux essayer
RESET MASTER;
RESET MASTER
Supprime tous les fichiers journaux binaires répertoriés dans le fichier d'index, réinitialise le fichier d'index des journaux binaires pour qu'il soit vide et crée un nouveau fichier journal binaire
Les effets de RESET MASTER
diffèrent de ceux de PURGE BINARY LOGS de 2 manières principales:
RESET MASTER
supprime tous les fichiers journaux binaires répertoriés dans le fichier d'index, ne laissant qu'un seul fichier journal binaire vide avec un suffixe numérique de .000001, tandis que la numérotation n'est pas réinitialisée par PURGE BINARY LOGS.
RESET MASTER
n'était pas destiné à être utilisé pendant l'exécution d'esclaves de réplication. Le comportement de RESET MASTER
lorsqu'il est utilisé pendant que les esclaves sont en cours d'exécution n'est pas défini (et donc non pris en charge), alors qu'il PURGE BINARY LOGS
peut être utilisé en toute sécurité pendant que les esclaves de réplication sont en cours d'exécution.
CAVEAT par RolandoMySQLDBA
Si vous exécutez RESET MASTER
avec des esclaves connectés et en cours d'exécution, le fil d'E / S de chaque esclave perdra immédiatement sa place. La réplication est donc interrompue et vous devrez passer du temps à récupérer à nouveau les données de tous les esclaves. Si vous souhaitez supprimer en toute sécurité les journaux binaires d'un maître sans rompre l'intégrité de la réplication, voici ce que vous faites:
- Exécutez
SHOW SLAVE STATUS\G
sur chaque esclave.
- Prenez note de
Relay_Master_Log_File
. Il s'agit du journal binaire dont la dernière instruction a été exécutée avec succès dans l'esclave).
- À partir de tous les affichages de
SHOW SLAVE STATUS\G
, déterminez lequel Relay_Master_Log_File
est le plus ancien (par exemple, 'mysql-bin.00123').
- Vous pouvez exécuter
PURGE BINARY LOGS TO 'mysql-bin.00123';
Aucun des esclaves ne perdra sa place.
L'effet global? Cela laissera des journaux binaires sur le maître dont les instructions n'ont pas encore été exécutées sur tous les esclaves.