/ var / lib / mysqlディレクトリのibdata1ファイルは何ですか?


32

Webminコントロールパネルにログインすると、実質的にすべてのディスク領域がいっぱいになっていることに気付きました。システムで最大の10個のファイル/ディレクトリを検索しましたが、ibdata1というファイルが約94GBのスペースを占有していることがわかりました。これは/ var / lib / mysqlディレクトリにあります。

ibdata1は何をしますか?削除しても安全ですか?私の推測では、それはある種のダンプであるが、それは単なる推測だ。

回答:


38

このファイルibdata1は、InnoDBインフラストラクチャのシステムテーブルスペースです。

InnoDBに不可欠な情報のクラスがいくつか含まれています

  • テーブルデータページ
  • テーブルインデックスページ
  • データ辞書
  • MVCC制御データ
    • スペースを元に戻す
    • ロールバックセグメント
  • 二重書き込みバッファー(OSキャッシュを回避するためにバックグラウンドで書き込まれるページ)
  • バッファーの挿入(セカンダリインデックスへの変更)

InnoDBユニバース(右側)でのibdata1の場所に注意してください

InnoDBアーキテクチャ

innodb_file_per_tableibdata1を有効にすることで、データページとインデックスページを分離できます。これにより、新しく作成されたInnoDBテーブルは、データとインデックスページを外部.ibdファイルに保存します。

  • datadirは/ var / lib / mysqlです
  • CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;、作成 /var/lib/mysql/mydb/mytable.frm
    • innodb_file_per_tableが有効、データ/インデックスページの保存場所 /var/lib/mysql/mydb/mytable.ibd
    • innodb_file_per_tableが無効、データ/インデックスページがibdata1に保存

InnoDBテーブルの保存場所に関係なく、InnoDBの機能では、テーブルメタデータを検索し、MCID情報を保存および取得して、ACID準拠トランザクション分離をサポートする必要があります。

ibdata1からテーブルデータとインデックスを分離することに関する過去の記事を以下に示します。

次はどうする

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クリーンアップの適用後に無駄になったスペースをどれだけ回収できるかがわかります。


ご意見ありがとうございます。その後、ディスククォータが完全にいっぱいになりました。投稿のアドバイスを実行する前に、空き領域が必要ですか?SOの元の投稿ではSQLダンプの実行について言及していることに注意してください。
ジェームズ

mysqldumpは、インデックスではなく、データページの論理表現のみを行います。データをダンプするには、別のディスクマウント、おそらくリモートサーバーが必要になります。
-RolandoMySQLDBA

9
それは私のために91.25350952148438を返しますSpaceToReclaim。これはメガバイト単位ですか?パーセント?バイト?
アイザック

私はこれが古すぎることを知っています。しかし、この問題を抱えてここに来る人94は、ibdata1ファイルのサイズをGBで置き換えて、サイズをGBで指定SpaceToReclaimする必要があります。
アヌプサブラハム


2

デフォルトでMySQLエンジンとしてinnodbを使用すると、すべてのデータベースがibdata1に保存されます。また、ログファイルib_logfile0およびib_logfile1があります。それらのファイルを削除しないでください。


サーバー上のそのファイルの削除とは何ですか?
フランク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.