19

SQL ServerのLogShippingを構成するときに、セカンダリデータベースをリカバリなしモードまたはスタンバイモードにすることを選択できます。リカバリなしとは、ログ配布が行われている間はデータベースにアクセスできないことを意味します。スタンバイでは読み取り専用アクセスが可能であり、復元が行われるたびにユーザーを切断するオプションを選択した場合、ログ配布プロセスに干渉しないように見えます。これは私にはスタンバイモードの追加の利点のように見えますが、私が見る限り、ドキュメントには悪影響はありません。

したがって、なぜ誰もが回復なしモードを使用することを選択するのだろうかと思います。私が考えることができる唯一のもっともらしい理由は、スタンバイモードが大幅なパフォーマンスの低下を引き起こした場合(ただし、ドキュメントにはそのようなことは記載されていません)、またはセカンダリデータベースのコンテンツが誰にも見られないようにするためのセキュリティ要件がある場合です(これはまれに見える/ありそうもない)。

回復なしモードを選択することの利点が何であるかを誰かに教えてもらえますか?

4

1 に答える 1

24

モードを使用するNORECOVERYと、ターゲットデータベースへのアクセスが許可されないため、データベースはコミットされていないトランザクションを気にする必要がありません。ログは「そのまま」復元して、その状態のままにすることができます。

STANDBYモードを使用すると、データベースはとして復元しNORECOVERY、ログ内のコミットされていないすべてのトランザクションを分析してロールバックします。その後、ユーザーに読み取り専用アクセスを許可できます。次のログが復元されると、データベースはすべてのユーザーを切断し、復元する前に、コミットされていないトランザクションを最後のログから再度ロールフォワードします。

ご覧のとおりSTANDBY、トランザクション量によっては、復元時に大きな余分なオーバーヘッドが発生する可能性があります。

詳細については、My WorldofSQLのこの記事を参照してください。

于 2013-01-21T21:59:49.540 に答える