
初歩的なことで悩んでおり、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
SQLについて質問です。 下記の...
-
ACCESS2007 フォーム 「バリア...
-
sqlserverで集計結果をUPDATEし...
-
SQL Date型の列から年月だけを...
-
sqlで、600行あるテーブルを100...
-
【VB.NET】日付型の列にNULLを...
-
SQL クエリ データ数
-
Microsoft SQL Serverについて
-
SQLをはじめから勉強するには
-
<SQL>重複しているデータの場合...
-
SQLサーバー接続 特定のPCがWin...
-
SQL Server management studio ...
-
Accessの重複なしのカウントの...
-
BULK INSERT時のNull許容について
-
SQL SERVER windows 認証エラー...
-
SQL文 複数実行
-
sqlserverでUPDATEできません
-
Wacom Cintiq 16 と Wacom Cint...
-
Tverは無料でしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
ACCESS2007 フォーム 「バリア...
-
sqlserverで集計結果をUPDATEし...
-
BULK INSERT時のNull許容について
-
SQL Date型の列から年月だけを...
-
SQLCMDにて教えていただきたい...
-
SQLサーバー接続 特定のPCがWin...
-
SQL文 複数実行
-
Accessの重複なしのカウントの...
-
【VB.NET】日付型の列にNULLを...
-
sqlで、600行あるテーブルを100...
-
<SQL>重複しているデータの場合...
-
SQLサーバで和暦から西暦に変換...
-
SQL Server management studio ...
-
chr(13) と char(13) の違いっ...
-
Access2013で操作ログを残した...
-
【SQLサーバ】float型における...
-
sqlserverでUPDATEできません
-
Microsoft SQL Serverについて
-
sqlserverで同一キー単位で金額...
おすすめ情報