分享java帶來的快樂

          我喜歡java新東西

          縮小mysql數據庫的ibdata1文件

          ibdata1是mysql使用InnoDB引擎的時候需要使用的文件。這個文件有的時候會變得很大,并且在你刪除數據的時候,文件也不減小。今天就碰到了一次,導致所有的/var分區都被占用光了。
           

          ibdata1是mysql使用InnoDB引擎的時候需要使用的文件。這個文件有的時候會變得很大,并且在你刪除數據的時候,文件也不減小。今天就碰到了一次,導致所有的/var分區都被占用光了。

          下面是處理超大ibddata1文件的步驟:

          1. 對每張表使用單獨的innoDB文件, 修改/etc/my.cnf文件

          [mysqld]

          innodb_file_per_table

          目的很明確,我們可以單獨刪除每個文件

          2. 導出所有的數據,重建數據庫,然后恢復數據:

          # /usr/bin/mysqldump -R -q --all-databases > /temp/all.sql

          # service mysqld stop

          # rm -fr /var/lib/mysql/*

          # /usr/bin/mysql_install_db

          # service mysqld restart

          # mysql < /tmp/all.sql

          3. /var/lib/mysql的每個數據庫下面,都有會很多的.ibd文件。這些分散的.ibd文件取代了原來的那個ibddata1。

          以后刪除數據庫的時候,直接刪除某個數據庫的目錄就可以了。

          ————-華麗的分隔符————-

          mysql 使用的引擎:

          mysql> show engines;

          +------------+---------+----------------------------------------------------------------+

          | Engine     | Support | Comment                                                        |

          +------------+---------+----------------------------------------------------------------+

          | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         |

          | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      |

          | InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     |

          | BerkeleyDB | YES     | Supports transactions and page-level locking                   |

          | BLACKHOLE  | NO      | /dev/null storage engine (anything you write to it disappears) |

          | EXAMPLE    | NO      | Example storage engine                                         |

          | ARCHIVE    | NO      | Archive storage engine                                         |

          | CSV        | NO      | CSV storage engine                                             |

          | ndbcluster | NO      | Clustered, fault-tolerant, memory-based tables                 |

          | FEDERATED  | NO      | Federated MySQL storage engine                                 |

          | MRG_MYISAM | YES     | Collection of identicalMyISAM tables                          |

          | ISAM       | NO      | Obsolete storage engine                                        |

          +------------+---------+----------------------------------------------------------------+

          12 rows in set (0.00 sec)

          For InnoDB tables, OPTIMIZE TABLE is mapped to ALTER TABLE, which rebuilds the table to update index statistics and free unused space in the clustered index.

          所以不會直接來減少ibdata的文件尺寸。

          減少ibdata的方法如下

          - 1. 用mysqldump等工具導出數據

          - 2. 停止 mysqld

          - 3. 刪除ibdata*, ib_logfile* 文件

          - 4. 重新啟動 mysqld(這時mysqld就會自動創建 idbdata*, ib_logfile* 文件)

          - 5. 將到出來的數據導回去,體積才會減小。

          posted on 2013-09-12 15:02 強強 閱讀(2461) 評論(0)  編輯  收藏 所屬分類: mysql

          主站蜘蛛池模板: 贵德县| 巨鹿县| 紫阳县| 虹口区| 松原市| 阿克苏市| 个旧市| 德清县| 枝江市| 鄂州市| 崇左市| 石泉县| 宜兰县| 泗阳县| 闽侯县| 淮滨县| 清镇市| 美姑县| 常宁市| 葫芦岛市| 白城市| 吕梁市| 克拉玛依市| 榆树市| 镇康县| 合江县| 兴安盟| 略阳县| 日照市| 灵台县| 西平县| 陕西省| 大安市| 呈贡县| 荃湾区| 杭锦后旗| 德安县| 溆浦县| 汕尾市| 郸城县| 沂源县|