web-dev-qa-db-ja.com

可用性グループはトランザクションレプリケーションを置き換えることができますか?

SQL Server 2012の新機能と、それが現在の状況にどのように役立つかを検討してきました。

現在、SQL Server 2008 R2を使用しており、トランザクションレプリケーションを介して2つのOLTPサーバーのデータベースを単一のレポートサーバーに複製します。次に、これらの複製されたDBをレポートに使用します。

SQL Server 2012と可用性グループでこれを置き換えることができるかどうかに関心があります。トランザクションレプリケーションの代わりに、新しい可用性グループを使用して、2つのOLTPサーバーのデータベースをミラーリングします。レポートサーバー-レポートが読み取り専用レプリカにアクセスできる場所。

これがうまく機能するか、それともまったく機能しないかはわかりません。

(VSDBCMD.exeを使用して)展開戦略に問題が発生するため、レプリケーションを回避したいと思います。また、大規模なDBでのレプリケーションの再初期化の遅延を回避したいと思います。

誰か良い例や経験がありますか?以前のバージョンでの通常のミラーリングのように、複数のサーバーから単一のサーバーに読み取り可能なレプリカでミラーリングすることは可能ですか?

これはもともとここで尋ねられました: https://stackoverflow.com/questions/10415225/mirroring-and-availability-groups-in-sql2012 申し訳ありませんが、まだ質問を移行できないと思います。

8
Meff

StackOverflowでの私の回答 から削除されました。他の人が同じタイプの回答に労力を費やすのを防ぐためです。

個人的には、これはトランザクションレプリケーションよりもはるかにうまく機能すると思いますが、実際の移行シナリオでは、この2つの正式な比較は行っていません。標準のミラーリング(これはそのアップグレードです)と比較しても、トランザクションレプリケーションで問題が発生することで、問題が少なくなることは確かです。

最大の恩恵は、セカンダリを読み取り専用としてマークできることです。したがって、必要なすべてのレポートを実行でき、ミラーリングにはまったく影響しません。より強力なtempdbが必要なだけです(これは基本的にrcsiを使用して行われるため)。

もちろん、読み取り専用操作でレプリカを使用するには、AGの両側に完全なライセンスが必要であることを認識する必要があります。また、フェイルオーバークラスタリングが必要であるため、Windowsの特定のバージョン(2008 R2以下ではEnterprise以上、2012以上ではStandard以上)で両側を実行する必要があります。AGのSQLインスタンスをクラスター化する必要はありませんが、 OSのインフラストラクチャの上に配置する必要があります。

10
Aaron Bertrand

ワークロードをレポートするための可用性グループに対するトランザクションレプリケーションの利点

上記の回答に対する対抗手段として、ワークロードをレポートするためにトランザクションレプリケーションが可用性グループよりも優れたソリューションである理由をいくつか示します。

  • データベース内のテーブルのサブセットを複製できます。可用性グループのレプリカは常にデータベース全体です。一部のテーブルに機密情報が含まれている場合、その情報を含まないデータベースに対してすべてのレポートを作成すると、アクセスの監査が容易になります。
  • 複製される行をフィルタリングして、細かいレベルの細分性を提供できます。たとえば、部署固有の情報を多数の部署のレポートサーバーに複製し、各サーバーがその情報のみにアクセスできるようにすることができます。
  • パブリッシャーとサブスクライバーの間で完全に異なるインデックス付け戦略を使用できます。可用性グループを使用すると、インデックスは同じです。ただし、統計はレプリカで作成され、tempdbに格納されますが、レプリケーションによって調整できる機能はありません。
  • セキュリティ上の問題。通常、レポートユーザーはSSMS、アクセス、またはExcelを使用してデータベースに直接接続し、レポートデータベースへのアクセスのみを制限します。

これらのいずれも大きな問題ではない場合は、可用性グループの方が適している可能性があります。

7
StrayCatDBA