mysql数据库日志文件怎么管理_mysql日志文件维护方法

发布时间:2020-08-15编辑:脚本学堂
有关mysql数据库日志文件的管理方法,如何维护mysql日志文件的方法分享,以及刷新日志操作的原则等,需要的朋友参考下。

mysql/ target=_blank class=infotextkey>mysql数据库日志文件维护

mysql服务在运行过程中会创建一系列的日志文件,从有效利用磁盘空间的因素考虑,dba有必要定期对这类文件进行清理。

mysql日志记录功能启用后,dba可能会希望能够定期或不定期备份并移除旧的日志文件,并通知mysql创建新的日志文件:

linux系统中,可以通过使用mysql-log-rotate脚本(默认在安装路径的/support-files/mysql-log-rotate目录下)。

如果是复制环境,需要注意mysql二进制日志文件的保护,未传播到slave端的二进制日志不能被移除。

其它操作系统,可以自己编写shell/ target=_blank class=infotextkey>shell脚本进行日志文件的删除。

对于二进制日志,mysql提供了名为expire_logs_days系统变量,用来指定二进制日志过期时间,设置后mysql即可以自动处理过期的二进制日志,这样对于复制环境来说也比较灵活。

可以通过flush-logs的方式强制mysql新建二进制日志文件,比如在mysql命令行环境下执行flush logs,或者执行mysqladmin flush-logs, mysqladmin refresh, mysqldump --flush-logs, musqldump --master--data等命令。或者等到二进制日志达到max_binlog_size参数值时自动创建。

刷新日志操作遵循下列规则:

如果启用了查询日志记录功能,则mysql关闭并重新打开查询日志文件;
如果启用了二进制日志记录功能,则mysql关闭当前的二进制日志文件,然后按序列新建一个二进制日志;
如果启用了错误日志记录功能,则mysql归档当前错误文件以-old后缀,然后创建一个新的空错误日志文件。

当执行flush-logs操作时,mysql将创建新的二进制日志,不过,查询日志不会重新创建,linux/unix系统下只能手动改名,然后再执行flush。

例如,原普通查询日志和慢查询日志分别命名为mysql.log和mysql-slow.log,通过下列步骤重建:
 

shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old

shell> mysqladmin flush-logs

之后,可以选择删除*.old,或再改名等。

注意,在5.1.3版本之前,windows版本运行的mysql不允许在线重命名日志文件,如果要修改,必须先停止mysql服务,尔后再进行操作。

从5.1.3版本开始,错误日志仍然不允许在线改外,不过查询日志已经支持了。