次の方法で共有


Web 同期の構成

SQL Server マージ レプリケーションの Web 同期オプションを使用すると、インターネット経由の HTTPS プロトコルを使用したデータ レプリケーションが可能になります。 Web 同期を使用するには、最初に次の構成アクションを実行する必要があります。

  1. 新しいドメイン アカウントを作成し、SQL Server ログインをマップします。

  2. サブスクリプションを同期するように、Microsoft インターネット インフォメーション サービス (IIS) を実行しているコンピューターを構成します。

  3. Web 同期を許可するようにマージ パブリケーションを構成します。

  4. Web 同期を使用するように 1 つ以上のサブスクリプションを構成します。

大量のデータをレプリケートする場合や、 varchar(max)などの大規模なデータ型を使用する場合は、このトピックの「大量のデータのレプリケート」セクションを参照してください。

Web 同期を正常に設定するには、特定の要件とポリシーを満たすようにセキュリティを構成する方法を決定する必要があります。 IIS、パブリケーション、サブスクリプションを構成する前に、これらの決定を行い、必要なアカウントを作成することをお勧めします。

以降の手順では、簡潔にするために、ローカル アカウントを使用した簡単なセキュリティ構成について説明します。 この簡略化された構成は、IIS と SQL Server パブリッシャーとディストリビューターの両方が同じコンピューター上で実行されているインストールに適しています。ただし、運用環境のインストールに複数サーバー トポロジを使用する可能性が高くなります (推奨)。 手順では、ドメイン アカウントをローカル アカウントに置き換えることができます。

新しいアカウントの作成と SQL Server ログインのマッピング

SQL Server レプリケーション リスナー (replisapi.dll) は、レプリケーション Web サイトに関連付けられているアプリケーション プールに指定されたアカウントを偽装することによってパブリッシャーに接続します。

SQL Server レプリケーション リスナーに使用されるアカウントには、「パブリッシャーまたはディストリビューターへの接続」セクションの マージ エージェント セキュリティの説明に従って、アクセス許可が必要です。要約すると、アカウントは次の手順を実行する必要があります。

  • パブリケーション アクセス リスト (PAL) のメンバーである。

  • パブリケーション データベース内のユーザーに関連付けられたログインにマップされている。

  • ディストリビューション データベース内のユーザーに関連付けられたログインにマップされている。

  • スナップショット共有の読み取り権限を持つ。

SQL Server レプリケーションを初めて使用する場合は、レプリケーション エージェントのアカウントとログインも作成する必要があります。 詳細については、このトピックの「パブリケーションの構成」および「サブスクリプションの構成」セクションを参照してください。

Web 同期を構成する前に、このトピックの「Web 同期のセキュリティのベスト プラクティス」セクションを参照することをお勧めします。 Web 同期のセキュリティの詳細については、「Web 同期のセキュリティ アーキテクチャ」を参照してください。

IIS を実行しているコンピューターの構成

Web 同期では、IIS をインストールして構成する必要があります。 Web 同期を使用するようにパブリケーションを構成するには、レプリケーション Web サイトの URL が必要です。

Web 同期は、バージョン 5.0 以降の IIS でサポートされています。 Web 同期の構成ウィザードは、IIS バージョン 7.0 ではサポートされていません。 SQL Server 2012 以降では、IIS サーバーで Web 同期コンポーネントを使用するために、レプリケーションを使用して SQL Server をインストールすることをお勧めします。 これは、無料の SQL Server Express エディションにすることができます。

Web 同期には SSL が必要です。 証明機関によって発行されたセキュリティ証明書が必要です。 テスト目的でのみ、自己発行のセキュリティ証明書を使用できます。

Web 同期用に IIS を構成するには

Web ガーデンの作成

SQL Server レプリケーション リスナーは、スレッドごとに 2 つの同時同期操作をサポートします。 この制限を超えると、レプリケーション リスナーが応答を停止する可能性があります。 replisapi.dll に割り当てられたスレッドの数は、アプリケーション プールの [ワーカー プロセスの最大数] プロパティによって決まります。 既定では、このプロパティは 1 に設定されています。

[ワーカー プロセスの最大数] プロパティの値を増やすことで、CPU あたりの同時同期操作の数を増やすことができます。 CPU あたりのワーカー プロセスの数を増やすことによるスケールアウトは、"Web ガーデン" の作成と呼ばれます。

Web ガーデニングでは、2 人以上のサブスクライバーが同時に同期できるようになります。 また、replisapi.dllによって CPU 使用率が向上し、サーバーの全体的なパフォーマンスに悪影響を与える可能性があります。 [最大ワーカー プロセス] の値を選択する場合は、これらの考慮事項のバランスを取る必要があります。

IIS 7 でワーカー プロセスの最大数を増やすには

  1. インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバー ノードを展開し、[アプリケーション プール] ノードをクリックします。

  2. Web 同期サイトに関連付けられているアプリケーション プールを選択し、[操作] ウィンドウの [詳細設定] をクリックします。

  3. [詳細設定] ダイアログの [ プロセス モデル ] 見出しで、[ 最大ワーカー プロセス] というラベルの行をクリックします。 プロパティの値を変更し、[OK] をクリック します

パブリケーションの構成

Web 同期を使用するには、標準のマージ トポロジの場合と同じ方法でパブリケーションを作成します。 詳細については、「 データおよびデータベース オブジェクトのパブリッシュ」を参照してください。

パブリケーションが作成されたら、SQL Server Management Studio、Transact-SQL、またはレプリケーション管理オブジェクト (RMO) のいずれかの方法を使用して、Web 同期を許可するオプションを有効にします。 Web 同期を有効にするには、サブスクライバー接続用の Web サーバー アドレスを指定する必要があります。

パブリッシャーを初めて使用する場合は、ディストリビューターとスナップショット共有も構成する必要があります。 各サブスクライバーのマージ エージェントには、スナップショット共有に対する読み取りアクセス許可が必要です。 詳細については、「 ディストリビューションの構成スナップショット フォルダーのセキュリティ保護」を参照してください

gen は、websync xml ファイル内の予約語です。 genという名前の列を含むテーブルをパブリッシュしないでください。

サブスクリプションの構成

パブリケーションを有効にして IIS を構成したら、プル サブスクリプションを作成し、IIS を使用してプル サブスクリプションを同期するように指定します。 (Web 同期はプル サブスクリプションでのみサポートされます)。

以前のバージョンの SQL Server からのアップグレード

既存の Web 同期トポロジが構成されていて、SQL Server をアップグレードする場合は、最新バージョンの Replisapi.dll が Web 同期で使用される仮想ディレクトリにコピーされていることを確認する必要があります。 既定では、最新バージョンの Replisapi.dll は C:\Program Files\Microsoft SQL Server\<nnn>\COM にあります。

大量のデータの複製

サブスクライバー コンピューターの Web 同期で発生する可能性のあるメモリの問題を回避するために、変更の転送に使用される XML ファイルの既定の最大サイズは 100 MB です。 この制限は、次のレジストリ キーを設定することで引き上げられます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

このキーに使用できる値の範囲は、100 MB から 4 GB です。 値は KB 単位で指定されます。 このパラメーターを高い値に設定しても、その量のデータを同期できるわけではありません。 有効な制限は、サブスクライバー コンピューターで使用可能な連続するメモリの量によって制限されます。 100 MB を超える値が必要な場合は、値を増分的に増やし、サブスクライバー上の一般的なワークロードでメモリ消費量をテストすることをお勧めします。

XML ファイルの最大サイズは 4 GB ですが、レプリケーションではそのファイルからの変更がバッチで同期されます。 データとメタデータの最大バッチ サイズは 25 MB です。 各バッチ内のデータが約 20 MB を超えないようにする必要があります。これにより、メタデータやその他のオーバーヘッドが許容されます。 この制限には、次の影響があります。

  • データとメタデータが 25 MB を超える列はレプリケートできません。 これは、 varchar(max)などの大きなデータ型を含む行をレプリケートする場合に問題になる可能性があります。

  • 大量のデータをレプリケートする場合は、マージ エージェントのバッチ サイズを調整する必要があります。

マージ レプリケーションのバッチ サイズは、各記事ごとの変更のコレクションである世代単位で測定されます。 バッチ内の世代数は、マージ エージェントの DownloadGenerationsPerBatch パラメーターと -UploadGenerationsPerBatch パラメーターを使用して指定します。 詳細については、「 レプリケーション マージ エージェント」を参照してください。

大量のデータの場合は、バッチ処理パラメーターごとに少数を指定します。 値 10 から始めて、アプリケーションのニーズとパフォーマンスに基づいて調整することをお勧めします。 通常、これらのパラメーターはエージェント プロファイルで指定されます。 プロファイルの詳細については、「 レプリケーション エージェント プロファイル」を参照してください。

Web 同期のセキュリティに関するベスト プラクティス

Web 同期では、セキュリティ関連の設定に多くの選択肢があります。 次の方法をお勧めします。

  • SQL Server ディストリビューターとパブリッシャーは、同じコンピューター上に置くことができます (マージ レプリケーションの一般的なセットアップ)。 ただし、IIS は別のコンピューターにインストールする必要があります。

  • Secure Sockets Layer (SSL) を使用して、サブスクライバーと IIS を実行しているコンピューター間の接続を暗号化します。 これは、Web 同期に必要です。

  • サブスクライバーから IIS への接続には基本認証を使用します。 基本認証を使用すると、IIS は、委任を必要とせずにサブスクライバーの代わりにパブリッシャー/ディストリビューターに接続できます。 統合認証を使用する場合は、委任が必要です。

    基本認証は、資格情報を IIS に渡す方法です。 基本認証では、IIS への接続に Windows ドメイン アカウントを指定できません。

  • スナップショット エージェントが Windows ドメイン アカウントで実行されるように指定し、エージェントがそのアカウントとして接続を行う必要があることを指定します。 (これが既定の構成です)。各マージ エージェントをサブスクライバー コンピューターを使用するユーザーのドメイン アカウントで実行するように指定し、エージェントがそのアカウントとして接続を行う必要があることを指定します。

    エージェントに必要なアクセス許可の詳細については、「 レプリケーション エージェントのセキュリティ モデル」を参照してください。

  • 新しいサブスクリプション ウィザードの [Web サーバー情報] ページでアカウントとパスワードを指定するとき、またはsp_addpullsubscription_agentの@internet_urlパラメーターと@internet_loginパラメーターの値を指定するときに、マージ エージェントが使用するドメイン アカウントと同じドメイン アカウントを指定します。 このアカウントには、スナップショット共有の読み取りアクセス許可が必要です。

  • 各パブリケーションでは、IIS 用に個別の仮想ディレクトリを使用する必要があります。

  • SQL Server レプリケーション リスナー (Replisapi.dll) が実行されるアカウントは、同期中にパブリッシャーとディストリビューターに接続するアカウントでもあります。 このアカウントは、パブリッシャーとディストリビューターの SQL ログイン アカウントにマップする必要があります。 詳細については、「 Web 同期用に IIS を構成する」の「SQL Server レプリケーション リスナーのアクセス許可の設定」セクションを参照してください。

  • FTP を使用して、パブリッシャーから IIS を実行しているコンピューターにスナップショットを配信できます。 スナップショットは常に、IIS を実行しているコンピューターから HTTPS を使用してサブスクライバーに配信されます。 詳細については、「FTP によるスナップショットの転送」を参照してください。

  • レプリケーション トポロジ内のサーバーがファイアウォールの内側にある場合は、Web 同期を有効にするためにファイアウォールでポートを開く必要がある場合があります。

    • サブスクライバー コンピューターは、HTTPS 経由で IIS を実行しているコンピューターに SSL を使用して接続します。これは通常、ポート 443 を使用するように構成されています。 SQL Server Compact サブスクライバーは、HTTP 経由で接続することもできます。これは通常、ポート 80 を使用するように構成されています。

    • IIS を実行しているコンピューターは、通常、ポート 1433 (既定のインスタンス) を使用してパブリッシャーまたはディストリビューターに接続します。 パブリッシャーまたはディストリビューターが別の既定のインスタンスを持つサーバー上の名前付きインスタンスである場合、通常、ポート 1500 を使用して名前付きインスタンスに接続します。

    • IIS を実行しているコンピューターがファイアウォールによってディストリビューターから分離されていて、スナップショット配信に FTP 共有が使用されている場合は、FTP に使用されるポートを開く必要があります。 詳細については、「FTP によるスナップショットの転送」を参照してください。

重要

ファイアウォールのポートを開くと、サーバーが攻撃を受けやすくなります。 ポートを開く前に、ファイアウォール システムについて理解しておいてください。 詳細については、「 Security Considerations for a SQL Server Installation」を参照してください。

こちらもご覧ください

マージ レプリケーションの Web 同期