![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
初歩的なことで悩んでおり、2点程質問があります。
(1)DBの復元時に「タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。」というエラーが発生する時があります。これが発生するのは復元するDBのサイズが大きいときであり、タイムアウト値を長くすることで解決は出来たのですが、これ以外での解決策は無いのでしょうか?(復元するDBのサイズは運用形態により変わる為、固定値にするのは危険?)
(2)(1)のエラーが発生した後、再度DBの復元を行おうとすると(厳密にはDBのオープン時)、「Database 'DB名' cannot be opened. It is in the middle of a restore.」というエラーが発生します(Enterprise Managerでは:「読込んでいます」と表記)。このエラーの修復方法が分からず悩んでいます。出来れば(1)のエラーが発生したときに(2)の状態にならないのが理想です。
以下に復元時の主な流れを明記します。
1.DBオープン(server=(local);uid=sa;pwd='パスワード';database='DB名';Connect Timeout= 500)
2.シングルユーザ設定(ALTER DATABASE 'DB名' SET SINGLE_USER WITH ROLLBACK IMMEDIATE)
3.DBの復元(RESTORE DATABASE 'DB名'" FROM DISK = 'バックアップDB' WITH RECOVERY)
4.マルチユーザ設定
長々と申し訳ありませんが宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
なるほど、VBを使用する場合ですか・・・それですと、タイムアウトを大きくする以外にはなさそうですね。
逆に、タイムアウトは大きくせず(通常のトランザクションを流すのと同じ程度に設定し)、タイムアウトが発生したらある程度の時間間隔を置いて再接続を試みるという方法もあります。
2.の現象が発生している原因が判明し、その原因を取り除くことができるようであれば、この方法でも良いのではないかと思います。
この回答への補足
度々有難うございます。
やっぱりタイムアウトを大きくするしかないですか。
一応、リストアの時だけ、タイムアウトを通常より大きくして対応しようかなと考えています。
2.については、リストアを失敗すると、必ず「リストア中」のまま保持されるようなので、発生しても別のDBをリストアできるように対応します。(テスト的に試したらできそうだったので・・・)
本当に助かりました。
No.1
- 回答日時:
1. タイムアウトを設定する以上はどうしようもないかと思います。
別の方法として、クエリアナライザからSQLを発行する方法があります。2. エラー発生後、再度のコマンド発行時にまだリストアを行っている途中であれば、そのエラーメッセージが表示されるのは自然です。そうではない場合、
http://support.microsoft.com/kb/319701/en-us/
や
http://support.microsoft.com/kb/822852/en-us/
に記述された現象が発生しているのかもしれません。
この回答への補足
早速のご回答ありがとうございます。
2.については掲示のHPの内容にて修復できました。
1.の「クエリアナライザからSQLの発行」とありますが、これと同じことをVB.netから出来るのでしょうか?
初心者なもので、見当違いな質問をしていたらすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
一つのテーブルだけを復元(リス...
-
バックアップファイルの復元に...
-
アドレスを移行したい .VCFデー...
-
PCが悪くなって新しいPCにSSMS...
-
ACCESSのデータをWebブラウザで...
-
【DB】同じトランザクション内...
-
accessの処理が遅い
-
DATファイルをEXCELで開きたい
-
マスタメンテとは?
-
エクセルのフィルタ抽出が固まる
-
ファイルの存在チェック
-
TPSとは・・・
-
SQL Server 2005トランザクショ...
-
1回目の実行に3分、2回目の実行...
-
テキストで空欄(null?)を検索...
-
復旧中のデータベースについて
-
MS-Accessのエクスポートで異常...
-
MySQL稼働中にDBのバックアッ...
-
accessの上限容量2Gでは容量が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
PCが悪くなって新しいPCにSSMS...
-
SQLServer2012の復元ができない
-
復元に異常に時間がかかる
-
SQLServerバックアップ戻せない
-
復元時間:復元しています
-
一つのテーブルだけを復元(リス...
-
DBを復元したら「読み取り専用...
-
SQL SERVER2008の質問です
-
SQLServer2000:データベース復...
-
バックアップファイルの復元に...
-
MS SQL2005 STD での リストア...
-
DBの復元について教えてください
-
データベースの復元におけるエ...
-
SQL-DMOを勉強するには?
-
DB復元
-
別のSQLServerのバックアップを...
-
削除したファイルの復活。
-
PCの状態を数日前に戻すには?
-
アドレスを移行したい .VCFデー...
おすすめ情報