记一次mysql binlog 撑爆磁盘处理过程

  1. mysql> show binary logs; #获取binlog文件列表 在这里插入图片描述
  2. mysql> show master status; #查看当前正在写入的binlog文件(除了这个文件其他的都可以删除) 在这里插入图片描述
  3. mysql> purge binary logs to “mysql-bin.000012”; 这里清楚12之前的文件(这里删除后再mysql binlog 存放目录下对应的文件会被删除,mysql-bin.index 文件对应的名字也会被清除)
    在这里插入图片描述
  4. mysql> show variables like ‘expire_logs_days’; 查看 binlog自动删除规则
    ±-----------------±------+
    | Variable_name | Value |
    ±-----------------±------+
    | expire_logs_days | 0 |
    ±-----------------±------+
    1 row in set (0.00 sec)
    此处为0,意思是不限制
  5. mysql> set global expire_logs_days = 3; 动态设置binlog日志只保留3天
    在这里插入图片描述
  6. 修改mysql配置文件my.cnf,永久修改binlog保留天数
    在这里插入图片描述
    空闲状态重启mysql生效 。
  7. 其他mysql 命令
    mysql> PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY); 删除1天前的binlog日志文件
    mysql> show binlog events; 只查看第一个binlog文件的内容(会有很多内容输出,具体根据binlog日志大小而定)
    mysql> show binlog events in ‘mysql-bin.000002’; 查看指定binlog文件的内容
    在这里插入图片描述
  8. 用mysqlbinlog工具查看:
    [root@hd3 ~]# mysqlbinlog --start-datetime=‘2016-08-02 00:00:00’ --stop-datetime=‘2016-08-03 23:01:01’ -d hadoop /var/lib/mysql/mysql-bin.000001
  9. 如果需要查询2017-09-17 07:21:09到2017-09-19 07:59:50 数据库为geeRunner 的操作日志,输入如下命令将数据写入到一个备用的txt即可
    mysqlbinlog --no-defaults --database=geeRunner --start-datetime=“2017-09-17 07:21:09” --stop-datetime=“2017-09-19 07:59:50” binlogs.000080 > sanjiaomao.txt

猜你喜欢

转载自blog.csdn.net/myy1066883508/article/details/105701589