清除MySQL General Log Table,它安全吗?

时间:2013-02-03 06:34:10

标签: mysql logging clear

我在服务器上工作,一般的mysql日志表占用的空间接近200GB,这是巨大的。所以,我打算用以下方式清理它:

TRUNCATE table mysql.general_log

可以吗?它会引起任何问题吗?我担心服务器是实时和大应用程序。感谢。

2 个答案:

答案 0 :(得分:9)

除非未禁用然后截断,否则肯定会导致问题。如果在启用时截断。如果表是巨大的,Truncate将锁定表,因为mysql.general_log引擎是CSV或MyISAM,同时新创建的条目将尝试写入一般日志表,导致所有连接的锁定,并最终将“太多”连接”。所以为了安全,请这样做

mysql> SET GLOBAL general_log=OFF;
mysql> TRUNCATE table mysql.general_log;
mysql> SET GLOBAL general_log=ON;

答案 1 :(得分:6)

它不会导致问题,但是你会丢失所有旧的日志条目,所以Ravindra的建议很好。

您可以使用以下方式进行备份:

mysqldump -p --lock_tables = false mysql general_log> genlog.sql

您是否需要始终使用常规登录?我通常只在我解决性能问题时才打开它。 MySQL在那里记录所有内容(客户端连接,断开连接和每个语句)。在大多数系统中,日志变得非常快。这也有一些性能开销。