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

          主站蜘蛛池模板: 炎陵县| 邹平县| 惠安县| 虹口区| 福建省| 天柱县| 迁安市| 青岛市| 泰来县| 兰西县| 尚志市| 宝丰县| 安福县| 新泰市| 瓦房店市| 三门县| 长宁区| 沧源| 万载县| 丰台区| 东莞市| 滨海县| 尉犁县| 明光市| 阿合奇县| 大足县| 麦盖提县| 金溪县| 美姑县| 乌拉特中旗| 拜城县| 孝义市| 包头市| 饶河县| 抚松县| 七台河市| 克什克腾旗| 新泰市| 贵溪市| 建昌县| 军事|