以下のコマンドを入力して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で質問しましょう!
似たような質問が見つかりました
- Windows 10 windowsの回復ドライブや復元ポイントを使用した場合の戻る位置を教えてください。 5 2023/08/19 14:52
- その他(パソコン・スマホ・電化製品) データの復元ができる無料ソフト(一部ファイルでもよいです) 4 2023/06/04 02:30
- USBメモリー・SDカード・フラッシュメモリー SDカードの修復について 4 2022/08/30 08:24
- Android(アンドロイド) アンドロイド ゲームアプリの引継ぎ バックアップ&復元 2 2022/11/15 22:14
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
- その他(セキュリティ) HDDのデーターを暗号化したい。 3 2022/11/08 08:33
- SQL Server PCが悪くなって新しいPCにSSMSのデータを移すよう頼まれたけど移し方が分からない 1 2023/05/18 16:54
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- デスクトップパソコン windows7を使っているパソコンでの質問です。先日動作が遅く再起動かけると「windowsを起動 9 2022/06/16 21:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
PCが悪くなって新しいPCにSSMS...
-
復元に異常に時間がかかる
-
SQLServer2012の復元ができない
-
バックアップファイルの復元に...
-
復元時間:復元しています
-
削除したファイルの復活。
-
DB復元
-
データベースの復元におけるエ...
-
SQLServerバックアップ戻せない
-
一つのテーブルだけを復元(リス...
-
エクセルのフィルタ抽出が固まる
-
postgresql についてです
-
【DB】同じトランザクション内...
-
SQLローダーで複数のCSVファイ...
-
DATファイルをEXCELで開きたい
-
復旧中のデータベースについて
-
期限切れのバックアップの削除
-
tempdb の適切なサイズ
-
ACCESSのデータをWebブラウザで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
PCが悪くなって新しいPCにSSMS...
-
復元に異常に時間がかかる
-
SQLServerバックアップ戻せない
-
SQLServer2012の復元ができない
-
復元時間:復元しています
-
一つのテーブルだけを復元(リス...
-
DBを復元したら「読み取り専用...
-
アドレスを移行したい .VCFデー...
-
間違えてエクセルのデータ上書...
-
DB復元
-
SQL SERVER2008の質問です
-
別のSQLServerのバックアップを...
-
削除したファイルの復活。
-
バックアップファイルの復元に...
-
PCの状態を数日前に戻すには?
-
SQLServer2000:データベース復...
-
DATファイルをEXCELで開きたい
-
【DB】同じトランザクション内...
-
postgresql についてです
おすすめ情報