sp_addmergepushsubscription_agent(Transact-SQL)
밀어넣기 구독의 동기화를 예약하는 데 사용된 새 에이전트 작업을 병합 게시에 추가합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
보안 정보 |
---|
게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 SQL Server 연결 암호화을 참조하십시오. |
구문
sp_addmergepushsubscription_agent [ @publication =] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] 'publisher_login' ]
[ , [ @publisher_password = ] 'publisher_password' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
[ , [ @job_name = ] 'job_name' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
인수
[ @publication = ] 'publication'
게시의 이름입니다. publication은 sysname이며 기본값은 없습니다.[ @subscriber=] 'subscriber'
구독자의 이름입니다. subscriber는 sysname이며 기본값은 NULL입니다.[ @subscriber_db=] 'subscriber_db'
구독 데이터베이스의 이름입니다. subscriber_db는 sysname이며 기본값은 NULL입니다.[ @subscriber_security_mode=] subscriber_security_mode
동기화 시 구독자에 연결할 때 사용하는 보안 모드입니다. subscriber_security_mode는 int이며 기본값은 1입니다. 0은 SQL Server 인증을 지정하고 1은 Windows 인증을 지정합니다.[ @subscriber_login =] 'subscriber_login'
동기화 시 구독자에 연결할 때 사용하는 구독자 로그인입니다. subscriber_security_mode를 0으로 설정하면 subscriber_login을 지정해야 합니다. subscriber_login은 sysname이며 기본값은 NULL입니다.[ @subscriber_password=] 'subscriber_password'
SQL Server 인증에 대한 구독자 암호입니다. subscriber_security_mode를 0으로 설정하면 subscriber_password를 지정해야 합니다. subscriber_password는 sysname이며 기본값은 NULL입니다. 구독자 암호가 사용되는 경우에는 자동으로 암호화됩니다.보안 정보 가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
[ @publisher_security_mode = ] publisher_security_mode
동기화 시 게시자에 연결할 때 사용하는 보안 모드입니다. publisher_security_mode는 int이며 기본값은 1입니다. 0은 SQL Server 인증을 지정하고 1은 Windows 인증을 지정합니다.[ @publisher_login = ] 'publisher_login'
동기화 시 게시자에 연결할 때 사용하는 로그인입니다. publisher_login은 sysname이며 기본값은 NULL입니다.[ @publisher_password = ] 'publisher_password'
게시자에 연결할 때 사용되는 암호입니다. publisher_password는 sysname이며 기본값은 NULL입니다.보안 정보 가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 자격 증명을 스크립트 파일에 저장해야 하는 경우에는 파일에 무단으로 액세스하지 못하도록 보안을 설정해야 합니다.
[ @job_login = ] 'job_login'
에이전트가 실행되는 Windows 계정의 로그인입니다. job_login은 nvarchar(257)이며 기본값은 NULL입니다. Windows 계정은 배포자에 대한 에이전트 연결과 Windows 통합 인증 사용 시 구독자 및 게시자에 대한 연결에 항상 사용됩니다.[ @job_password = ] 'job_password'
에이전트를 실행하는 Windows 계정의 암호입니다. job_password는 sysname이며 기본값은 없습니다.보안 정보 가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 자격 증명을 스크립트 파일에 저장해야 하는 경우에는 파일에 무단으로 액세스하지 못하도록 보안을 설정해야 합니다.
[ @job_name =] 'job_name'
기존 에이전트 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다. 이 매개 변수는 새로 만든 작업(기본값) 대신 기존 작업을 사용하여 구독이 동기화될 경우에만 지정됩니다. sysadmin 고정 서버 역할의 멤버가 아닌 경우 job_name을 지정할 때 job_login과 job_password를 지정해야 합니다.[ @frequency_type = ] frequency_type
병합 에이전트를 예약하는 빈도입니다. frequency_type은 int이며 다음 값 중 하나일 수 있습니다.값
설명
1
한 번
2
요청 시
4
매일
8
매주
16
매월
32
매월 상대
64
자동 시작
128
되풀이
NULL(기본값)
[!참고]
값 64를 지정하면 병합 에이전트가 연속 모드로 실행됩니다. 이는 에이전트에 대해 -Continuous 매개 변수를 설정하는 것과 같습니다. 자세한 내용은 복제 병합 에이전트를 참조하십시오.
[ @frequency_interval = ] frequency_interval
병합 에이전트가 실행되는 일 수입니다. frequency_interval은 int이며 다음 값 중 하나일 수 있습니다.값
설명
1
일요일
2
월요일
3
화요일
4
수요일
5
목요일
6
금요일
7
토요일
8
일
9
평일
10
주말
NULL(기본값)
[ @frequency_relative_interval = ]frequency_relative_interval
병합 에이전트의 날짜입니다. 이 매개 변수는 frequency_type을 32(매월 상대)로 설정한 경우 사용됩니다. frequency_relative_interval은 int이며 다음 값 중 하나일 수 있습니다.값
설명
1
첫째
2
둘째
4
셋째
8
넷째
16
마지막
NULL(기본값)
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
frequency_type에 사용되는 되풀이 비율입니다. frequency_recurrence_factor는 int이며 기본값은 NULL입니다.[ @frequency_subday = ]frequency_subday
정의된 기간 동안 다시 예약하는 빈도입니다. frequency_subday는 int이며 다음 값 중 하나일 수 있습니다.값
설명
1
한 번
2
초
4
분
8
시간
NULL(기본값)
[ @frequency_subday_interval = ]frequency_subday_interval
frequency_subday에 대한 간격입니다. frequency_subday_interval은 int이며 기본값은 NULL입니다.[ @active_start_time_of_day = ] active_start_time_of_day
하루 중에서 병합 에이전트가 처음으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_start_time_of_day는 int이며 기본값은 NULL입니다.[ @active_end_time_of_day = ] active_end_time_of_day
하루 중에서 병합 에이전트가 마지막으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_end_time_of_day는 int이며 기본값은 NULL입니다.[ @active_start_date = ] active_start_date
병합 에이전트가 처음으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_start_date는 int이며 기본값은 NULL입니다.[ @active_end_date = ] active_end_date
병합 에이전트가 마지막으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_end_date는 int이며 기본값은 NULL입니다.[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Windows 동기화 관리자를 통해 구독을 동기화할 수 있는지 여부를 지정합니다. enabled_for_syncmgr은 nvarchar(5)이며 기본값은 FALSE입니다. false인 경우 구독이 동기화 관리자에 등록되지 않습니다. true이면 구독이 동기화 관리자에 등록되며 SQL Server Management Studio를 시작하지 않고 구독을 동기화할 수 있습니다.
반환 코드 값
0(성공) 또는 1(실패)
예
-- 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".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2008R2Replica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2008R2]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
사용 권한
sysadmin 고정 서버 역할 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_addmergepushsubscription_agent를 실행할 수 있습니다.