mysql日志管理

一、错误日志

  1.作用:排查mysql运行时的故障

  2.自定义错误文件日志位置

   在配置文件中,加入 log_error =文件目录,在重启数据库

  3.查看错误文件位置

    select@@log_error;

二、二进制日志

  1.作用:主从依赖二进制文件

      数据恢复靠二进制文件、

  2.开启二进制文集

    在配置文件中加入

    log_bin=文件目录位置

    server_id=6

  3.查看二进制命令

      查看二进制文件是否开启:show variables like 'log_bin';

      查看二进制文件列表;show binary logs;

      查看当前二进制文件是哪个:show master status;

      刷新二进制文件:flush logs;

      查看某个二进制文件的事件:show binlog evrnts in '日志文件名'

三、二进制文件记录什么

    1.记录了数据库所有变更类的操作,DML,DCL,DDL

     对于DDL.DCL:以语句的方式原模原样的记录

      对于DML;

         (1)记录已提交的事务

         (2)DML的格式有statement,row,mixed通过binlog_format参数控制:

            statement(SBR);语句模式记录日志,做什么命令,就记录什么

            row(RBR):行模式,数据行的变化

            mixed(MBR):混合模式,以上俩种模式混合使用

      例题:SBR和RBR什么区别怎么选择?

             SBR:可读性较强,对于范围操作日志量少,可能会出现记录不准确的情况

             RBR:可读性弱,对于范围操作日志量大,不会出现错误

                高可用环境的新特性要依赖于RBR

 

四、二进制文件记录单元  

  1.事件二进制日志的最小单元

  2.mysqlbinlog命令的一些参数

    (1)-d  指定某个数据库到二进制日志信息 

    mysqlbinlog -d ccc(数据库名) mysql-bin.000001

    (2)-D 再用二进制文件恢复数据时,也会产生二进制文件,禁用二进制日志

    mysqlbinlog-D mysql-bin.000001

  3.截取日志文件

    mysqlbinlog --start-position=事件开始位置 --stop-position=事件结束位置  日志文件目录位置 >/tmp/bin.sql;

  注意:在恢复数据时,先set sql_log_bin=0临时关闭日志文件,防止恢复时产生日志信息,恢复结束后 set sql_log_bin=1

五、binlog的gtid记录模式管理

  1.gtid介绍

   对于binlog来说,每个事务都会产生一个gtid号,ddl,dcl一个event就是一个事务,就会有gtid,对于dml

   从begin到commit就是一个事务,就会有gtid

  2.gtid开启与配置

   vim /etc/my.cnf

   gtid-mode=on

   enforce-gtid-consistency=true

  3.gtid的幂等性

   如果拿有gtid的日志去恢复数据时,会检查系统是否有相同的gtid号,如果有则跳过,会影响主从复制和binlog恢复

  4.参数说明

   --skip-gtids

   

        

            

原文地址:https://www.cnblogs.com/shi-san/p/13485333.html