

以下のコマンドを入力して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です。
宜しくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
解決して良かったです ^ ^
> windowsOSのためバッチファイルを使って自動的にすべての処理
これは実運用時の処理ですよね?
バックアップに限定すると単純に、コミットは最後に1回だけでも問題はないのですが、実運用時のバッチ処理時の場合は、処理時間だけに着目してコミットを最後だけに行うと、思わぬ障害に発生するので処理内容を検討して適切な間隔でコミットすることをお勧めします。
バッチなどでは50~100個のSQLを実行する毎にコミットを行っていますが・・・50~100個の根拠は 問題も発生しないし、処理時間的にも妥当と思われる と思える程度です ^ ^; また、利用するTBLの利用状況によってはオート・コミットでないと危険と考えられる状況もありうるので、バックアップのリカバーとは別と考えて下さい。
この回答への補足
回答ありがとうございます。
バックアップは処理時間があまりかからないので、オートコミットのまま?で処理をしようと思います。
リカバリについては、オートコミットのままで処理をしてしまうと恐らく10時間近くかかってしまうので、オートコミットを解除して処理をしようと思います。
そこで疑問なのが、バッチ処理でのバッチファイルの記述の方法です。
MySQL文であるSET autocommit=0;という記述はバッチファイル内に記述したのでOKなのかどうかとか、オートコミットを解除したあとにリカバー処理(mysql DB名 < "保存先.sql" -u root)を実行すると先に解除したオートコミットがまた有効になってしまうのではないか?
(バッチ処理でMySQL接続→オートコミットOFF→MySQL接続解除→復元)
また、qaz_qwerty_meさんが言われている50~100個のSQL毎にコミットをする方法はどのようにするのでしょうか?
バックアップしたSQLファイルに直接記述するしか方法がないのでしょうか?
何度も申し訳ないです。宜しくお願いします。
No.3
- 回答日時:
明示的にコミット( commit )しなくても、自動的にコミットするオート・コミットという機能が動作していませんか?
参考に・・・
http://dev.mysql.com/doc/refman/4.1/ja/commit.html
ありがとうございます。
ご指摘のとおりコミットをset autocommit=0としてから実行すると劇的に早くなりました。
ただ、windowsOSのためバッチファイルを使って自動的にすべての処理を行いたいのですが可能なのでしょうか?
バックアップのSQLファイル内にset~と最後にcommitを入力すればできたのですが、バッチファイル内での処理で同様の処理は可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServerバックアップ戻せない
-
復元に異常に時間がかかる
-
警察はスマホに保存した動画や...
-
PCが悪くなって新しいPCにSSMS...
-
DBを復元したら「読み取り専用...
-
SQLServer2000:データベース復...
-
復旧中のデータベースについて
-
32ビット版Officeで作成64ビッ...
-
エクセルのフィルタ抽出が固まる
-
SQLローダーを使ってExcelのデ...
-
オブジェクトブラウザとoracle...
-
ログファイルの圧縮がされずに...
-
【DB】同じトランザクション内...
-
TPSとは・・・
-
MS-Accessのエクスポートで異常...
-
BACKUP DATABASE とINSERTが同...
-
SQL Server Management Studio ...
-
ACCESS2010 Excelエクスポート ...
-
期限切れのバックアップの削除
-
マスタメンテとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
一つのテーブルだけを復元(リス...
-
復元に異常に時間がかかる
-
PCが悪くなって新しいPCにSSMS...
-
SQLServer2012の復元ができない
-
SQLServerバックアップ戻せない
-
SQL SERVER2008の質問です
-
DBを復元したら「読み取り専用...
-
アドレスを移行したい .VCFデー...
-
復元時間:復元しています
-
バックアップファイルの復元に...
-
DBの復元について教えてください
-
SQL-DMOを勉強するには?
-
MS SQL2005 STD での リストア...
-
SQLサーバ6.5⇒2003へ...
-
SQLServer2000:データベース復...
-
SQLサーバのバックアップファイ...
-
【DB】同じトランザクション内...
-
DATファイルをEXCELで開きたい
-
postgresql についてです
おすすめ情報