web-dev-qa-db-ja.com

MySQLのiblogファイルとは正確には何ですか

これらのibdataファイルは、クラッシュ回復手順で重要な役割を果たすので、理解したいと思います。このための適切なリソースがWeb上で見つかりませんでした。

15
Uday

ibdata1

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

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

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

画像表現を表示するにはここをクリック

innodb_file_per_table を有効にすると、ibdata1からデータページとインデックスページを離婚できます。これにより、新しく作成された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の機能ではテーブルメタデータの検索と保存および取得が必要です [〜#〜] mvcc [〜#〜] サポートする情報- ACIDコンプライアンス および トランザクション分離

これは、ibdata1からのテーブルデータとインデックスの分離に関する過去の記事です。

iblogファイル(別名_ib_logfile0_、_ib_logfile1_)

_ib_logfile0_と_ib_logfile1_の目的を知りたい場合、これらはInnoDB Redoログです。 mysqldの完全な通常シャットダウンが行われるまで、それらを消去またはサイズ変更しないでください。 mysqldがクラッシュした場合は、mysqldを起動してください。 _ib_logfile0_の二重書き込みバッファに送信されなかったデータ変更がないかどうかを確認するために、_ib_logfile1_と_ibdata1_全体を読み取ります。それらの変更をリプレイ(再実行)します。それらが再生および保存されると、mysqldは新しいDB接続の準備が整います。

17
RolandoMySQLDBA