innoDBにバックアップの基本事項

innoDBでは、テーブルの構造はdataディレクトリ内のそれぞれのデータベースのディレクトリ内に、テーブル名.frmというファイルで入っている。データやインデックスなどは、全データベースの全innoDBテーブルのデータがdataディレクトリのibdataというファイルに一括で入っている。さらに、そこに挿入する前の段階として、ib_logileというログファイルに書き込まれてから、ibdataにちゃんと書き込まれる感じらしい。
つまりバックアップとして、基本的にはこの、テーブル名.frm、ibdata、ib_logfileをコピーしてしまえばいいことになる。
ただ、たくさんデータベースをつくったサーバでは、テーブルが分割されていないと困る。余計なデータまでコピーしてしまうからだ。これについては、my.cnfに、


[mysqld]
innodb_file_per_table
を追加すると、テーブルごとにデータが分割され、それぞれのデータベースのディレクトリ内に、テーブル名.ibdというファイルが作成されるらしい。つまりindataの代わりに、テーブル名.ibdをコピーしたらいい。
さらに調べたところによると、それでもibdataというファイルは一応作成され、それも存在しないと不具合が発生するらしい。
疑問としては、my.cnfに追加して再起動と書かれているのだけど、データがすごく大きくても、そこまで時間がかからずに、テーブル名.ibd、テーブルごとのデータに分割してくれるのだろうか?



現在分かった段階でまとめておくと、サーバを停止させてから、ibdata、テーブル名.ibd、ib_logfile、テーブル名.frmをコピーする。my.cnfの設定を確認しておく。移した先のデータベースで同じにする必要があるかもしれない。
しかし、ib_logfile0、iblogfile1と最初の状態で存在するので、どちらをコピーするのか、または両方欲しいのかが分からない。その辺りを引き続き調べたいと思っている。