적용 대상:SQL Server
Azure SQL Managed Instance
밀어넣기 구독의 동기화를 예약하는 데 사용된 새 에이전트 작업을 병합 게시에 추가합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
Important
원격 배포자를 사용하여 게시자를 구성할 때 @job_login 및 @job_password 비롯한 모든 매개 변수에 제공된 값은 일반 텍스트로 배포자로 전송됩니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 연결 암호화에 대한 SQL Server 데이터베이스 엔진 구성을 참조하세요.
참고 항목
Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.
구문
sys.sp_addmergepushsubscription_agent
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'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 = ] N'enabled_for_syncmgr' ]
[ ; ]
인수
[ @publication = ] N'publication'
게시의 이름 @publication 기본값이 없는 sysname입니다.
[ @subscriber = ] N'subscriber'
구독자의 이름입니다.
@subscriber sysname이며 기본값은 .입니다NULL.
[ @subscriber_db = ] N'subscriber_db'
구독 데이터베이스의 이름입니다.
@subscriber_db sysname이며 기본값은 .입니다NULL.
[ @subscriber_security_mode = ] subscriber_security_mode
동기화할 때 구독자에 연결할 때 사용할 보안 모드입니다.
@subscriber_security_mode 기본값인 smallint1. 다음 값은 보안 모드를 정의합니다.
-
0는 SQL Server 인증을 지정합니다. -
1는 Windows 인증 지정합니다. -
2는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 암호 인증을 지정합니다. -
3는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 통합 인증을 지정합니다. -
4는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 토큰 인증을 지정합니다.
Important
가능하면 Windows 인증을 사용하세요.
[ @subscriber_login = ] N'subscriber_login'
동기화할 때 구독자에 연결할 때 사용할 구독자 로그인입니다.
@subscriber_login sysname이며 기본값은 .입니다NULL.
@subscriber_security_mode 설정된 경우 0 필요합니다.
[ @subscriber_password = ] N'subscriber_password'
SQL Server 인증에 대한 구독자 암호입니다.
NULL입니다.
@subscriber_security_mode 설정된 경우 0 필요합니다. 구독자 암호가 사용되는 경우 자동으로 암호화됩니다.
Important
가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
[ @publisher_security_mode = ] publisher_security_mode
동기화할 때 게시자에 연결할 때 사용할 보안 모드입니다.
@publisher_security_mode 기본값인 smallint1. 다음 값은 보안 모드를 정의합니다.
-
0는 SQL Server 인증을 지정합니다. -
1는 Windows 인증 지정합니다. -
2는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 암호 인증을 지정합니다. -
3는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 통합 인증을 지정합니다. -
4는 SQL Server 2022(16.x) CU 6부터 Microsoft Entra 토큰 인증을 지정합니다.
Important
가능하면 Windows 인증을 사용하세요.
[ @publisher_login = ] N'publisher_login'
동기화할 때 게시자에 연결할 때 사용할 로그인입니다.
@publisher_login sysname이며 기본값은 .입니다NULL.
[ @publisher_password = ] N'publisher_password'
게시자에 연결할 때 사용되는 암호입니다.
@publisher_password sysname이며 기본값은 .입니다NULL.
Important
빈 비밀번호를 사용하지 마세요. 강력한 비밀번호를 사용하세요. 가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
[ @job_login = ] N'job_login'
에이전트가 실행되는 Windows 계정에 대한 로그인입니다.
@job_login 기본값인 nvarchar(257)NULL. 이 Windows 계정은 항상 배포자에 대한 에이전트 연결 및 Windows 통합 인증을 사용할 때 구독자 및 게시자에 대한 연결에 사용됩니다.
[ @job_password = ] N'job_password'
에이전트가 실행되는 Windows 계정의 암호입니다. @job_password 기본값이 없는 sysname입니다.
Important
가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.
[ @job_name = ] N'job_name'
기존 에이전트 작업의 이름입니다.
@job_name sysname이며 기본값은 .입니다NULL. 이 매개 변수는 새로 만든 작업(기본값) 대신 기존 작업을 사용하여 구독을 동기화할 때만 지정됩니다.
시스템 관리자 고정 서버 역할에 속하지 않은 경우, @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 |
Day |
9 |
평일 |
10 |
주말 |
NULL(기본값) |
[ @frequency_relative_interval = ] frequency_relative_interval
병합 에이전트 날짜입니다. 이 매개 변수는 @frequency_type32사용 됩니다.
@frequency_relative_interval int이며 다음 값 중 하나일 수 있습니다.
| 값 | 설명 |
|---|---|
1 |
첫째 |
2 |
두 번째 |
4 |
세 번째 |
8 |
네 번째 |
16 |
마지막 |
NULL(기본값) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
@frequency_type 사용되는 되풀이 요소입니다.
@frequency_recurrence_factor 기본값인 int0.
[ @frequency_subday = ] frequency_subday
정의된 기간 동안 다시 예약하는 빈도입니다. @frequency_subday int이며 다음 값 중 하나일 수 있습니다.
| 값 | 설명 |
|---|---|
1 |
한 번 |
2 |
두 번째 |
4 |
Minute |
8 |
Hour |
NULL(기본값) |
[ @frequency_subday_interval = ] frequency_subday_interval
@frequency_subday 간격입니다.
@frequency_subday_interval 기본값인 NULL입니다.
[ @active_start_time_of_day = ] active_start_time_of_day
병합 에이전트 처음 예약되고 형식HHmmss이 지정된 하루 중 시간입니다.
@active_start_time_of_day 기본값인 int0.
[ @active_end_time_of_day = ] active_end_time_of_day
병합 에이전트 예약이 중지되고 형식이 HHmmss지정된 하루 중 시간입니다.
@active_end_time_of_day 기본값인 int235959.
[ @active_start_date = ] active_start_date
병합 에이전트 처음 예약된 날짜로 형식이 지정됩니다yyyyMMdd.
@active_start_date 기본값인 0입니다.
[ @active_end_date = ] active_end_date
병합 에이전트 예약이 중지된 날짜로, 형식은 다음과 같습니다yyyyMMdd.
@active_end_date 기본값인 99991231입니다.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Windows 동기화 관리자를 통해 구독을 동기화할 수 있는지 여부를 지정합니다.
@enabled_for_syncmgr 기본값인 nvarchar(5)false.
- 구독이 Synchronization Manager에 등록되지 않은 경우
false - 이 경우
true구독이 Synchronization Manager에 등록되고 SQL Server Management Studio를 시작하지 않고 동기화할 수 있습니다.
반환 코드 값
0(성공) 또는 1(실패).
설명
sp_addmergepushsubscription_agent는 병합 복제에 사용되며 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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
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수 있습니다.