Share via


방법: 웹 동기화를 사용하도록 게시 구성(복제 Transact-SQL 프로그래밍)

이 항목에서는 병합 복제를 위해 웹 동기화를 구성하는 첫 단계에 대해 설명합니다. 구성 프로세스에 대한 개요는 방법: 병합 복제에 대한 웹 동기화 구성(복제 Transact-SQL 프로그래밍)을 참조하십시오. 이 항목의 절차를 완료한 다음에는 Microsoft 인터넷 정보 서비스(IIS)를 실행 중인 컴퓨터를 구성하는 두 번째 단계를 이어서 수행합니다. 두 번째 단계는 방법: 웹 동기화를 위한 IIS 구성에서 설명합니다.

이 항목에서는 웹 동기화에 필요한 매개 변수에 대해 설명합니다. 게시를 만드는 방법에 대한 자세한 내용은 방법: 게시 만들기(복제 Transact-SQL 프로그래밍)를 참조하십시오.

새 게시를 구성하려면

  1. 게시자에서 sp_addmergepublication을 실행합니다. @publication에 게시의 이름을 지정하고 @allow_web_synchronization에 true 값을 지정합니다. 그 밖의 매개 변수를 지정합니다. 구독자가 HTTP를 통해서만 게시자에 연결할 경우에는 @allow_anonymous에도 true 값을 지정합니다.

  2. 게시자에서 이 게시에 대한 스냅숏 에이전트 작업을 추가하려면 sp_addpublication_snapshot을 실행합니다. 자세한 내용은 방법: 게시 만들기(복제 Transact-SQL 프로그래밍)를 참조하십시오.

  3. 새 게시에 대한 아티클을 정의합니다. 자세한 내용은 방법: 아티클 정의(복제 Transact-SQL 프로그래밍)를 참조하십시오.

기존 게시를 구성하려면

  1. sp_helpmergepublication을 실행합니다. @publication에 기존 게시의 이름을 지정합니다.

  2. 결과 집합의 allow_web_synchronization 값이 1이면 게시에 대한 웹 동기화가 이미 구성되어 있는 것입니다. 결과 집합의 allow_web_synchronization 값이 0이면 웹 동기화를 설정해야 합니다.

  3. sp_changemergepublication을 실행합니다. @publication에 기존 게시의 이름, @propertyallow_web_synchronization 값을, @value에 true 값을 지정합니다.

  4. (옵션) 구독자가 HTTP를 통해서만 게시자에 연결할 경우에는 sp_changemergepublication을 실행합니다. @publication에 기존 게시의 이름을, @propertyallow_anonymous 값을, @value에 true 값을 지정합니다.

다음 예에서는 웹 동기화가 설정된 게시를 만듭니다.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @websyncurl AS nvarchar(256);
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
EXEC sp_addmergepublication 
    @publication = @publication,
    -- optional parameters 
    @description = N'Merge publication of AdventureWorks2008R2 using Web synchronization.',
    @publication_compatibility_level  = N'90RTM',
    -- Enable Web synchronization.
    @allow_web_synchronization = N'true',
    -- Web synchronization URL hint used by SQL Server Management Studio.
    @web_synchronization_url = @websyncurl;

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password;
GO