5.4.6 服务器日志维护

如在5.4节”mysql服务器日志”中所描述的,mysql服务器可以创建多个不同的日志文件来帮助你查看正在发生的事件。你也可以定期清理这些文件来保证日志不会占用过多磁盘空间。
当启用mysql日志记录时,您可能需要不时备份和删除旧的日志文件,并告诉MySQL开始记录新文件。 请参见第7.2节“数据库备份方法”。
在linux(RetHat)的安装,你可以使用mysql-log-rotate脚本来维护日志。如果你通过RMP包安装mysql,这个脚本应该已经自动安装了。如果你正在使用复制的binary log,请小心这个脚本。不应该删除binary log,直到你确定它们的内容已经被所有从服务器所处理。
在其他系统,你必须自行安装一个cron脚本或等价脚本来处理日志文件。
服务器的binary log过期后,binary log文件会被自动删除。这些文件的删除会发生在启动时和binary log刷新时。默认的binary log过期时间为30天。为了指定可选的过期时间,请使用binlog_expire_logs_seconds系统变量。如果您使用的是复制,则应指定一个有效期限,该期限不得短于副本(从服务器)可能滞后于源(主服务器)的最大时间。要按需删除二进制日志,请使用PURGE BINARY LOGS语句(请参见第13.4.1.1节“ PURGE BINARY LOGS语句”)。
要强制mysql使用新日志文件,请刷新日志。当你执行FLUSH_LOGS语句或者mysqladmin flush-log,mysqladmin refresh,mysqldump --flush-log,或者mysql --master-data,会发生日志刷新。参见13.7.8.3节,”刷新语句”,4.5.2节,”mysqladmin—一个mysql服务器管理程序”和4.5.4节,”mysqldump–一个数据库备份程序”。另外,当前二进制日志文件大小达到max_binlog_size系统变量的值时,服务器会自动刷新二进制日志。
FLUSH LOGS支持可选的修饰符,以启用对单个日志的选择性刷新(例如,FLUSH BINARY LOGS)。 请参见第13.7.8.3节“ FLUSH声明”。
日志刷新选项有以下效果:
 如果启用了binary log记录,则服务器将关闭当前的二进制日志文件,并使用下一个序列号打开一个新的日志文件。
 如果启用了输出到文件的general log或者slow query log,那么服务器会关闭并且重新打开文件。
 如果使用–log-error选项启动服务器用来将错误日志写入文件,则服务器将关闭并重新打开日志文件。
执行日志刷新语句或命令需要用具有RELOAD特权的帐户连接到服务器。 在Unix和类Unix的系统上,刷新日志的另一种方法是向服务器发送信号,这可以由root或拥有服务器进程的帐户来完成。 (请参见第4.10节“ MySQL中的Unix信号处理”。)信号使无需连接服务器即可执行日志刷新:
 SIGHUP信号会刷新所有日志。然而,SIGHUP会有一些除了日志刷新外不想要的额外作用。
 从MySQL 8.0.19开始,SIGUSR1会使服务器刷新错误日志,常规查询日志和慢速查询日志。如果您只想刷新那些日志,则可以将SIGUSR1用作更“轻量”的信号,它不会有那些与日志无关的SIGHUP的效果。
如前所述,刷新二进制日志会创建一个新的二进制日志文件,而刷新常规查询日志,慢查询日志或错误日志只会关闭并重新打开日志文件。 对于后面的日志,要在Unix上创建一个新的日志文件,请在刷新之前重命名当前日志文件。 在刷新时,服务器会用原来的名字来打开新的日志文件。例如,如果将常规查询日志,慢速查询日志和错误日志文件命名为mysql.log,mysql-slow.log和err.log,则可以从命令行使用以下命令:

在windows上,请使用rename而不是mv。
此时,您可以备份mysql.log.old,mysql-slow.log.old和err.log.old,然后从磁盘中删除它们。
要在运行时重命名常规查询日志或慢速查询日志,请首先连接到服务器并禁用该日志:

在禁用日志的情况下,从外部重命名日志文件(例如,从命令行)。 然后再次启用日志:

这种方法可以在任何平台工作并不需要需要重启服务器。
注意:
为了在外部重命名文件后让服务器重新创建给定的日志文件,文件位置必须是服务器可写的。 而事实并非总是如此。例如,在Linux上,服务器可能将错误日志写为/var/log/mysqld.log,其中/ var / log由root拥有,而mysqld不可写。 在这种情况下,日志刷新操作无法创建新的日志文件。
要处理这种情况,您必须在重命名原始日志文件后手动创建具有适当所有权的新日志文件。 例如,以root用户身份执行以下命令:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值