分享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 強強 閱讀(2462) 評論(0)  編輯  收藏 所屬分類: mysql

          主站蜘蛛池模板: 岳阳市| 汶川县| 昌吉市| 满城县| 文山县| 来安县| 图片| 大田县| 朝阳市| 哈尔滨市| 大名县| 左云县| 祁阳县| 太白县| 天津市| 辽宁省| 平湖市| 伊金霍洛旗| 乌鲁木齐市| 澄江县| 呈贡县| 吉首市| 莱州市| 行唐县| 和静县| 鄢陵县| 安图县| 天峨县| 桐乡市| 日土县| 乌拉特前旗| 景东| 林口县| 宝鸡市| 东至县| 衡南县| 梓潼县| 乌恰县| 长治县| 阿荣旗| 沈阳市|