web-dev-qa-db-ja.com

トランザクションレプリケーションの推奨ディストリビューターアーキテクチャ?

SQL Server 2008 R2の2つのノードでトランザクションレプリケーションを作成する予定です。各ノードはパブリッシャーとサブスクライバーになります。

このシナリオを実行するためのベストプラクティスは何ですか?マイクロソフトは常に、ディストリビューターをパブリッシャーまたはサブスクライバーから独立させることを推奨しているため、3番目のノードがシナリオに関与することは明らかです。しかし、各ノードは同時にパブリッシャーとサブスクライバーになるため、同じ(3番目のノード)を2つのパブリッシャーのディストリビューターにすることができますか? 2つのディストリビューターを作成する必要がありますか、それとも2つのノードのみを使用して同じアーキテクチャ上に配置でき、それぞれがディストリビューターおよびパブリッシャーとして機能しますか?

5

このシナリオを実行するためのベストプラクティスは何ですか?

複製するデータの量によって異なります。

  • 選択した列/テーブル、データベース全体(すべてのテーブル)などを複製していますか?
  • 両方のノードが同じドメインまたは異なるドメインにありますか?
  • 同じリージョンまたはクロスリージョン(US-UKなど)で複製していますか?

レプリケートに必要なデータが少なかったため、パブリッシャーとディストリビューターとして同じサーバーを使用したT-Repを実装しました。サブスクライバーにプッシュダウンする大量のデータがありました。

あなたはのような要因を考慮する必要があります-

  • スナップショットを実行し、そのスナップショットをサブスクライバーに適用するのにかかる時間
  • レプリケーションに関係するテーブルに大きな変更(スキーマなど)が発生した場合に、アーティクルを再初期化する可能性。

2つのディストリビュータを作成する必要がありますか?同じディストリビューションデータベースを使用できます。ただし、メンテナンスを容易にし、パフォーマンスを向上させるために[ディストリビューションデータベースへの書き込みとディストリビューションデータベースからの読み取りの両方で競合を減らす]個別のディストリビューションデータベースを使用することを強くお勧めします。

ディストリビューションデータベースはレプリケーションの中心であることを忘れないでください。したがって、適切なメンテナンス、バックアップなどが必要です。複数のパブリッシャーをサポートするディストリビューションデータベースが1つだけあり、DISASTERが発生した場合、以前のバックアップからそれを復元すると、すべてのパブリッシャーに影響します。

From [〜#〜] bol [〜#〜]

多くの場合、単一のディストリビューションデータベースで十分です。ただし、複数のパブリッシャーが単一のディストリビューターを使用する場合は、各パブリッシャーのディストリビューションデータベースを作成することを検討してください。これにより、各ディストリビューションデータベースを流れるデータが確実に区別されます。


最後に、あなたを助けるいくつかの良い参考文献:

トランザクションレプリケーションのバックアップからの初期化に関する詳細

非クラスター化インデックスをレプリケートするとサブスクライバークエリのパフォーマンスが向上します

トランザクションレプリケーションのデータに従う-ホワイトペーパー

トランザクションレプリケーションのトラブルシューティング

ディストリビューションデータベースのスケールアウト

4
Kin Shah

それは本当にあなたのオーバーヘッドとそれをどれだけうまく管理できるかにかかっています。非常にビジーなシステムを使用していない場合は問題ありませんが、設定する前にベースラインを維持し、結果を比較して影響を確認してください。

複製の権威の1人であるヒラリーコッターは、5人のパブリッシャーが1つのディストリビューターを使用することについては心配しないでください。

2つのリンクが高遅延またはWANを介している場合、私は強くお勧めします この記事 ディストリビューターがいる場合、ログリーダー/ログライターのコマンドバッファーがどのように遅くなるかを説明します加入者と同じ側で、どのように。

1
Ali Razeghi