- 締切済み
バックアップファイルの復元に時間がかかる
以下のコマンドを入力してSQLファイルを作成します。 mysqldump --databases DB名 > "保存先.sql" -u root 処理が完了するとSQLファイルが作成されており、 そのファイルを復元するのですが、処理に時間がかかってしまいます。 復元は以下のコマンドです。 mysql DB名 < "保存先.sql" -u root 復元処理は行われているのですが、2時間経過しても数万件の復元しかできていません。 データはデータベース全体で200万件程度です。 バックアップの処理は20分もかからない時間で完了するのに、復元だけがこんなに時間がかかるものなのでしょうか? 環境はOSがwindowsXP pro MySQL 4.0.26です。 その他はapache2.0.59とphp5.1.6です。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
回答No.4
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
回答No.3
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
回答No.1
補足
回答ありがとうございます。 バックアップは処理時間があまりかからないので、オートコミットのまま?で処理をしようと思います。 リカバリについては、オートコミットのままで処理をしてしまうと恐らく10時間近くかかってしまうので、オートコミットを解除して処理をしようと思います。 そこで疑問なのが、バッチ処理でのバッチファイルの記述の方法です。 MySQL文であるSET autocommit=0;という記述はバッチファイル内に記述したのでOKなのかどうかとか、オートコミットを解除したあとにリカバー処理(mysql DB名 < "保存先.sql" -u root)を実行すると先に解除したオートコミットがまた有効になってしまうのではないか? (バッチ処理でMySQL接続→オートコミットOFF→MySQL接続解除→復元) また、qaz_qwerty_meさんが言われている50~100個のSQL毎にコミットをする方法はどのようにするのでしょうか? バックアップしたSQLファイルに直接記述するしか方法がないのでしょうか? 何度も申し訳ないです。宜しくお願いします。