SQL Serverのレプリケーションでは、データベース管理者は組織全体の複数のサーバーにデータを分散できます。 組織にレプリケーションを実装するには、次のようなさまざまな理由が考えられます。
- 負荷分散 。 レプリケーションを使用すると、データを多数のサーバーに配布し、それらのサーバー間でクエリの負荷を分散できます。
- オフライン処理 。 レプリケーションは、常にネットワークに接続されていないマシン上のデータベースからデータを操作することをサポートします。
- 冗長性 。 レプリケーションを使用すると、処理負荷をすぐに拾うことができるフェールオーバーデータベースサーバーを構築できます。
どの複製シナリオにも2つの主要コンポーネントがあります。
- パブリッシャーは他のサーバーに提供するデータを持っています。 所与の複製スキームは、1つまたは複数の発行者を有することができる。
- サブスクライバは、データが変更されたときにパブリッシャから更新を受信するデータベースサーバーです。
単一のシステムがこれらの能力の両方で行動することを妨げるものは何もありません。 実際、これはしばしば大規模な分散データベースシステムの設計です 。
レプリケーションのSQL Serverサポート
Microsoft SQL Serverでは、3種類のデータベース複製がサポートされています。 この記事では、これらのモデルのそれぞれについて簡単に紹介しますが、今後の記事ではさらに詳しく説明します。 彼らです:
- スナップショットレプリケーションは、その名前が示すように動作します。 パブリッシャは、レプリケートされたデータベース全体のスナップショットを取得し、サブスクライバと共有します。 もちろん、これは時間とリソースを大量に消費するプロセスです。 このため、ほとんどの管理者は、頻繁に変更されるデータベースに対して定期的にスナップショットレプリケーションを使用しません。 スナップショットレプリケーションが一般的に使用されるシナリオは2つあります。まず、めったに変更されないデータベースに使用されます。 次に、システム間のレプリケーションを確立するためのベースラインを設定し、将来の更新はトランザクション レプリケーションまたはマージレプリケーションを使用して伝播されます。
- トランザクションレプリケーションは、定期的に変更されるデータベースに対して、より柔軟なソリューションを提供します。 トランザクションレプリケーションでは、レプリケーションエージェントはパブリッシャをデータベースの変更について監視し、その変更をサブスクライバに送信します。 この送信は、直ちにまたは定期的に行うことができる。
- マージレプリケーションにより、パブリッシャとサブスクライバはデータベースを個別に変更できます。 両方のエンティティは、アクティブなネットワーク接続なしで動作することができます。 それらが再接続されると、マージレプリケーションエージェントは両方のデータセットの変更をチェックし、それに応じて各データベースを変更します。 変更が競合した場合、エージェントは事前定義の競合解消アルゴリズムを使用して適切なデータを決定します。 マージレプリケーションは、ラップトップユーザーやパブリッシャに継続的に接続できないユーザーによってよく使用されます。
これらの複製技法はそれぞれ有用な目的を果たし、特定のデータベースシナリオに適しています。
SQL Server 2016を使用している場合は、複製のニーズに基づいてエディションを選択します。 各エディションには、レプリケーションのサポートに関して異なる機能があります。
- サブスクライバのサポートのみ : エクスプレス、 ツールまたはアドバンスト・サービスによる エクスプレスがあり、 Webエディションはレプリケーション・クライアントとしてのみ機能することができる限られたレプリケーション機能を提供します。
- 完全なパブリッシャとサブスクライバのサポート : スタンダードとエンタープライズは、Oracleパブリッシング、ピアツーピア・トランザクション・レプリケーション、および更新可能なサブスクリプションとしてのトランザクション・レプリケーションを含むエンタープライズの完全サポートを提供します。
この点で間違いなく認識しているように、SQL Serverのレプリケーション機能により、 データベース管理者はエンタープライズ環境のデータベースを管理および拡張するための強力なツールを利用できます。