Dans MySQL, Comment puis-je supprimer/vider/effacer toutes les logs qui ne sont pas nécessaires?

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

afficher les LOGS binaires retourne "vous n'utilisez pas la journalisation binaire".

Modifier: j'ai trouvé cette solution simple pour effacer les logs de table (mais pas encore les logs de fichier en utilisant une commande mysql):

TRUNCATE mysql.general_log;
TRUNCATE mysql.slow_log;
21
demandé sur Philip Olson 2011-09-12 01:19:14

3 réponses

les logs FLUSH se ferment et rouvrent les fichiers log. Si les fichiers journaux sont grandes, il ne réduira pas. Si vous êtes sous Linux, vous pouvez utiliser mv pour renommer les fichiers journaux pendant qu'ils sont utilisés, et puis après les logs FLUSH, vous savez que MySQL écrit dans un nouveau, petit fichier, et vous pouvez supprimer les vieux gros fichiers.

les logs binaires sont différents. Pour éliminer les vieux binlogs, utilisez PURGE BINAIRE LOGS. Assurez-vous que vos esclaves (s'il y en a) n'utilisent pas encore les journaux binaires. C'est, exécutez le statut de SHOW SLAVE pour voir sur quel fichier binlog ils travaillent, et ne purgez pas ce fichier ou les fichiers suivants.

gardez également à l'esprit que les binlogs sont utiles pour la récupération point-in-time dans le cas où vous avez besoin de restaurer à partir de sauvegardes et ensuite réappliquer les binlogs pour mettre la base de données à jour. Si vous avez besoin d'utiliser binlogs de cette manière, ne purge pas les binlogs qui ont été écrits depuis votre dernière sauvegarde.

25
répondu Bill Karwin 2011-09-12 00:25:05

si vous êtes sur amazon RDS, exécuter ceci 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

16
répondu Joan-Diego Rodriguez 2014-12-09 10:46:10

il semble que la journalisation binaire n'est pas activée sur votre serveur .Et je suppose que vous voulez supprimer les vieux 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 voulez . si vous voulez activer la journalisation binaire, vous pouvez faire de même en mettant à jour le fichier de configuration ( mais il doit redémarrer le serveur s'il est déjà en cours d'exécution) . Vous pouvez consulter ci-dessous lien. http://dev.mysql.com/doc/refman/5.0/en/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

0
répondu kasi 2014-12-17 12:58:22