mysql binlog nodejs_mysql工具类日志(binlog、slowlog、errorlog)

mysql工具类日志(binlog、slowlog、errorlog)

mysql日志管理

参考https://www.jianshu.com/p/00c54d2832ed

日志设置

工具日志,不同于undo log(事务等)

错误日志(排错、主从错误)–log-error,默认打开,路径datadir/主机名.err,文本格式,重点关注[ERROR]

慢查询日志(优化)–slow_query_log、–long_query_time

二进制日志(主从)–log-bin、–expire-logs-days

目录授权chown -R mysql.mysql /tmp/{errlog,binlog}

一般会定制这些日志的路径,避免数据盘出错,日志也拿不到

查看错误日志路径:select @@log_error,默认应该在./主机名.err,我的在stderr

修改到mysql.mysql有权限的路径,在/etc/my.cnf的[mysqld]下添加log_error=自定义错误日志路径,如/tmp/errlog/mysql.err或mysql.log(自动创建文件),重启生效

二进制日志(binlog),sql层逻辑日志,记录sql语句操作,默认关闭

主从复制依赖binlog

数据恢复依赖binlog

开启,需要配置参数(/etc/my.cnf的[mysqld]),重启生效:

server_id= 主从复制用,但5.7开始,开启binlog需要配置server_id,1-65535

log_bin= 设置为1,打开binlog功能,生成在默认位置,也可以指定路径如/tmp/binlog/mysql-bin,会打开binglog功能,且按指定路径和名称前缀生存二进制日志,也可以单独设置log_bin和log_bin_basename参数

其中/tmp/binlog是路径,必须mysql.mysql有权限

mysql-bin是前缀,生成日志名称mysql-bin.000001,mysql-bin.000002等,mysql只能使用一个,关注编号最大那个,其他是历史文件(可以设置自动清除的策略),每次重启会生成并使用新的binlog,其中mysql-bin.index列出所有二进制日志文件名称,相当于索引

上面2给参数必须设置,下面可选,binlog_format=row,5.7版本默认配置就是row,可以不设置

innodb_flush_log_at_trx_commit=0:每秒一次将Log Buffer中数据写入到Log File中,并且Flush到磁盘。事务提交不会主动触发写磁盘操作。

innodb_flush_log_at_trx_commit=1:每次事务提交时将Log Buffer数据写入到Log File中,并且Flush到磁盘。

innodb_flush_log_at_trx_commit=2:每次事务提交时将Log Buffer数据写入到Log File中,但不立即Flush到磁盘,MySQL会每秒一次刷新到磁盘。

由于进程调度问题,每条一次操作不能保证每一秒都执行一次。

当innodb_flush_log_at_trx_commit=0时,最近一秒的事务日志存在MySQL的Log Buffer中,无论时MySQL实例停止还是MySQL服务器宕机,都会导致最近一秒的事务日志丢失。

当innodb_flush_log_at_trx_commit=1时,最近一秒的事务日志存在操作系统的文件缓存中,MySQL实例停止不会导致事务日志丢失,但MySQL服务器宕机会导致最近一秒事务日志丢失。

上述的一秒一次刷新,取决于参数innodb_flush_log_at_timeout默认值为1,DDL或其他InnoDB内部操作并不受参数innodb_flush_log_at_trx_commit的限制。

二进制日志概述

二进制日志记录:变更类操作日志,DML增删改(数据)、DDL(增删改表)、DCL(修改权限)

DDL和DCL(如建表create database 库名、alter、drop等),以语句的方式原样记录

DML语句(增删改),记录已提交的事务的SQL语句(未提交或回滚的事务不记录)&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值