zoukankan      html  css  js  c++  java
  • mysql的binlog和slow_log慢日志

    redo
    
    undo
    
    锁
    -----------------------------------------
    日志管理
    
    log-error=/var/log/mysql.log
    
    
    二进制日志的“总闸”
    作用:
    1、是否开启
    2、二进制日志路径/data/mysql/
    3、二进制日志文件名前缀mysql-bin  
    4、文件名以"前缀".000001~N
    log-bin=/data/mysql/mysql-bin  
    
    二进制日志的“分开关”
    只有总闸开启才有意义,默认是开启状态。
    我们在有些时候会临时关闭掉。
    只影响当前会话。
    sql_log_bin=1/0
    
    
    二进制日志的格式
    statement,语句模式:
    记录信息简洁,记录的是SQL语句本身。但是在语句中出现函数操作的话,有可能记录的数据不准确。
    5.6中默认模式,但生产环境中慎用,建议改成row。
    
    row,行模式
    表中行数据的变化过程。
    记录数据详细,对IO性能要求比较高
    记录数据在任何情况下都是准确的。
    生产中一般是这种模式。
    5.7以后默认的模式。
    
    mixed,混合模式
    
    经过判断,选择row+statement混合的一种记录模式。
    一般不用。
    
    binlog的查看方式:
    1、查看binlog原始信息
    [root@db01 mysql-5.6.36]# mysqlbinlog mysql-bin.000001 
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
    
    mysqbin   mysql-bin.000002   
    
    2、在row模式下,翻译成语句
    mysqlbinlog --base64-output='decode-rows' -v   mysql-bin.000002 
    
    3、查看binlog事件
    show binary logs; 所有在使用的binlog信息
    
    show binlog events in ''
    
    4、如何截取binlog内容,按需求恢复(常规思路)
    (1)、show binary logs;   show master status;
    (2)、show binlog events in '' 从后往前看,找到误操作的事务,判断事务开始position和结束position
    (3)、把误操作的剔除掉,留下正常操作到2个sql文件中
    (4)、先测试库恢复,把误操作的数据导出,然后生产恢复。
    
    遇到的问题:
    1、时间长
    2、对生产数据有一定影响,有可能会出现冗余数据
    3、
    
    有什么好的解决方案。
    1、flashback闪回功能(扩展)
    2、通过备份,延时从库
    
    
    --------------------------------
    SET GLOBAL expire_logs_days = 7;
    
    PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;
    
    PURGE BINARY LOGS TO 'mysql-bin.000010';
    
    reset master   
    ------------------------
    慢日志 slow log
    
    调优过程中的工具日志。
    
    统计收集慢得语句
    
    
    ------
    
    
    
    
    设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s,现有版本可以指定零点几秒
    long_query_time 
    指定是否开启慢查询日志
    slow_query_log 
    指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
    slow_query_log_file 
    查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
    min_examined_row_limit
    不使用索引的慢查询日志是否记录到索引
    log_queries_not_using_indexes
    
    
    
    慢日志扩展:
    Anemometer实现pt-query-digest 图形化
    https://www.cnblogs.com/xuanzhi201111/p/4128894.html
    
  • 相关阅读:
    call和apply的区别
    淘宝镜像(cnpm)的安装和使用
    文件包含漏洞
    vue简单的日历
    微信小程序(mpvue)—解决视频播放bug的一种方式
    vue 异步组件
    vuex的学习笔记
    vue2.0 添加监听滚动事件
    jquery tmpl生成导航
    vue 控制视图
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8081201.html
Copyright © 2011-2022 走看看