zoukankan      html  css  js  c++  java
  • MySQL binlog

    binlog(The Binary Log)用于记录用户对数据库更新的SQL语句信息,例如数据库的增删改语句都会记录到binlog里,不会记录查询语句。默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。mysql的binlog日志是被设计用来作主从备份或者数据恢复用的。

    1. mysql提供了三种不同的binlog记录形式

    STATEMENT 语句模式(默认):日志中记录了所有的执行的sql语句,从库在执行的时候,重新执行相应sql即可。但是因为不记录语句执行的上下文,在从库执行某些语句(比如存储过程)的时候,有些语句不一定能成功执行导致丢失数据
    ROW 行模式:日志中记录每一行每个字段的变化,能清楚记录每行数据的变化历史,主从丢失数据的情况大大降低,但是缺点是会产生大量的binlog占用存储空间
    MIX 混合模式:在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种。比如遇到表结构变更的时候就会以 statement 模式来记录,如果 SQL 语句确实就是 update 或者 delete 等修改数据的语句,那么还是会记录所有行的变更。目前这种模式其实就是由mysql来选择到底用哪种模式记录。

    2. 如何开启binlog日志功能
    在mysql的配置文件my.cnf中,增加log_bin参数即可开启binlog日志,也可以通过赋值来指定binlog日志的文件名
    log_bin = /application/mysql/logs/dadong-bin

    3. 查看binlog情况

    show variables like 'log_bin'  //查看自己的mysql是否打开了binlog选项
    show variables like 'binlog_format' //查看binlog的格式
    show binary logs   //获取binlog列表
    show master logs   //获取binlog列表
    show master status //查看正在写入的binlog

    4. 查看binlog

    如果binlog的格式是STATEMENT,show binlog event的方式是可以看到sql语句的
    如果row模式的话只能通过mysqlbinlog工具进行查看,mysqlbinlog也是mysql dba常用的备份恢复数据的工具。该工具需要登录到数据库主机使用: mysqlbinlog [options] log_file

    ---------------------
    作者:frog4
    来源:CSDN
    原文:https://blog.csdn.net/frog4/article/details/80280149
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    线程池
    在Pycharm中使用GitHub
    “全能”选手—Django 1.10文档中文版Part3
    “全能”选手—Django 1.10文档中文版Part2
    “全能”选手—Django 1.10文档中文版Part1
    CSS3点点滴滴
    Django之Form、CSRF、cookie和session
    Django之路由、模板和模型系统
    jQuery 3.1 API中文文档
    html/css/js小技巧实例
  • 原文地址:https://www.cnblogs.com/anxiao/p/11081870.html
Copyright © 2011-2022 走看看