zoukankan      html  css  js  c++  java
  • (4.5)mysql备份还原——深入解析二进制日志(1)binlog的3种工作模式与配置

    (4.5)mysql备份还原——深入解析二进制日志(binlog)

    关键词:二进制日志,binlog日志

    0、建议

      (1)不建议随便去修改binlog格式(数据库级别)

      (2)binlog日志的清理

        【2.1】过期日志天数:show variables like 'expire_logs_days';

        【2.2】手工切换成新的日志文件:flush log;

      (3)手工直接清除:purge binary log to 'bin-log.00003'     详细参考:https://www.cnblogs.com/gered/p/10471673.html

      (4)全清reset master;

    1、binlog二进制日志简介

      这个文件记录了mysql数据库所有的dml,ddl语句事件(不包含select)。记录增删改,也可以记录SQL语句及行记录变化,还可以记录这些操作事件;

      三种日志的区别:

      (1)general log:记录数据库里的所有SQL操作记录

      (2)redo log:只记录innodb存储引擎的修改日志

      (3)binlog:只记录server层面内部的修改情况。--select /show 不记录

    2、开启binlog二进制日志有什么好处?

      (1)mysql主从复制,通过binlog实现数据复制

      (2)数据恢复:可以基于时间点恢复,以及根据其进行增量与差异备份

    3、mysql binlog的三种工作模式

     binlog_format

    【3.1】row level(默认级别:mysql5.7.6之后+8.0)

      日志中记录每一行数据修改的情况;

      (1)有点:可以更方便查看每一条数据修改的细节  (2)缺点:数据量比较大

      使用场景:希望数据最安全,复制强一致。

    【3.2】statement level(默认级别:Mysql5.7.6之前)

      记录每一条修改的SQL

      (1)优点:解决了数据量比较大的问题  (2)缺点:容易出现主从复制不一致

      使用场景:使用mysql的功能比较少,又不使用存储过程/触发器/函数

    【3.3】mixed(混合模式)

      结合 row level 与statement level的优点

      一般情况下都使用statement,但是如果隔离级别设置为RC,那么一般会使用row

      不建议使用,还不如使用row level

    4、配置mysql binlog二进制日志

    4.1】查看
    show variables like '%log_bin%';
    show variables like '%binlog%';
    show variables like '%server%';
    
    【4.2】参数配置
    [mysqld]
    server_id=3306  #服务ID,主从必须不一致。(建议数字:ip+端口)  5.7.3以后版本,必须加
    #目录必须存在且授权好,binlog为索引文件,实际文件会自动根据索引文件建立如binlog.0000001
    log_bin=/mysql/log/3306/binlog    
    log_bin_index=/mysql/log/3306/binlog.index     #不设置的话,会根据log_bin值名称自动生成binlog.index
    binlog_format='row' #(row,statement,mixed)     #3种模式
    binlog_rows_query_log_events=on #打开才能查看详细记录
    expire_logs_days=10 #表示自动删除10天以前的日志
    max_binlog_size=100M #表示单个二进制文件的最大值为100M,如果有大事务可能会超出最大值
    binlog_row_image=full #(full,minimal,noblob),分别表示binlog中内容全记录,只记录被操作的,和不记录二进制

    经典概念参考:http://www.zsythink.net/archives/1286#comments

  • 相关阅读:
    sqlplus时报Linux-x86_64 Error: 13: Permission denied
    thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 合并石子
  • 原文地址:https://www.cnblogs.com/gered/p/10687319.html
Copyright © 2011-2022 走看看