sp_addpullsubscription_agent(Transact-SQL)

끌어오기 구독을 동기화하는 데 사용하는 새로 예약된 에이전트 작업을 트랜잭션 게시에 추가합니다. 이 저장 프로시저는 구독 데이터베이스의 구독자에서 실행됩니다.

항목 링크 아이콘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'AdventureWorks2008R2';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorks2008R2Replica]
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를 실행할 수 있습니다.