• 第六章 mysql日志


    第六章 mysql日志

    一 错误日志

     错误日志的默认存放路径是 mysql 存放数据的地方  hostname.err

    1. 修改错误日志存放路径

    [mysqld]
    log-error=/data/mysql/mysql.log

    2. 查看配置命令

    show variables like "%log_error%";

    3. 错误日志作用

    记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志

    二 一般查询日志

    1. 开启一般查询日志

    [mysqld]
    general_log=on
    general_log_file=/data/mysql/server2.log

    2. 查看配置命令

    show variables like '%gen%';

    3. 一般查询日志作用

    记录mysql所有执行成功的SQL语句信息,可以做审计用,但很少开启

    三 二进制日志

    1. 二进制日志都记录了什么

    已提交的数据记录, 以event的形式记录到二进制文件中

    2. 二进制记录格式的3种模式

    row 行模式,即数据行的变化过程 一般都是用这种
    ②  statement 语句模式 可能不准确 比如now()
    ③  mixed: 以上两者的混合模式

    3. binlog的作用

    备份恢复   复制

    四 二进制日志管理

    1.  开启二进制日志

    ① 会话级别临时关闭

    set   sql_log_bin=0

    ②全局打开二进制日志

    [mysqld]
    log-bin=/data/mysql/mysql-bin

    2.二进制日志记录格式(建议是row)

    [mysqld]
    binlog-format=ROW

    3. 日志同步机制

    [mysqld]
    sync_binlog=1

    4.  二进制日志需要打开的配置

    vim /etc/my.cnf
    
    log-bin=/data/binlog
    binlog_format=row
    sync_binlog=1

    5. 查看设置

    -- 查看binlog日志是否开启
    show variables like '%log_bin%';
    
    -- 查看模式是否为row
    show variables like '%binlog_format%';

    6. 通过二进制日志修复数据

    show binary logs;
    show binlog events in 'my-bin.000002'
    show master status;
    mysqlbinlog  --base64-output=decode-rows -v my-bin.000002
    mysqlbinlog --start-position=120 --stop-position=721   my-bin.000002
    mysqlbinlog --start-position=340 --stop-position=721 my-bin.000002 >/tmp/binlog.sql

    读取二进制日志 修复数据 

    source /tmp/binlog.log

    7. 删除二进制日志

    默认情况下,不会删除旧的日志文件。
    根据存在时间删除日志:
    SET GLOBAL expire_logs_days = 90;
    …或者…
    PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;
    根据文件名删除日志:
    PURGE BINARY LOGS TO 'mysql-bin.000010';
    
    reset master;

    五 慢日志

    1. 功能

    slow-log,记录所有条件内的慢的SQL语句
    优化的一种工具日志。帮我们定位问题。
    是将mysql服务器中影响数据库性能的相关SQL语句记录到日志文件
    通过对这些特殊的SQL语句分析,改进以达到提高数据库性能的目的。

    2. 慢日志设置

    long_query_time --设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s
    slow_query_log  --指定是否开启慢查询日志
    slow_query_log_file --指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
    min_examined_row_limit --查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
    log_queries_not_using_indexes --不使用索引的慢查询日志是否记录到索引
    [mysqld]
    slow_query_log=1 
    slow_query_log_file=/data/slow/slow.log
    long_query_time=0.5
    log_queries_not_using_indexes

    3. 处理慢日志

    mysqldumpslow命令

    mysqldumpslow -s c -t 10 /data/slow/slow.log
    mysqldumpslow -s at -t 10 /data/slow/slow.log

    这会输出记录次数最多的10条SQL语句,
    其中:
      -s 是表示按照何种方式排序
      c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序。
      ac、at、al、ar,表示相应的倒叙。
      -t 是top n的意思,即为返回前面多少条的数据;


  • 相关阅读:
    51nod 1254 最大子段和 V2
    51nod 1115 最大M子段和 V3
    51nod 1053 最大M子段和 V2
    51nod 1052 最大M子段和
    51nod 1051 最大子矩阵和
    web.config或App.config中AttachDBFilenamex相对路径问题
    [转帖]unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(主要讲区别)
    unity3d 第一人称脚本解释MouseLook
    unity3d-游戏实战突出重围,整合游戏
    unity3d-游戏实战突出重围,第四天 添加角色
  • 原文地址:https://www.cnblogs.com/augustyang/p/11528701.html
Copyright © 2020-2023  润新知