sp_addpullsubscription_agent(Transact-SQL)
끌어오기 구독을 동기화하는 데 사용하는 새로 예약된 에이전트 작업을 트랜잭션 게시에 추가합니다. 이 저장 프로시저는 구독 데이터베이스의 구독자에서 실행됩니다.
구문
sp_addpullsubscription_agent [ @publisher = ] 'publisher'
[ , [ @publisher_db = ] 'publisher_db' ]
, [ @publication = ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_password' ]
[ , [ @distributor = ] 'distributor' ]
[ , [ @distribution_db = ] 'distribution_db' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] 'distributor_login' ]
[ , [ @distributor_password = ] 'distributor_password' ]
[ , [ @optional_command_line = ] 'optional_command_line' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subda y= ] 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 ]
[ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
[ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
[ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
[ , [ @ftp_address = ] 'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_login = ] 'ftp_login' ]
[ , [ @ftp_password = ] 'ftp_password' ]
[ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ]
[ , [ @working_directory = ] 'working_directory' ]
[ , [ @use_ftp = ] 'use_ftp' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @dts_package_name = ] 'dts_package_name' ]
[ , [ @dts_package_password = ] 'dts_package_password' ]
[ , [ @dts_package_location = ] 'dts_package_location' ]
[ , [ @reserved = ] 'reserved' ]
[ , [ @offloadagent = ] 'remote_agent_activation' ]
[ , [ @offloadserver = ] 'remote_agent_server_name']
[ , [ @job_name = ] 'job_name' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
인수
[ @publisher = ] 'publisher'
게시자의 이름입니다. publisher는 sysname이며 기본값은 없습니다.[ @publisher_db=] **'**publisher_db'
게시자 데이터베이스의 이름입니다. publisher_db는 sysname이며 기본값은 NULL입니다. Oracle 게시자는 publisher_db를 무시합니다.[ @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이며 기본값은 NULL입니다. 0은 SQL Server 인증을 지정합니다. 1은 Windows 인증을 지정합니다.[!참고]
이 매개 변수는 더 이상 사용되지 않으며 이전 버전 스크립트와의 호환성을 위해 유지 관리됩니다. 배포 에이전트는 항상 Windows 인증을 사용하여 로컬 구독자에 연결합니다. 이 매개 변수에 NULL 또는 1이 아닌 값을 지정하면 경고 메시지가 반환됩니다.
[ @subscriber_login =] 'subscriber_login'
동기화 시 구독자에 연결하는 데 사용하는 구독자 로그인입니다. subscriber_login은 sysname이며 기본값은 NULL입니다.[!참고]
이 매개 변수는 더 이상 사용되지 않으며 이전 버전 스크립트와의 호환성을 위해 유지 관리됩니다. 이 매개 변수의 값을 지정하면 경고 메시지가 반환되고 값은 무시됩니다.
[ @subscriber_password=] 'subscriber_password'
구독자 암호입니다. subscriber_security_mode를 0으로 설정하면 subscriber_password를 지정해야 합니다. subscriber_password는 sysname이며 기본값은 NULL입니다. 구독자 암호가 사용되는 경우에는 자동으로 암호화됩니다.[!참고]
이 매개 변수는 더 이상 사용되지 않으며 이전 버전 스크립트와의 호환성을 위해 유지 관리됩니다. 이 매개 변수의 값을 지정하면 경고 메시지가 반환되고 값은 무시됩니다.
[ @distributor =] 'distributor'
배포자의 이름입니다. distributor는 sysname이며 기본값은 publisher가 지정한 값입니다.[ @distribution_db=] 'distribution_db'
배포 데이터베이스의 이름입니다. distribution_db는 sysname이며 기본값은 NULL입니다.[ @distributor_security_mode=] distributor_security_mode
동기화할 때 배포자에 연결하는 데 사용하는 보안 모드입니다. distributor_security_mode는 int이며 기본값은 1입니다. 0 은 SQL Server 인증을 지정합니다. 1은 Windows 인증을 지정합니다.
보안 정보가능하면 Windows 인증을 사용하십시오.
[ @distributor_login=] 'distributor_login'
동기화할 때 배포자에 연결하는 데 사용하는 배포자 로그인입니다. distributor_security_mode를 0으로 설정하면 distributor_login을 지정해야 합니다. distributor_login은 sysname이며 기본값은 NULL입니다.[ @distributor_password =] 'distributor_password'
배포자 암호입니다. distributor_security_mode를 0으로 설정하면 distributor_password를 지정해야 합니다. distributor_password는 sysname이며 기본값은 NULL입니다.
보안 정보빈 암호를 사용하지 마십시오. 강력한 암호를 사용하십시오. 가능한 경우 런타임에 사용자에게 보안 자격 증명을 입력하라는 메시지를 표시합니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
[ @optional_command_line=] 'optional_command_line'
배포 에이전트에 공급되는 선택적 명령 프롬프트입니다. 예를 들어 -DefinitionFile C:\Distdef.txt 또는 -CommitBatchSize 10 등입니다. optional_command_line은 nvarchar(4000)이며 기본값은 빈 문자열입니다.[ @frequency_type = ] frequency_type
배포 에이전트를 예약하는 빈도입니다. frequency_type은 int이며 다음 값 중 하나일 수 있습니다.값
설명
1
한 번
2(기본값)
요청 시
4
매일
8
매주
16
매월
32
매월 상대적
64
자동 시작
128
되풀이
[!참고]
값 64를 지정하면 배포 에이전트가 연속 모드로 실행됩니다. 이는 에이전트에 대해 -Continuous 매개 변수를 설정하는 것과 같습니다. 자세한 내용은 복제 배포 에이전트를 참조하십시오.
[ @frequency_interval = ] frequency_interval
frequency_type에서 설정된 빈도에 적용되는 값입니다. frequency_interval은 int이며 기본값은 1입니다.[ @frequency_relative_interval = ]frequency_relative_interval
배포 에이전트의 날짜입니다. 이 매개 변수는 frequency_type을 32(매월 상대)로 설정한 경우 사용됩니다. frequency_relative_interval은 int이며 다음 값 중 하나일 수 있습니다.값
설명
1(기본값)
첫째
2
둘째
4
셋째
8
넷째
16
마지막
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
frequency_type에 사용되는 되풀이 비율입니다. frequency_recurrence_factor는 int이며 기본값은 1입니다.[ @frequency_subday = ]frequency_subday
정의된 기간 동안 다시 예약하는 빈도입니다. frequency_subday는 int이며 다음 값 중 하나일 수 있습니다.값
설명
1(기본값)
한 번
2
초
4
분
8
시간
[ @frequency_subday_interval = ]frequency_subday_interval
frequency_subday에 대한 간격입니다. frequency_subday_interval은 int이며 기본값은 1입니다.[ @active_start_time_of_day = ] active_start_time_of_day
하루 중에서 배포 에이전트가 처음으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_start_time_of_day는 int이며 기본값은 0입니다.[ @active_end_time_of_day = ] active_end_time_of_day
하루 중에서 배포 에이전트가 마지막으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_end_time_of_day는 int이며 기본값은 0입니다.[ @active_start_date = ] active_start_date
배포 에이전트가 처음으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_start_date는 int이며 기본값은 0입니다.[ @active_end_date = ] active_end_date
배포 에이전트가 마지막으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_end_date는 int이며 기본값은 0입니다.[ @distribution_jobid =] distribution_jobidOUTPUT
이 작업의 배포 에이전트 ID입니다. distribution_jobid는 binary(16)이고 기본값은 NULL이며 OUTPUT 매개 변수입니다.[ @encrypted_distributor_password=] encrypted_distributor_password
encrypted_distributor_password 설정은 더 이상 지원되지 않습니다. 이 bit 매개 변수를 1로 설정하면 오류가 발생합니다.[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Microsoft 동기화 관리자를 통해 구독을 동기화할 수 있는지 여부를 나타냅니다. enabled_for_syncmgr는 nvarchar(5)이며 기본값은 FALSE입니다. false인 경우 구독이 동기화 관리자에 등록되지 않습니다. true이면 구독이 동기화 관리자에 등록되며 SQL Server Management Studio를 시작하지 않고 구독을 동기화할 수 있습니다.[ @ftp_address=] 'ftp_address'
이전 버전과의 호환성을 위해서만 지원됩니다.[ @ftp_port=] ftp_port
이전 버전과의 호환성을 위해서만 지원됩니다.[ @ftp_login=] 'ftp_login'
이전 버전과의 호환성을 위해서만 지원됩니다.[ @ftp_password=] 'ftp_password'
이전 버전과의 호환성을 위해서만 지원됩니다.[ @alt_snapshot_folder= ] **'**alternate_snapshot_folder'
스냅숏의 대체 폴더 위치를 지정합니다. alternate_snapshot_folder는 nvarchar(255)이며 기본값은 NULL입니다.[ @working_directory= ] 'working_director'
게시용 데이터 및 스키마 파일을 저장하는 데 사용되는 작업 디렉터리의 이름입니다. working_directory는 nvarchar(255)이며 기본값은 NULL입니다. 이름은 UNC 형식으로 지정해야 합니다.[ @use_ftp= ] 'use_ftp'
일반 프로토콜 대신 FTP를 사용하여 스냅숏을 검색하도록 지정합니다. use_ftp는 nvarchar(5)이며 기본값은 FALSE입니다.[ @publication_type= ] publication_type
게시의 복제 유형을 지정합니다. publication_type은 tinyint이며 기본값은 0입니다. 0인 경우 게시는 트랜잭션 유형입니다. 1인 경우 스냅숏 유형이며 2인 경우에는 병합 유형입니다.[ @dts_package_name= ] 'dts_package_name'
DTS 패키지의 이름을 지정합니다. dts_package_name은 sysname이며 기본값은 NULL입니다. 예를 들어 DTSPub_Package의 패키지를 지정하려면 매개 변수가 @dts\_package\_name = N'DTSPub_Package'여야 합니다.[ @dts_package_password= ] 'dts_package_password'
패키지의 암호가 있는 경우 암호를 지정합니다. dts_package_password는 sysname이며 기본값은 NULL이고 패키지에 암호가 없음을 나타냅니다.[!참고]
dts_package_name이 지정된 경우 암호를 지정해야 합니다.
[ @dts_package_location= ] 'dts_package_location'
패키지 위치를 지정합니다. dts_package_location은 nvarchar(12)이며 기본값은 subscriber입니다. 패키지 위치는 distributor 또는 subscriber일 수 있습니다.[ @reserved= ] 'reserved'
정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.[ @offloadagent= ] 'remote_agent_activation'
[!참고]
원격 에이전트 활성화는 더 이상 사용되지 않으며 지원되지 않습니다. 이 매개 변수는 이전 버전 스크립트와의 호환성을 유지하기 위한 목적으로만 지원됩니다. remote_agent_activation을 false 이외의 값으로 설정하면 오류가 발생합니다.
[ @offloadserver= ] 'remote_agent_server_name'
[!참고]
원격 에이전트 활성화는 더 이상 사용되지 않으며 지원되지 않습니다. 이 매개 변수는 이전 버전 스크립트와의 호환성을 유지하기 위한 목적으로만 지원됩니다. remote_agent_server_name을 NULL이 아닌 값으로 설정하면 오류가 발생합니다.
[ @job_name= ] 'job_name'
기존 에이전트 작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다. 이 매개 변수는 새로 만든 작업(기본값) 대신 기존 작업을 사용하여 구독이 동기화될 경우에만 지정됩니다. sysadmin 고정 서버 역할의 멤버가 아닌 경우 job_name을 지정할 때 job_login과 job_password를 지정해야 합니다.[ @job_login= ] 'job_login'
에이전트를 실행하는 Windows 계정의 로그인입니다. job_login은 nvarchar(257)이며 기본값은 없습니다. 이 Windows 계정은 에이전트가 구독자에 연결할 때 항상 사용됩니다.[ @job_password= ] 'job_password'
에이전트를 실행하는 Windows 계정의 암호입니다. job_password는 sysname이며 기본값은 없습니다.
보안 정보가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_addpullsubscription_agent는 스냅숏 복제 및 트랜잭션 복제에서 사용됩니다.
예
-- 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".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorksReplica]
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password);
GO
사용 권한
sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_addpullsubscription_agent를 실행할 수 있습니다.
.gif)