sp_addpushsubscription_agent(Transact-SQL)

업데이트: 2006년 12월 12일

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

ms175006.security(ko-kr,SQL.90).gif보안 정보:
게시자를 원격 배포자로 구성할 경우 job_loginjob_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 SQL Server 연결 암호화를 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_addpushsubscription_agent [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_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 ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
    [ , [ @distribution_job_name = ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @subscriber_provider = ] 'subscriber_provider' ] 
    [ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ] 
    [ , [ @subscriber_location = ] 'subscriber_location' ]
    [ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ] 
    [ , [ @subscriber_catalog = ] 'subscriber_catalog' ]

인수

  • [ @publication = ] 'publication'
    게시의 이름입니다. publicationsysname이며 기본값은 없습니다.
  • [ @subscriber=] 'subscriber'
    구독자의 이름입니다. subscribersysname이며 기본값은 NULL입니다.
  • [ @subscriber_db=] 'subscriber_db'
    구독 데이터베이스의 이름입니다. subscriber_dbsysname이며 기본값은 NULL입니다. 비-SQL Server(Non-SQL Server) 구독자의 경우 subscriber_db(기본 대상) 값을 지정합니다.
  • [ @subscriber_security_mode=] subscriber_security_mode
    동기화 시 구독자에 연결할 때 사용하는 보안 모드입니다. subscriber_security_modeint이며 기본값은 1입니다. 0은 SQL Server 인증을 지정하고 1은 Windows 인증을 지정합니다.

    ms175006.security(ko-kr,SQL.90).gif보안 정보:
    지연 구독 업데이트의 경우 SQL Server 인증을 사용하여 구독자에 연결하고 각 구독자로의 연결에는 다른 계정을 지정합니다. 다른 모든 구독에는 Windows 인증을 사용합니다.
  • [ @subscriber_login =] 'subscriber_login'
    동기화 시 구독자에 연결하는 데 사용하는 구독자 로그인입니다. subscriber_loginsysname이며 기본값은 NULL입니다.
  • [ @subscriber_password=] 'subscriber_password'
    구독자의 암호입니다. subscriber_security_mode0으로 설정하면 subscriber_password를 지정해야 합니다. subscriber_passwordsysname이며 기본값은 NULL입니다. 구독자 암호가 사용되는 경우에는 자동으로 암호화됩니다.

    ms175006.security(ko-kr,SQL.90).gif보안 정보:
    빈 암호를 사용하지 마십시오. 강력한 암호를 사용하십시오. 가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
  • [ @job_login = ] 'job_login'
    에이전트를 실행하는 Windows 계정의 로그인입니다. job_login은 **nvarchar(257)**이며 기본값은 NULL입니다. Windows 통합 인증을 사용할 때 배포자에 대한 에이전트 연결과 구독자에 대한 연결에 항상 이 Windows 계정을 사용합니다.
  • [ @job_password = ] 'job_password'
    에이전트를 실행하는 Windows 계정의 암호입니다. job_passwordsysname이며 기본값은 없습니다.

    ms175006.security(ko-kr,SQL.90).gif보안 정보:
    가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
  • [ @job_name =] 'job_name'
    기존 에이전트 작업의 이름입니다. job_namesysname이며 기본값은 NULL입니다. 이 매개 변수는 새로 만든 작업(기본값) 대신 기존 작업을 사용하여 구독을 동기화할 경우에만 지정합니다. sysadmin 고정 서버 역할의 멤버가 아닌 경우 job_name을 지정할 때 job_loginjob_password를 지정해야 합니다.
  • [ @frequency_type = ] frequency_type
    배포 에이전트를 예약하는 빈도입니다. frequency_typeint이며 다음 값 중 하나일 수 있습니다.

    설명

    1

    한 번

    2

    요청 시

    4

    매일

    8

    매주

    16

    매월

    32

    매월 상대

    64(기본값)

    자동 시작

    128

    되풀이

    [!참고] 값 64를 지정하면 배포 에이전트가 연속 모드로 실행됩니다. 이는 에이전트에 대해 -Continuous 매개 변수를 설정하는 것과 같습니다. 자세한 내용은 Replication Distribution Agent를 참조하십시오.

  • [ @frequency_interval = ] frequency_interval
    frequency_type으로 설정한 빈도에 적용할 값입니다. frequency_intervalint이며 기본값은 1입니다.
  • [ @frequency_relative_interval = ]frequency_relative_interval
    배포 에이전트의 날짜입니다. 이 매개 변수는 frequency_type32(매월 상대)로 설정한 경우 사용됩니다. frequency_relative_intervalint이며 다음 값 중 하나일 수 있습니다.

    설명

    1(기본값)

    첫째

    2

    둘째

    4

    셋째

    8

    넷째

    16

    마지막

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    frequency_type에 사용되는 되풀이 비율입니다. frequency_recurrence_factorint이며 기본값은 0입니다.
  • [ @frequency_subday = ]frequency_subday
    정의된 기간 동안 다시 예약하는 빈도입니다. frequency_subdayint이며 다음 값 중 하나일 수 있습니다.

    설명

    1

    한 번

    2

    4(기본값)

    8

    시간

  • [ @frequency_subday_interval = ]frequency_subday_interval
    frequency_subday에 대한 간격입니다. frequency_subday_intervalint이며 기본값은 5입니다.
  • [ @active_start_time_of_day = ] active_start_time_of_day
    하루 중에서 배포 에이전트가 처음으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_start_time_of_dayint이며 기본값은 0입니다.
  • [ @active_end_time_of_day = ] active_end_time_of_day
    하루 중에서 배포 에이전트가 마지막으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_end_time_of_dayint이며 기본값은 235959입니다.
  • [ @active_start_date = ] active_start_date
    배포 에이전트가 처음으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_start_dateint이며 기본값은 0입니다.
  • [ @active_end_date = ] active_end_date
    배포 에이전트가 마지막으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_end_dateint이며 기본값은 99991231입니다.
  • [ @dts_package_name = ] 'dts_package_name'
    DTS(데이터 변환 서비스) 패키지의 이름을 지정합니다. dts_package_namesysname이며 기본값은 NULL입니다. 예를 들어 DTSPub_Package의 패키지 이름을 지정하려면 매개 변수가 @dts_package_name = N'DTSPub_Package'여야 합니다.
  • [ @dts_package_password = ] 'dts_package_password'
    패키지 실행에 필요한 암호를 지정합니다. dts_package_passwordsysname이며 기본값은 NULL입니다.

    [!참고] dts_package_name이 지정된 경우 암호를 지정해야 합니다.

  • [ @dts_package_location = ] 'dts_package_location'
    패키지 위치를 지정합니다. dts_package_location은 **nvarchar(12)**이며 기본값은 DISTRIBUTOR입니다. 패키지 위치는 distributor 또는 subscriber일 수 있습니다.
  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Microsoft 동기화 관리자를 통해 구독을 동기화할 수 있는지 여부입니다. enabled_for_syncmgr는 **nvarchar(5)**이며 기본값은 FALSE입니다. false인 경우 구독이 동기화 관리자에 등록되지 않습니다. true인 경우에는 구독이 동기화 관리자에 등록되며 SQL Server Management Studio를 시작하지 않고 구독을 동기화할 수 있습니다.
  • [ @distribution_job_name= ] 'distribution_job_name'
    내부적으로만 사용됩니다.
  • [ @publisher = ] 'publisher'
    게시자의 이름입니다. publishersysname이며 기본값은 NULL입니다.
  • [ @subscriber_provider= ] 'subscriber_provider'
    비-SQL Server(Non-SQL Server) 데이터 원본용 OLE DB 공급자를 등록할 때 사용하는 고유 PROGID(프로그래밍 식별자)입니다. subscriber_providersysname이며 기본값은 NULL입니다. subscriber_provider는 배포자에 설치된 OLE DB 공급자에 대해 고유해야 합니다. subscriber_provider는 비-SQL Server(Non-SQL Server) 구독자에만 지원됩니다.
  • [ @subscriber_datasrc= ] 'subscriber_datasrc'
    OLE DB 공급자가 인식하는 데이터 원본의 이름입니다. subscriber_datasrc는 **nvarchar(4000)**이며 기본값은 NULL입니다. subscriber_datasrc는 DBPROP_INIT_DATASOURCE 속성으로 전달되어 OLE DB 공급자를 초기화합니다. subscriber_datasrc는 비-SQL Server(Non-SQL Server) 구독자에만 지원됩니다.
  • [ @subscriber_location= ] 'subscriber_location'
    OLE DB 공급자가 인식하는 데이터베이스의 위치입니다. subscriber_location은 **nvarchar(4000)**이며 기본값은 NULL입니다. subscriber_location은 DBPROP_INIT_LOCATION 속성으로 전달되어 OLE DB 공급자를 초기화합니다. subscriber_location은 비-SQL Server(Non-SQL Server) 구독자에만 지원됩니다.
  • [ @subscriber_provider_string= ] 'subscriber_provider_string'
    데이터 원본을 식별하는 OLE DB 공급자별 연결 문자열입니다. subscriber_provider_string은 **nvarchar(4000)**이며 기본값은 NULL입니다. subscriber_provider_stringIDataInitialize로 전달되거나 DBPROP_INIT_PROVIDERSTRING 속성으로 설정되어 OLE DB 공급자를 초기화합니다. subscriber_provider_string은 비-SQL Server(Non-SQL Server) 구독자에만 지원됩니다.
  • [ @subscriber_catalog= ] 'subscriber_catalog'
    OLE DB 공급자에 연결할 때 사용하는 카탈로그입니다. subscriber_catalogsysname이며 기본값은 NULL입니다. subscriber_catalog는 DBPROP_INIT_CATALOG 속성으로 전달되어 OLE DB 공급자를 초기화합니다. subscriber_catalog는 비-SQL Server(Non-SQL Server) 구독자에만 지원됩니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_addpushsubscription_agent는 스냅숏 복제 및 트랜잭션 복제에서 사용됩니다.

사용 권한

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만이 sp_addpushsubscription_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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

참고 항목

참조

복제 저장 프로시저(Transact-SQL)
sp_addsubscription(Transact-SQL)
sp_changesubscription(Transact-SQL)
sp_dropsubscription(Transact-SQL)
sp_helpsubscription(Transact-SQL)

관련 자료

방법: 밀어넣기 구독 만들기(Replication Transact-SQL Programming)
How to: Create a Subscription for a Non-SQL Server Subscriber (Replication Transact-SQL Programming)
게시 구독

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • @frequency_type64를 지정하면 배포 에이전트가 연속 모드로 실행된다는 참고를 추가했습니다.