binlog日志文件所做的操作,分析一下不就知道。

解决方案 »

  1.   

    操作是比较多的,关键是如何减少文件尺寸,比如把部分不需要日志的表转换为MyISAM?
      

  2.   

    这个是数据文件,不是日志文件,将innodb_file_per_table开启,使用独立表空间,每个表有个.ibd文件, ibdata1就只会存一些共享的信息,不会很大
      

  3.   

    没有直接的办法缩小,估计是你的数据库中有频繁的删除添加操作,MYSQL的INNODB在记录删除或者表删除的时候不会自动释放IBDATA1所占用的磁盘空间。减少尺寸的方法可是,mysqldump备份所有数据库,停数据库,删除ibdata1文件,重启MYSQL服务,然后再导入备份数据。
      

  4.   

    Do a mysqldump of all databases, procedures, triggers etc
    Drop all databases except the mysql database
    Stop mysql
    Delete ibdata1 and ib_log files
    Start mysql
    Restore from dump
      

  5.   

    直接删除ibdata1文件之后,要重启MYSQL服务时就会出错,说是遇到问题,无法启动
      

  6.   

    删除IBDATA1的前提是备份所有数据库,并删除除了mysql以外的所有数据库.
    其实,并不建议删除ibdata1文件,楼主只是担心它一直增长,有增长也是正常的,你可以用多个ibdata文件。第一个满了,就会写到第二个。
    innodb_data_file=ibdata1:25M;ibdata2:10M;ibdata3:10M:autoextend
      

  7.   

    1. 用mysqldump等工具导出数据
    2. 停止 mysqld
    3. 删除ibdata*, ib_logfile* 文件
    4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)
    5. 将到出来的数据导回去,体积才会减小。 
      

  8.   


    正解,开启独立表空间后,经常做一下optimize table就可以回收被删除记录占用的碎片空间, ibdata1文件也不会再快速增长了