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了!!!!

 

 

 

 

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