List:General Discussion« Previous MessageNext Message »
From:Paul DuBois Date:August 12 2011 4:43pm
Subject:Re: error log rotation problem
View as plain text  
On Aug 11, 2011, at 2:30 PM, Keith Murphy wrote:

> Hey everyone,
> 
> I have run across something that has me stumped. I have some systems that
> have very large error logs because we haven't moved from statement-based to
> mixed-based replication yet so they get a lot of warnings logged. I need to
> rotate the error logs and have started looking at it doing so.
> 
> The problem is that on one system a normal course of action works perfectly,
> but on anther it does not. And these systems were installed from the same
> RPM packages (5.1.50 -- downloaded from the MySQL website).
> 
> Here is what I do:
> 
> 
> log in with mysql client and 'flush logs'  OR mysqladmin --flush-log
> 
> It should rename the old log file to mysqld.log-old and start a new
> mysqld.log file.
> 
> On one system it works perfectly
> 
> On the other...nothing.
> 
> I tried moving the error log (mv /var/log/mysqld/mysqld.log
> /var/log/mysqld.log.old) and then issuing the flush logs command...it stays
> writing to the "old" file and never makes a new one.
> 
> If I were to restart mysqld it would solve the problem but this is a
> production system and that isn't very practical.
> 
> These systems are very similar. my.cnfs have been checked for differences. I
> searched the interwebs and specifically bugs.mysql.com for something
> similar. Not finding anything.
> 
> I would appreciate any ideas!


There was a change to log flushing that affects the error log in 5.1.51/5.5.7.
It might be the cause of what you're seeing.

http://dev.mysql.com/doc/refman/5.1/en/news-5-1-51.html
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-7.html

"
Incompatible Change: Previously, if you flushed the logs using FLUSH LOGS or mysqladmin
flush-logs andmysqld was writing the error log to a file (for example, if it was started
with the --log-error option), it renamed the current log file with the suffix -old, then
created a new empty log file. This had the problem that a second log-flushing operation
thus caused the original error log file to be lost unless you saved it under a different
name. For example, you could use the following commands to save the file:

shell> mysqladmin flush-logs

shell> mv host_name.err-old backup-directory

To avoid the preceding file-loss problem, renaming no longer occurs. The server merely
closes and reopens the log file. To rename the file, you can do so manually before
flushing. Then flushing the logs reopens a new file with the original file name. For
example, you can rename the file and create a new one using the following commands:

shell> mv host_name.err host_name.err-old

shell> mysqladmin flush-logs

shell> mv host_name.err-old backup-directory

(Bug #29751)

See also Bug #56821.
"
-- 
Paul DuBois
Oracle Corporation / MySQL Documentation Team
Madison, Wisconsin, USA
www.mysql.com

Thread
error log rotation problemKeith Murphy11 Aug
  • Re: error log rotation problemPaul DuBois12 Aug
    • Re: error log rotation problemPrabhat Kumar12 Aug
      • Re: error log rotation problemKeith Murphy12 Aug