zoukankan      html  css  js  c++  java
  • Binlog_master

    二进制日志

    • 记录导致数据改变或潜在导致数据改变的SQL语句
    • 记录已提交的日志
    • 不依赖于存储引擎类型
    • 功能:通过“重放”日志文件中的事件来生成数据副本
    • 注意:建议二进制日志和数据文件分开存放

    二进制日志记录三种格式

    • 基于“语句”记录:statement,记录语句,默认模式( MariaDB 10.2.3 版本以下 ),日志量较少
    • 基于“行”记录:row,记录数据,日志量较大
    • 混合模式:mixed, 让系统自行判定该基于哪种方式进行,默认模式( MariaDB 10.2.4及版本以上)

    格式配置

      • MariaDB [hellodb]> show variables like 'binlog_format';
      • +---------------+-------+
      • | Variable_name | Value |
      • +---------------+-------+
      • | binlog_format | MIXED |
      • +---------------+-------+
      • 1 row in set (0.001 sec)

    二进制日志文件的构成

    • 有两类文件
      • 日志文件:mysql|mariadb-bin.文件名后缀,二进制格式
        如: mariadb-bin.000001
      • 索引文件:mysql|mariadb-bin.index,文本格式

    二进制日志相关的服务器变量:

    • sql_log_bin=ON|OFF:#是否记录二进制日志,默认ON
    • log_bin=/PATH/BIN_LOG_FILE:#指定文件位置;默认OFF,表示不启用二进制日志功能,上述两项都开
      启才可
    • binlog_format=STATEMENT|ROW|MIXED:#二进制日志记录的格式,默认STATEMENT
    • max_binlog_size=1073741824:#单个二进制日志文件的最大体积,到达最大值会自动滚动,默认为1G
      • 说明:文件达到上限时的大小未必为指定的精确值
    • sync_binlog=1|0:#设定是否启动二进制日志即时同步磁盘功能,默认0,由操作系统负责同步日志到磁盘
    • expire_logs_days=N:#二进制日志可以自动删除的天数。 默认为0,即不自动删除

    二进制日志相关配置

    查看mariadb自行管理使用中的二进制日志文件列表,及大小

    • SHOW {BINARY | MASTER} LOGS

    查看使用中的二进制日志文件

    • SHOW MASTER STATUS

    查看二进制文件中的指定内容

    • show binlog events in 'mysql-bin.000001' from 6516 limit 2,3

    mysqlbinlog:二进制日志的客户端命令工具

    mysqlbinlog [OPTIONS] log_file…
    --start-position=# 指定开始位置
    --stop-position=#
    --start-datetime= #时间格式:YYYY-MM-DD hh:mm:ss
    --stop-datetime=
    --base64-output[=name]
    
    例如:
    
    mysqlbinlog --start-position=678 --stop-position=752 /var/lib/mysql/mariadbbin.000003 -v
    
    

    二进制日志事件的格式:

    # at 328
    #151105 16:31:40 server id 1 end_log_pos 431 Query thread_id=1
    exec_time=0 error_code=0
    use `mydb`/*!*/;
    SET TIMESTAMP=1446712300/*!*/;
    CREATE TABLE tb1 (id int, name char(30))
    /*!*/;
    事件发生的日期和时间:151105 16:31:40
    事件发生的服务器标识:server id 1
    事件的结束位置:end_log_pos 431
    事件的类型:Query
    事件发生时所在服务器执行此事件的线程的ID:thread_id=1
    语句的时间戳与将其写入二进制文件中的时间差:exec_time=0
    错误代码:error_code=0
    
    

    清除指定二进制日志

    PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }
    例如
    PURGE BINARY LOGS TO 'mariadb-bin.000003'; #删除mariadb-bin.000003之前的日志
    PURGE BINARY LOGS BEFORE '2017-01-23';
    PURGE BINARY LOGS BEFORE '2017-03-22 09:25:30';
    
    
    

    删除所有二进制日志,index文件重新记数

    RESET MASTER [TO #]; #删除所有二进制日志文件,并重新生成日志文件,文件名从#开始记数,默认从
    1开始,一般是master主机第一次启动时执行,MariaDB10.1.6开始支持TO #
    
    
  • 相关阅读:
    scala 获取当前时间的两种方式
    log4j配置输出日志文件
    scala读取jar包外配置文件的方式
    scala 异常处理机制
    IDEA 安装scala插件
    第2部分 Elasticsearch查询-请求体查询、排序
    第1部分 Elasticsearch基础
    2.css
    1.html
    Linux搭建Nexus仓库+高可用方案
  • 原文地址:https://www.cnblogs.com/Justin0717/p/11963084.html
Copyright © 2011-2022 走看看