クライアントの .NET Web アプリケーション用に SQL Server 2012 データベース トランザクション レプリケーションを構成し、SQL トランザクションとレポートを異なる SQL Server に分散させました。
SQL-Node1 にトランザクション レプリケーションを実装し、マスター DB サーバーとして機能させました。SQL-Node2 でマスター DB のレプリケーションを構成して、大量のトランザクションと Excel シート エントリからのデータ アップロードを含む Web アプリケーションにレポートを引き出しました。毎日約 1000 万件のエントリがあります。
2 つの SQL Server 2012 インスタンスでレプリケーションを構成した後、数週間後、いくつかのパフォーマンスの問題に直面し、データベースにファイルをアップロードしているときに一部のリソースがロックされることがわかりました。これにより、アプリケーションはそれらのテーブルとデータにアクセスできなくなりました。また、ユーザーが Web アプリケーションにアクセスする日中にサーバーのパフォーマンスが非常に遅いこともわかりました。
現在、SQL Server 2012 の異なる 3 つのノードに負荷を分散することを検討しています。Web アプリケーションが SQL-Node1 のデータにアクセスして処理する場合、レポート クエリは SQL-Node2 からプル データを取得し、SQL-Node3 は Excel シートのアップロードに使用されます。他のすべての SQL ノードでレプリケートされるデータベースへのデータ。
現在のセットアップ、Windows Server 2008 Standard および SQL Server 2012 Enterprise Edition を搭載したすべてのサーバー。
データベース サイズ約: 15 GB / 使用されるレプリケーション: トランザクション / SQL ノード 1 で構成されたディストリビューター ロール / SQL ノード 2 で構成されたサブスクライバー ロール。
さまざまな負荷 (レポート、データのアップロード、トランザクション) を分散し、すべての SQL ノード間でデータを複製できる上記の問題を解決するソリューションを探しています。
SQL Server 2012 HA、SQL Server レプリケーション、または SQL Server ミラーリングのうち、上記のシナリオで適切に機能する機能はどれですか??
迅速な対応、大変有り難く存じます。...