一.概述

二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程,此日志对灾难时的数据恢复起着极其重要的作用。

  1.1 日志的位置和格式
    在my.cnf中可以查看log-bin的位置,mysqld将包含所有更新数据的sql命令写入日志文件,位置如下图所示:
    
    下面通过环境变量来查看当前binlog位置和状态

-- 通过环境变量来查看位置
SHOW VARIABLES LIKE '%log_bin%'

    
    下面查询所有binlog日志文件
    

    上图中mysql-bin.index是日志的索引文件,记录了最大的日志序号。

  1.2 日志的读取 

    由于日志以二进制方式存储,不能直接读取,需要用mysqlbinlog工具来查看。在33篇里有讲到开启binlog以及查看内容,这里不在详述。
       https://www.cnblogs.com/MrHSR/p/9555313.html

  1.3  日志的删除
              对于繁忙的事务处理系统,每天会生成大量日志内容,日志如果长时间不清除,将会对磁盘空间带来很大的浪费,因此定期删除日志是DBA维护mysql数据库的一个重要工作内容,下面介绍几种方法。    

    (1)  执行sql 的reset master; 命令,该命令将删除所有binlog日志,新日志编号从000001开始。请谨慎使用此语句,以确保不会丢失二进制日志文件数据。特别是在主从库上,导致日志不同步报错。清空所有日志如下:
      
    (2) 使用purge以日志编号为条件。例如:执行purge master logs to 'mysql-bin.000006'; 将删除06编号之前的所有日志,如下图所示:
      
      
    (3) 使用purge 以时间为条件。例如:执行purge master logs before '2018-09-06'; 删除9月6日之前的所有日志,如下图所示:
      
      
    (4) 使用expire_logs_days
      此参数设置在my.cnf中,是用来设置日志的过期天数,过了指定的天数后日志将会自动删除,这样有利于减少DBA的管理的工作量。如下所示:
      注意在my.cnf中参数如果设置错误。例如设置成expire_logs_day=1。 在重启mysql服务器,进程将启动失败,如下图所示:
      
      在my.cnf中设置,重新启动mysql服务 如下图所示:
      

-- 通过环境变量来查看位置
SHOW VARIABLES LIKE '%expire_logs_days%'

      

      现来查看日志,重启服务后日志只保留了一天,也就是今天9月7日的日志。如下图所示:
      

mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)的更多相关文章

  1. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...

  2. mysql 开发进阶篇系列 41 mysql日志之慢查询日志

    一.概述 慢查询日志记录了所有的超过sql语句( 超时参数long_query_time单位 秒),获得表锁定的时间不算作执行时间.慢日志默认写入到参数datadir(数据目录)指定的路径下.默认文件 ...

  3. mysql 开发进阶篇系列 38 mysql日志之错误日志log-error

    一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...

  4. mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志

    一.binlog 二进制其它选项 在二进制日志记录了数据的变化过程,对于数据的完整性和安全性起着非常重要作用.在mysql中还提供了一些其它参数选项,来进行更小粒度的管理. 1.1 binlog-do ...

  5. mysql 开发进阶篇系列 19 MySQL Server(innodb_flush_log_at_trx_commit与sync_binlog)

    一. innodb_flush_log_at_trx_commit 这个参数名称有个log,一看就是与日志有关.是指:用来控制缓冲区(log buffer)中的数据写入到日志文件(log file), ...

  6. mysql 开发进阶篇系列 16 MySQL Server(myisam key_buffer)

    一.概述 mysql 提供了很多参数来进行服务器的设置,当服务第一次启动的时候,所有启动参数值都是系统默认的.这些参数在很多生产环境下并不能满足实际的应用需求.在这个系列中涉及到了liunx 服务器, ...

  7. mysql 开发进阶篇系列 18 MySQL Server(innodb_buffer_pool_size)

    从这篇开始,讲innodb存储引擎中,对于几个重要的服务器参数配置.这些参数以innodb_xx 开头. 1. innodb_buffer_pool_size的设置 这个参数定义了innodb存储引擎 ...

  8. mysql 开发进阶篇系列 17 MySQL Server(key_buffer与table_cache)

    一.key_buffer 上一篇了解key_buffer设置,key_buffer_size指定了索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_reque ...

  9. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

随机推荐

  1. react组件回顶部

    在挂载更新里面判断滚动条的距离(滚动条不能overflow: auto 踩坑) componentDidMount(){ window.addEventListener('scroll' , ()=& ...

  2. win10安装MongoDB提示 the domain,user name and/or password are incorrect. Remember to use "." for the domain if the account is on the local machine.

    好心塞,提示输入不合法. 后来发现这样可以解决.退出安装.重新打开()因为我第一次打开时是没有卡在这一步的,只不过返回上一页时就一直卡在验证的页面了),默认,默认,默认,

  3. angular模拟web API

    现象:angular Cannot find module 'angular-in-memory-web-api'报错找不动“angular-in-memory-web-api”模块 解决:1.控制台 ...

  4. python3+scrapy 趣头条爬虫实例

    项目简介 爬取趣头条新闻(http://home.qutoutiao.net/pages/home.html),具体内容: 1.列表页(json):标题,简介.封面图.来源.发布时间 2.详情页(ht ...

  5. [模板]LCA

    洛谷P3379 注意:不能与LCA搞混(打久了就会发现两个还是有很大区别的) 位运算一定要加括号! for循环从0到logn还是从logn到0看当前的状态更适合哪种 第53行预处理一定要注意!(因为没 ...

  6. 结合OPENSIFT源码详解SIFT算法

    平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 参考博客:https://www.cnblogs.com/cql ...

  7. brew安装和换源

    命令行执行ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&q ...

  8. Oracle DBLINk的使用

    Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作 ...

  9. 获取input标签中file的内容

    1.直接获取文件中的内容: <form id="form" method="post" enctype="multipart/form-data ...

  10. POJ3422费用流

    Description: 一个N * N的奖赏地图,你可以走k次这个地图,但是每一次你走过一个有分的节点,你获得得分,但这个节点的得分都要清零,问你走k次地图的最大得分 Solution: 把得分变成 ...