MySQLのデータディレクトリの内容とその役割について

現在、「エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド」というMySQLのディープな本を読んでいます。

その中の「ディレクトリ構造とシステムデータベース」という項目の中で、MySQLのデータディレクトリの中身について一覧的に書いてあったので忘れないようにメモっときます。

実際「このファイルって何の役割があるの?」ということを知らないまま運用してる人って多いと思うんですよね。 そういう人はMySQLがトラブった時に決まって慌てることになるのでこの際しっかり覚えておきましょう。

MySQLデータディレクトリの内容とその役割

データファイル名 格納場所 役割
ibdata1
ib_logfile0
ib_logfile1
データディレクトリ内 InnoDBデータおよびログファイル。
(テーブル名).ibd 各DBディレクトリ内 innodb_filers_per_tableオプションを利用した際に作られる、テーブルごとの格納データファイル。(通常はデータは共有データファイルに格納される)
(テーブル名).MYI
(テーブル名).MYD
各DBディレクトリ内 ストレージエンジンをMyISAMにした際に作られる格納データファイル。
拡張子が「MYI」がインデックスデータで、「MYD」が実データ。
db.opt 各DBディレクトリ内 各データベースのデフォルト文字コードなどの属性が格納される。
(テーブル名).par 各DBディレクトリ内 パーティション定義ファイル。
(テーブル名).TRG
(テーブル名).TRN
各DBディレクトリ内 トリガ関連のファイル。 拡張子が「TRG」がテーブルごとのトリガ定義が格納されており、「TRN」がトリガ名が格納されているファイル。
(ホスト名)-bin.NNNNNN
(ホスト名)-bin.index
データディレクトリ内 バイナリログ。
「NNNNNN」は0000001から始まる通し番号になる。
(ホスト名)-relay.bin.* データディレクトリ内 バイナリログと同じ形式の中間ログファイル。(レプリケーションスレーブ側のみ)
master.log
relay-log.info
データディレクトリ内 レプリケーションスレーブ側の設定やステータスが格納されるレプリケーション情報ファイル。(レプリケーションスレーブ側のみ)
(テーブル名).ndb 各DBディレクトリ内 MySQL Cluster用テーブル情報ファイル。
(ホスト名).err データディレクトリ内 エラーログファイル。 エラーメッセージや、起動・終了に関係するメッセージが記録される。
(ホスト名)-slow.log データディレクトリ内 一定時間以上かかったクエリ(スロークエリ)や、インデックスを使用していないクエリが記録されるファイル。
(ホスト名).log データディレクトリ内 MySQLサーバーへの全てのリクエストが記録される、一般クエリログファイル。 デバッグ等で使用する。
(ホスト名).pid データディレクトリ内 実行中のmysqldのpidが格納されるファイル。 mysqld_safeがこのファイルの内容を見てmysqldの生存確認を行う。

こうしてみると、結構いろいろあるんですよね。
意味が分からないと、サーバーの容量が逼迫したりした場合にどう整理すれば良いか分からなくなるので、ちゃんと理解して扱うようにしましょうね。

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2012-06-30