ファイルをコピーしてMySQLデータベースをコピーできますか?このファイルには正確に何が含まれていますか?

ファイルをコピーしてMySQLデータベースをコピーできますか?このファイルには正確に何が含まれていますか?

私はMySQLデータベースとUbuntu Linuxシステムを使用しています。

私のデータベース名はdb_test、次のようにパスに/var/lib/mysql/db_testサフィックスが付いたいくつかの.frmファイルがあることを確認しました。.MYD.MYI

/var/lib/mysql/db_test# ls

cars.frm 
cars.MYD 
cars.MYI

customers.frm
customers.MYD
customers.MYI

departments.frm
departments.MYD
departments.MYI

... 

.frm各、、、ファイルグループがデータベースのテーブルにマップされているようです.MYD.MYI

次の2つの質問があります。

  1. これらの3つのファイルは正確に何をしますか?

  2. /var/lib/mysql/sayというパスの下に新しいディレクトリを作成し、db_test_2ディレクトリdb_test_1内のすべてのファイルをにコピーすると、まったく同じ内容(テーブル)を含む新しいデータベースもdb_test_2作成されますか?db_test_2db_test_1

この物理データベースファイルの移動操作は、次のコマンドライン操作と同じ結果を生成しますか?

  1. db_test_1データベースダンプ

  2. 新しいデータベースの作成db_test_2

  3. その後、db_test_1データベースを新しいデータベースに再ダンプしますかdb_test_2

mysqldumpもしそうなら、ファイルを移動する方がデータベースをコピーするよりもはるかに速いようです。これについて意見がありますか?

ベストアンサー1

  1. AFAIRでは、.frmはデータベーステーブル構造を記述する記述ファイル、.MYDはデータを含むファイル、.MYIはインデックスを含むファイルです。

  2. はい、コピーははるかに高速になります。しかし、問題があります。原子的ではありません。負荷が高いと、コピーされたファイルは一貫性がなく、まったく破損する可能性があります。特にInnoDBのような、より「インテリジェントな」エンジンを使用している場合は、さらにそうです。

編集する:psこのファイルは安全にコピーできますが、その前にmysqlサーバーを停止する必要があります。

おすすめ記事