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
    
  • 相关阅读:
    js 变速动画函数
    js 获取滚动条事件
    js 获取任意一个元素的任意一个样式属性的值
    js 三大事件(鼠标.键盘.浏览器)
    关于数组的一些方法
    mvc获取时间戳
    html5响应式设置<meta>
    jq遍历url判断是否为当前页面然后给导航上色
    mvc正则@符号js报错解决办法
    无法在提交表单前通过ajax验证解决办法
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8081201.html
Copyright © 2011-2022 走看看