web-dev-qa-db-fra.com

Dans MySQL, comment puis-je supprimer/vider/effacer tous les journaux non nécessaires?

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

SHOW BINARY LOGS affiche "Vous n'utilisez pas de journalisation binaire".

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

TRUNCATE mysql.general_log;
TRUNCATE mysql.slow_log;
22
Erwin Mayer

FLUSH LOGS ferme et rouvre les fichiers de log. 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 en cours d'utilisation, puis après FLUSH LOGS, vous saurez que MySQL écrit dans un nouveau petit fichier et que 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 le fichier binlog sur lequel ils travaillent et ne purgez pas ce fichier ou les fichiers ultérieurs.

N'oubliez pas non plus que les binlogs sont utiles pour la récupération à un moment donné au cas où vous auriez besoin de restaurer des sauvegardes, puis de réappliquer des binlogs pour mettre à jour la base de données. Si vous devez utiliser les journaux de travaux de cette manière, ne purgez pas les journaux de travaux écrits depuis votre dernière sauvegarde.

27
Bill Karwin

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/USERLogAccess.Concepts.MySQL.html

16

Il semble que la journalisation binaire ne soit pas activée sur votre serveur. Et je suppose que vous souhaitez supprimer les anciens fichiers journaux utilisés/créés au moment de la journalisation binaire. vous pouvez les supprimer manuellement en utilisant la commande 'rm' si vous le souhaitez. si vous souhaitez activer la journalisation binaire, vous pouvez procéder de la même manière en mettant à jour le fichier de configuration (mais le serveur doit être redémarré 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-binhttp : //dev.mysql.com/doc/refman/5.0/fr/replication-options-binary-log.html#sysvar_log_bin

0
kasi