• mysql清理和关闭binlog日志


    由于某个业务有大量的数据写入数据库,大概300/S,日夜不停,导致数据库占用磁盘空间过大,现整理解决思路
    1.字段设置比较随意,导致一般的数据存储浪费,修改字段为更小的单位
    2.Mysql为InnoDB模式,但是业务单纯的写入和读取数据库,没有涉及事务,修改模式为Myisam
    3.大量的写入会生成大量的binglog文件,Mysql默认30天删除,设置binlog的自动删除机制或者关闭binglog日志

    操作步骤:

    1.登录mysql数据库,mysql -uroot –p
    2.查看binlog是否开启,log_bin的状态未ON,表明binlog日志开启

     3.show binary logs;

     4.删除binlog日志文件,切勿删除正在使用的binlog!!(所以删除老年的即可,不要全删)
            不要轻易手动去删除binlog,会导致binlog.index和真实存在的binlog不匹配,使用PURGE,根据自己需求改写下面命令
            //删除1天前的binlog日志文件

    1
    PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY);

            //将指定时间之前的binlog清掉

    1
    PURGE BINARY LOGS BEFORE '2020-11-25 13:09:51';

            //将bin.000088之前的binlog清掉:

    1
    PURGE BINARY LOGS TO 'bin.000088';

    5.设置binlog的过期时间 

      binlog失效日期参数为 binlog_expire_logs_seconds,默认2592000(30天)过期,可以设置 604800(7天)

     操作:

           //显示binlog的过期时间

    1
    show variables like '%expire%';

           //设置过期时间

    1
    set global binlog_expire_logs_seconds=60*60*24;

           //手动刷新日志

    1
    flush logs;

    6.设置过期时间也可以直接修改my.ini配置文件,关闭修改再重启
       expire_logs_days = 7 #自动删除15天前的日志。默认值为0,表示从不删除。  

    7.关闭binlog
                    操作:8.0版本情况下,关闭mysql服务,找到my.ini, 在[mysqld] 下添加 skip-log-bin,然后重启MySQL,不可以不关闭的情况 下,修改重启。
                    在关闭后,可以下使用reset master把现有的binlog都删除掉,因为binlog关闭了,不会有正在使用的binlog,所以没问题。
     ps:
                    1.如果找不到my.ini,可以手动打开显示C盘的隐藏文件选项(不会百度),就会出现ProgramData文件夹,找到mysql文件夹,就可以找到my.ini文件
                     2.使用RESET MASTER可以删除任何二进制日志文件及其相关的二进制日志索引文件,从而使主数据库恢复到开始二进制日志记录之前的状态
  • 相关阅读:
    win7系统宽带自动断开怎么解决【系统天地】
    Win10系统修复受损文件教程【系统天地】
    win10如何加快开机速度【系统天地】
    Netty核心概念(5)之Channel
    Netty核心概念(4)之Bootstrap
    漫谈NIO(3)之Netty实现
    漫谈NIO(2)之Java的NIO
    漫谈NIO(1)之计算机IO实现
    机器学习实战(二)决策树
    机器学习实战(一)k-近邻算法
  • 原文地址:https://www.cnblogs.com/interdrp/p/15968352.html
Copyright © 2020-2023  润新知