mysql5.7系列教程(三)日志

在这里插入图片描述
启动时的日志控制。
–log-output选项指定日志输出的目的地。此选项本身不启用日志。其语法是 : --log-output[=value,…]
1.如果–log-output给出一个值,该值应该是一个或多个单词TABLE(日志到表), FILE(日志到文件)或 NONE(不记录到表或文件)的逗号分隔列表。 NONE如果存在,优先于任何其他说明符。
2.如果–log-output省略,则默认日志目标为FILE。
在运行时记录控制。
general_log 常规查询日志 启用(ON)还是禁用(OFF:默认)
general_log_file
slow_query_log慢速查询日志 启用(ON)还是禁用(OFF:默认)
slow_query_log_file
开启和关闭:

SET GLOBAL general_log = 'OFF';
SET GLOBAL slow_query_log = 'OFF';

SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';

使用表来记录日志:

SHOW CREATE TABLE mysql.general_log;
SHOW CREATE TABLE mysql.slow_log;

Error Logging
配置 log-error
刷新 FLUSH ERROR LOGS, FLUSH LOGS

mv host_name.err host_name.err-old
mysqladmin flush-logs
mv host_name.err-old backup-directory

On Windows, use rename rather than mv.

binlog

注意:

  1. 写入二进制日志的语句中的密码被服务器重写,不会以纯文本形式出现。
  2. 不用于诸如SELECT或 SHOW不修改数据的语句
  3. 运行启用二进制日志记录的服务器会使性能稍微降低
  4. 只有完整的事务被记录或回读
    查询相关参数

mysql> show variables like ‘%log_bin%’;
在这里插入图片描述

cd /home/mysql&&mkdir log&&chgrp -R mysql log&&chown -R mysql log
【*这里要规划好目录,方便管理】
在这里插入图片描述
Binary Log其实是数据修改的“事件”的日志。binary log主要有2个目的:
1.用于复制,master上的binary log发送给slave服务。
2.数据恢复操作需要用到binary log。
启动binary log可以设置命令行配置
server_id=1 如果启用二进制日志记录,则必须指定 该选项,否则不允许服务器启动
log-bin[=mysql-bin]默认名称。log-bin若不显示指定存储目录,则默认存储在mysql的data目录下 pid-file选项默认为设备的host,然后加上-bin。如果在指定log-bin的时候加了后缀,那么会被自动忽略。

二进制日志格式
支持的值为: --binlog-format=type
在这里插入图片描述
这被称为基于语句的复制(通常缩写为 SBR)STATEMENT
这被称为基于行的复制(通常缩写为 RBR)ROW
基于语句和基于行的日志记录的混合 MIXED

mysql> SET GLOBAL binlog_format = 'STATEMENT';
mysql> SET GLOBAL binlog_format = 'ROW';
mysql>SET GLOBAL binlog_format = 'MIXED';

mysql> SET SESSION binlog_format = 'STATEMENT';
mysql> SET SESSION binlog_format = 'ROW';
mysql>SET SESSION binlog_format = 'MIXED';

relay_log

中继日志 show variables like ‘%relay_log%’;
在这里插入图片描述
relay_log_info_repository
该变量决定从站在继电器日志中的位置是写入FILE (relay-log.info)还是 写入TABLE (mysql.slave_relay_log_info)
如使用多通道复制必须使用 TABLE

【*这里要规划好目录,方便管理】

#cd /home/mysql&&mkdir relaylog&&chgrp -R mysql relaylog&&chown -R mysql relaylog
#vim /etc/my.cnf
relay_log=/home/mysql/relaylog/localhost-relay-bin

在这里插入图片描述
–relay-log-purge={0|1}
不再需要时,立即禁用或启用自动清除中继日志。默认值是1(启用)
–relay-log-recovery={0|1}
服务器启动后立即启用自动中继日志恢复。恢复过程将创建一个新的中继日志文件,将SQL线程位置初始化为此新的中继日志,并将I / O线程初始化为SQL线程位置。继续从主站读取中继日志。这应该在复制从站意外停止之后使用,以确保不会处理可能损坏的中继日志。默认值是0(禁用)。

日志维护

在Linux(Red Hat)安装上,您可以使用此 mysql-log-rotate脚本。如果您从RPM分发版安装了MySQL,则应该自动安装此脚本。如果使用二进制日志进行复制,请小心使用此脚本。除非您确定其内容已被所有从站处理,否则不应删除二进制日志。
在其他系统上,您必须自己安装一个简短的脚本,cron开始处理日志文件。

对于binlog可以设置expire_logs_days自动过期binary log。如果有复制存在,设置的值不应该小余slave的延迟,通过flush logs手动让binary log启动一个新的日志文件。参考
定期清理:
set global expire_logs_days = 10;
禁用:
SET sql_log_bin=0

对于relay_log
reset slave;
1、删除slave_master_info ,slave_relay_log_info两个表中数据;
2、删除所有relay log文件,并重新创建新的relay log文件;
3、不会改变gtid_executed 或者 gtid_purged的值

按需清理日志:
PURGE BINARY LOGS
会在指定的日志文件名称或日期之前删除日志索引文件中列出的所有二进制日志文件。

PURGE BINARY LOGS TO'mysql-bin.010';
PURGE BINARY LOGS BEFORE'2008-04-02 22:46:26';
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值