Dans MySQL, comment puis-je supprimer / vider / effacer tous les journaux qui ne sont pas nécessaires?

StackOverflow https://stackoverflow.com/questions/7381320

  •  29-10-2019
  •  | 
  •  

Question

J'ai essayé plusieurs commandes (FLUSH LOGS, PURGE MASTER) mais aucune ne supprime les fichiers journaux (lorsqu'ils sont précédemment activés) ou les tables de journaux (mysql / slow_log.CSV et mysql / general_log.CSV et leurs homologues .frm et .CSM).

SHOW BINARY LOGS renvoie "Vous n'utilisez pas la journalisation binaire".

Modifier : j'ai trouvé cette solution simple pour effacer les journaux de table (mais pas encore les journaux de fichiers à l'aide d'une commande mysql):

TRUNCATE mysql.general_log;
TRUNCATE mysql.slow_log;
Était-ce utile?

La solution

FLUSH LOGS ferme et rouvre simplement les fichiers journaux.Si les fichiers journaux sont volumineux, cela ne les réduira pas.Si vous êtes sous Linux, vous pouvez utiliser mv pour renommer les fichiers journaux pendant leur utilisation, puis après FLUSH LOGS, vous savez que MySQL écrit dans un nouveau petit fichier et vous pouvez supprimer les anciens gros fichiers.

Les journaux binaires sont différents.Pour éliminer les anciens binlogs, utilisez PURGE BINARY LOGS .Assurez-vous que vos esclaves (le cas échéant) n'utilisent toujours pas les journaux binaires.Autrement dit, exécutez SHOW SLAVE STATUS pour voir sur quel fichier binlog ils travaillent, et ne purgez pas ce fichier ou les fichiers ultérieurs.

Gardez également à l'esprit que les binlogs sont utiles pour la récupération ponctuelle au cas où vous auriez besoin de restaurer à partir de sauvegardes, puis de réappliquer les binlogs pour mettre la base de données à jour.Si vous devez utiliser les binlogs de cette manière, ne purgez pas les binlogs qui ont été écrits depuis votre dernière sauvegarde.

Autres conseils

Si vous êtes sur Amazon RDS, l'exécuter deux fois fera l'affaire:

PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;

Source: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html

Il semble que la journalisation binaire n'est pas activée sur votre serveur. Et je suppose que vous souhaitez supprimer les anciens fichiers journaux qui ont été utilisés / créés au moment de la journalisation binaire est activée.vous pouvez les supprimer manuellement en utilisant la commande 'rm' si vous le souhaitez.si vous souhaitez activer la journalisation binaire, vous pouvez faire de même en mettant à jour le fichier de configuration (mais il faut redémarrer le serveur s'il est déjà en cours d'exécution).Vous pouvez consulter les liens ci-dessous. http://dev.mysql.com / doc / refman / 5.0 / fr / replication-options-binary-log.html # option_mysqld_log-bin http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#sysvar_log_bin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top