SQL Server 2005 環境でログ配布を使用することを検討しています。アイデアは、セカンダリ サーバーへの頻繁なログ配布を設定することでした。目的: セカンダリ サーバーを使用してレポート クエリを提供し、それによってプライマリ データベース サーバーの負荷を軽減します。
私はsqlservercentral フォーラムのスレッドでこれに出くわしました:
ログ配布を作成する場合、2 つの選択肢があります。norecovery オプションまたはスタンバイ オプションを使用して、ログの復元操作を実行するように構成できます。norecovery オプションを使用する場合、select ステートメントを発行することはできません。norecovery の代わりにスタンバイ オプションを使用すると、データベースで選択クエリを実行できます。ログ ファイルの復元が発生した場合、スタンバイ オプションを使用すると、ユーザーは復元プロセスによって警告なしに追い出されることに注意してください。スタンバイ オプションを使用してログ配布を構成する場合、セカンダリ データベースのすべてのプロセスを強制終了してログの復元を実行するか、データベースが使用されている場合はログの復元を実行しないかの 2 つの選択肢から選択することもできます。もちろん、2 番目のオプションを選択した場合、誰かがデータベースへの接続を開き、それを閉じないと、復元操作が実行されない可能性があります。
だから私の質問は:
- 上記は本当ですか?私の意図した方法でログ配布を本当に使用できないでしょうか?
- 本当なら、トランザクション ログの復元中にデータベースに対して SELECT ステートメントを実行できない理由を誰か説明してもらえますか?
編集:
最初の質問は、この serverfault questionの複製です。しかし、2 番目の質問に答えていただきたいと思います。トランザクション ログの復元中に SELECT ステートメントを実行できないのはなぜですか?