Webminのコントロールパネルにログインすると、実質的にすべてのディスク領域がいっぱいになっていることに気付きました。システムで最大の10個のファイル/ディレクトリを検索したところ、ibdata1と呼ばれるファイルが約94GBのスペースを占めていることがわかりました。それは/ var/lib/mysqlディレクトリにあります。
Ibdata1は何をしますか?削除しても大丈夫ですか?私の仮定では、それはある種のダンプであると考えられていますが、それは単なる乱暴な推測です。
ファイル_ibdata1
_は、InnoDBインフラストラクチャのシステムテーブルスペースです。
InnoDBに不可欠な情報のクラスがいくつか含まれています
InnoDBユニバース(右側)のibdata1の場所に注意してください
innodb_file_per_table を有効にすることで、データページとインデックスページを_ibdata1
_から分離できます。これにより、新しく作成されたInnoDBテーブルは、データとインデックスページを外部_.ibd
_ファイルに格納します。
例
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;
、_/var/lib/mysql/mydb/mytable.frm
_ を作成します/var/lib/mysql/mydb/mytable.ibd
_に保存されているInnoDBテーブルがどこに保存されていても、InnoDBの機能にはテーブルメタデータの検索と保存および取得が必要です [〜#〜] mvcc [〜#〜] サポートする情報 ACIDコンプライアンス および Transaction Isolation 。
これは、ibdata1からのテーブルデータとインデックスの分離に関する過去の記事です。
Oct 29, 2010
_: StackOverflowの元の投稿Nov 26, 2011
_: ERROR 1114(HY000)at line 6308 in file&the table user_analysis is fullFeb 03, 2012
_: MySQL InnoDBのテーブルのスケジュールされた最適化Mar 25, 2012
_: なぜInnoDBはすべてのデータベースを1つのファイルに格納するのですか?Apr 01, 2012
_: innodb_file_per_tableは推奨ですか?Ibdata1にすべてを保存しておくことはできますが、LVMスナップショットを作成するのは本当に大変なことです(私の個人的な意見)。
My StackOverflow投稿を使用して、そのファイルを完全に縮小する必要があります。
このクエリを実行してください:
_SELECT
((POWER(1024,3)*94 - InnoDBDiskDataAndIndexes))/POWER(1024,3) SpaceToReclaim
FROM
(SELECT SUM(data_length+index_length) InnoDBDiskDataAndIndexes
FROM information_schema.tables WHERE engine='InnoDB') A;
_
これにより、InnoDBクリーンアップを適用した後、どれだけの無駄なスペースを回収できるかがわかります。
そのファイルはibdata1
、ibdatal
ではなく、すべてのInnoDBデータベースが含まれています。削除すると、すべてのデータが失われます。
それを処理する方法に関するいくつかのアイデアについては、 MySQLでibdata1ファイルを縮小/パージする方法 を参照してください。
MySQLエンジンとしてinnodbをデフォルトで使用する場合、データベースはibdata1にallを格納します。また、ログファイルib_logfile0およびib_logfile1もあります。これらのファイルは削除しないでください。