次の方法で共有


レッスン 1 : マージ レプリケーションを使用したデータのパブリッシュ

このレッスンでは、SQL Server Management Studio を使用してマージ パブリケーションを作成し、 AdventureWorks2012 サンプル データベースの Employee テーブル、SalesOrderHeader テーブル、および SalesOrderDetail テーブルのサブセットをパブリッシュします。 ここでは、パラメーター化された行フィルターを使ってこれらのテーブルをフィルター処理し、サブスクリプションごとに一意のデータ部分が含まれるようにします。 また、マージ エージェントにより使用される SQL Server ログインをパブリケーション アクセス リスト (PAL) に追加します。 このチュートリアルを学習するには、前のチュートリアル「レプリケーションに備えたサーバーの準備」を完了している必要があります。

パブリケーションを作成し、アーティクルを定義するには

  1. SQL Server Management Studio でパブリッシャーに接続し、サーバー ノードを展開します。

  2. [レプリケーション] フォルダーを展開し、[ローカル パブリケーション] を右クリックして、[新しいパブリケーション] をクリックします。

    パブリケーションの新規作成ウィザードが起動します。

  3. [パブリケーション データベース] ページで [ AdventureWorks2012 ] を選択し、[次へ] をクリックします。

  4. [パブリケーションの種類] ページで、[マージ パブリケーション] を選択し、[次へ] をクリックします。

  5. [サブスクライバーの種類] ページで、SQL Server 2008 以降のみが選択されていることを確認し、[次へ] をクリックします。

  6. [アーティクル] ページで、[テーブル] ノードを展開して [SalesOrderHeader] および [SalesOrderDetail] を選択します。次に [Employee] を展開し、[EmployeeID] または [LoginID] を選択して、[次へ] をクリックします。

    ヒントヒント

    その他の必要な列が自動的に選択されます。 自動的に選択された列のいずれかを選択すると、[パブリッシュするオブジェクト] の一覧の下に、その列が必要な理由についての説明が表示されます。

  7. [テーブル行のフィルター選択] ページで、[追加] をクリックして [フィルターの追加] をクリックします。

  8. [フィルターの追加] ダイアログ ボックスの [フィルターを適用するテーブルを選択します。][Employee (HumanResources)] を選択します。[LoginID] 列をクリックして、右矢印をクリックし、フィルター選択クエリの WHERE 句にこの列を追加します。WHERE 句を次のように修正します。

    WHERE [LoginID] = HOST_NAME()
    
  9. [このテーブルの 1 行を 1 つのサブスクリプションのみに移動する] をクリックして、[OK] をクリックします。

  10. [テーブル行のフィルター選択] ページで、[Employee (Human Resources)][追加] の順にクリックし、[選択したフィルターを拡張するために結合を追加する] をクリックします。

  11. [結合の追加] ダイアログ ボックスで、[結合テーブル] の下の [Sales.SalesOrderHeader] をクリックして、[JOIN ステートメントを手動で作成する] をクリックし、JOIN ステートメントを次のように完成させます。

    ON Employee.EmployeeID = SalesOrderHeader.SalesPersonID
    
  12. [結合オプションを指定します] で、[一意キー] を選択して [OK] をクリックします。

  13. [テーブル行のフィルター選択] ページで、[SalesOrderHeader][追加] の順にクリックし、[選択したフィルターを拡張するために結合を追加する] をクリックします。

  14. [結合の追加] ダイアログ ボックスで、[結合テーブル] の下の [Sales.SalesOrderDetail] をクリックします。

  15. [JOIN ステートメントを手動で作成する] をクリックします。

  16. [フィルター選択されたテーブルの列] で、[BusinessEntityID] を選択し、矢印ボタンをクリックして列名を JOIN ステートメントにコピーします。

  17. [JOIN ステートメント] ボックスで、次のように JOIN ステートメントを完成させます。

    ON Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID
    
  18. [結合オプションを指定します] で、[一意キー] を選択して [OK] をクリックします。

  19. [テーブル行のフィルター選択] ページで、[SalesOrderHeader (Sales)][追加] の順にクリックし、[選択したフィルターを拡張するために結合を追加する] をクリックします。

  20. [結合の追加] ダイアログボックスで、[結合テーブル] の下の [Sales.SalesOrderDetail] をクリックして [OK] をクリックし、[次へ] をクリックします。

  21. [スナップショットをすぐに作成する] を選択し、[以下のスケジュールでスナップショット エージェントを実行する] をオフにして、[次へ] をクリックします。

  22. [エージェント セキュリティ] ページで、[セキュリティの設定] をクリックし、[プロセス アカウント] ボックスに「<Machine_Name>」と入力します。さらに、このアカウントのパスワードを入力して、[OK] をクリックします。 [完了] をクリックします。

  23. [ウィザードの完了] ページで、[パブリケーション名] ボックスに「AdvWorksSalesOrdersMerge」と入力し、[完了] をクリックします。

  24. パブリケーションが作成されたら、[閉じる] をクリックします。

スナップショット生成の状態を表示するには

  1. SQL Server Management Studio でパブリッシャーに接続して、サーバー ノードを展開し、[レプリケーション] フォルダーを展開します。

  2. [ローカル パブリケーション] フォルダーを展開し、[AdvWorksSalesOrdersMerge] を右クリックして、[スナップショット エージェントの状態の表示] をクリックします。

  3. パブリケーションのスナップショット エージェントの現在の状態が表示されるので、 スナップショット ジョブが正常に終了していることを確認してから次のレッスンに進みます。

マージ エージェントのログインを PAL に追加するには

  1. SQL Server Management Studio でパブリッシャーに接続して、サーバー ノードを展開し、[レプリケーション] フォルダーを展開します。

  2. [ローカル パブリケーション] フォルダーを展開し、[AdvWorksSalesOrdersMerge] パブリケーションを右クリックして、[プロパティ] をクリックします。

    [パブリケーションのプロパティ] ダイアログ ボックスが表示されます。

  3. [パブリケーション アクセス リスト] ページを選択して、[追加] をクリックします。

  4. [パブリケーション アクセスの追加] ダイアログ ボックスで、<Machine_Name>\repl_merge を選択して [OK] をクリックし、 もう一度 [OK] をクリックします。

次の手順

ここでは、マージ パブリケーションを作成しました。 次は、このパブリケーションをサブスクライブします。 「レッスン 2 : マージ パブリケーションへのサブスクリプションの作成」を参照してください。

関連項目

概念

パブリッシュされたデータのフィルター選択

パラメーター化された行フィルター

アーティクルの定義

その他の技術情報

パブリッシングとディストリビューションを構成する方法 (レプリケーション Transact-SQL プログラミング)

パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)