mysql innodb ibdata1 文件过大处理

ibdata1 是什么文件

 ibdata1是一个用来构建innodb系统共享表空间的文件,这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话,该文件则不一定包含所有表的数据。当innodb_file_per_table选项打开的话,新创建表的数据和索引则不会存在系统表空间中,而是存放在各自表的.ibd文件中。
显然这个文件会越来越大,innodb_autoextend_increment选项则指定了该文件每次自动增长的步进,默认是8M。

 

ibdata1文件中包含的数据并不是我们都需要的,比如撤销日志,这些日志是可以定期删除的。但是之前是放在一个文件中,所以不好删除。因此最好的办法是把ibdata中需要存放的内容进行分开存放,除了
数据文件可以保存,其他不是非必要文件都单独存放并且定时清理。这样可以缓解数据库服务器磁盘的压力。

 

解决办法:

(1)初始配置:找到my.cnf配置文件,在[mysqld]下添加

innodb_file_per_table=1      #关键是将此项配置打开,这样以后每个数据库都有自己的文件存储文件了

(2)如果ibdata1已经很大了

   1、备份当前数据库(mysql、information_schema和performance_schema这三个系统表可以不用管)

   2、停止数据库service mysqld stop,删除数据库目录的ibdata1和ib_logfile*文件

   3、重启数据库,还原数据

   到此就ok了!!!!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章