SQL Server 自体は負荷分散をサポートしていません。説明したメカニズム (データベース ミラーリングとログ配布) を使用してアクティブ/パッシブ フェールオーバーを行うことができ、クラスタリングやレプリケーションなど、他にも多くのオプションがあります。
開始する 2 つの質問は次のとおりです。
- どれくらい落ち込む余裕がありますか?(別名、目標復旧時間、または RTO)
- どのくらいのデータを失うことを許容できますか? (別名、目標復旧時点、または RPO)
ダウンしても許容できる時間が長くなり、失われる可能性があるデータが多ければ多いほど、ソリューションはより簡単かつ安価に実装できるようになります。ダウンタイムとデータが少ないほど、実装は難しくなります。
たとえば、同期データベース ミラーリングにより、トランザクションが失われないことが保証されます。結果がクライアントに返される前に、両方のデータベース サーバーでトランザクションがコミットされます。残念ながら、重い負荷がかかるとパフォーマンスにかなりの影響があり、最小限の管理ユーティリティが組み込まれています。このようなことを管理するには、フルタイムの DBA が必要です。
反対に、15 分ごとにログを配布すると、15 分 (またはそれ以上) のデータが失われる可能性があり、障害後にオンラインに戻るまでに 15 ~ 60 分かかる可能性があります。ただし、安価で、パフォーマンスへの影響が非常に少なく、セットアップもかなり簡単です。
BrentOzar.com でRPO と RTO の紹介、およびSQL Server の HA と DR 機能の紹介を入手しました。それらを確認すると、戻ってきてより具体的な質問をする準備が整います。それが役立つことを願っています!