sp_changemergepublication(Transact-SQL)
적용 대상: SQL Server
병합 게시의 속성을 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
구문
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
인수
[ @publication = ] N'publication'
게시의 이름 @publication 기본값이 없는 sysname입니다.
[ @property = ] N'property'
지정된 게시에 대해 변경할 속성입니다. @property sysname이며 다음 표에 나열된 값 중 하나일 수 있습니다.
[ @value = ] N'value'
지정된 속성의 새 값입니다. @value 기본값NULL
인 nvarchar(255)입니다.
다음 표에 나열된 값 중 하나일 수 있습니다.
이 표에서는 변경할 수 있는 게시의 속성 및 그 속성의 값에 대한 제한에 대해 설명합니다.
속성 | 값 | 설명 |
---|---|---|
allow_anonymous |
true |
익명 구독을 허용합니다. |
false |
익명 구독은 허용되지 않습니다. | |
allow_partition_realignment |
true |
삭제는 더 이상 구독자의 파티션에 속하지 않는 데이터를 제거하여 파티션 변경 결과를 반영하기 위해 구독자에게 전송됩니다. 이 옵션은 기본 동작입니다. |
false |
이전 파티션의 데이터는 구독자에 남아 있습니다. 여기서 게시자의 이 데이터를 변경해도 이 구독자에 복제되지 않습니다. 대신 구독자에서 변경한 내용이 게시자에 복제됩니다. 기록 목적으로 데이터에 액세스할 수 있어야 하는 경우 이전 파티션에서 구독의 데이터를 유지하는 데 사용됩니다. | |
allow_pull |
true |
끌어오기 구독은 지정된 게시에 대해 허용됩니다. |
false |
끌어오기 구독은 지정된 게시에 대해 허용되지 않습니다. | |
allow_push |
true |
지정된 게시에 대해 밀어넣기 구독을 허용합니다. |
false |
밀어넣기 구독은 지정된 게시에 대해 허용되지 않습니다. | |
allow_subscriber_initiated_snapshot |
true |
구독자는 스냅샷 프로세스를 시작할 수 있습니다. |
false |
구독자는 스냅샷 프로세스를 시작할 수 없습니다. | |
allow_subscription_copy |
true |
이 게시를 구독하는 구독 데이터베이스를 복사할 수 있습니다. |
false |
이 게시를 구독하는 구독 데이터베이스는 복사할 수 없습니다. | |
allow_synctoalternate |
true |
대체 동기화 파트너가 이 게시자를 동기화할 수 있도록 허용합니다. |
false |
대체 동기화 파트너가 이 게시자를 동기화하도록 허용하지 않습니다. | |
allow_web_synchronization |
true |
구독은 HTTPS를 통해 동기화할 수 있습니다. |
false |
구독은 HTTPS를 통해 동기화할 수 없습니다. | |
alt_snapshot_folder |
스냅샷의 대체 폴더 위치를 지정합니다. | |
automatic_reinitialization_policy |
1 |
구독을 다시 초기화하기 전에 구독자에서 변경 내용이 업로드됩니다. |
0 |
변경 내용을 업로드하지 않고 구독을 다시 초기화합니다. | |
centralized_conflicts |
true |
모든 충돌 레코드는 게시자에 저장됩니다. 이 속성을 변경하면 기존 구독자를 다시 초기화해야 합니다. |
false |
충돌 레코드는 충돌 해결에서 손실된 서버에 저장됩니다. 이 속성을 변경하면 기존 구독자를 다시 초기화해야 합니다. | |
compress_snapshot |
true |
대체 스냅샷 폴더의 스냅샷을 CAB 형식으로 압축합니다. 기본 스냅샷 폴더의 스냅샷은 압축할 수 없습니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. |
false |
기본적으로 스냅샷은 압축되지 않습니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. | |
conflict_logging |
publisher |
충돌 레코드는 게시자에 저장됩니다. |
subscriber |
충돌 레코드가 충돌을 발생시킨 구독자에 저장됩니다. SQL Server Compact 구독자에 대해서는 지원되지 않습니다. | |
both |
충돌 레코드는 게시자와 구독자 모두에 저장됩니다. | |
conflict_retention |
충돌이 유지되는 보존 기간(일)을 지정하는 int입니다. 충돌 정리가 필요하지 않음을 의미하도록 0 설정합니다conflict_retention . |
|
description |
게시에 대한 설명입니다. | |
dynamic_filters |
true |
동적 절에 따라 게시를 필터링합니다. |
false |
게시는 동적으로 필터링되지 않습니다. | |
enabled_for_internet |
true |
인터넷에서 게시를 사용할 수 있습니다. FTP(파일 전송 프로토콜)를 사용하여 스냅샷 파일을 구독자에게 전송할 수 있습니다. 게시에 대한 동기화 파일은 디렉터리에 배치 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp 됩니다. |
false |
인터넷에서는 게시를 사용할 수 없습니다. | |
ftp_address |
배포자에 대한 FTP 서비스의 네트워크 주소입니다. 게시 스냅샷 파일이 저장될 위치를 지정합니다. | |
ftp_login |
FTP 서비스에 연결하는 데 사용되는 사용자 이름입니다. | |
ftp_password |
FTP 서비스에 연결하는 데 사용되는 사용자 암호입니다. | |
ftp_port |
배포자에 대한 FTP 서비스의 포트 번호입니다. 게시 스냅샷 파일이 저장되는 FTP 사이트의 TCP 포트 번호를 지정합니다. | |
ftp_subdirectory |
게시에서 FTP를 사용하여 스냅샷 전파를 지원하는 경우 스냅샷 파일이 만들어지는 위치를 지정합니다. | |
generation_leveling_threshold |
int | 하나의 생성에 포함되는 변경 내용 수를 지정합니다. 세대는 게시자 또는 구독자에게 전달되는 변경 내용의 컬렉션입니다. |
keep_partition_changes |
true |
동기화가 최적화되고 변경된 파티션에 행이 있는 구독자만 영향을 받습니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. |
false |
동기화는 최적화되지 않으며, 파티션에서 데이터가 변경될 때 구독자에게 전송되는 파티션이 확인됩니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. | |
max_concurrent_merge |
게시에 대해 실행할 수 있는 최대 동시 병합 프로세스 수를 나타내는 int입니다. 0이면 제한이 없습니다. 이보다 많은 수의 병합 프로세스가 동시에 실행되도록 예약된 경우 현재 전체 프로세스가 완료될 때까지 초과 작업이 큐에 배치됩니다. | |
max_concurrent_dynamic_snapshots |
매개 변수가 있는 행 필터를 사용하는 병합 게시에 대해 동시에 실행할 수 있는 필터링된 데이터 스냅샷을 생성하기 위한 최대 스냅샷 세션 수를 나타내는 int입니다. 이 경우 0 제한이 없습니다. 이 수 이상의 스냅샷 프로세스가 동시에 실행되도록 예약된 경우 현재 병합 프로세스가 완료될 때까지 초과 작업이 큐에 배치됩니다. |
|
post_snapshot_script |
파일 위치에 대한 포인터를 .sql 지정합니다. 배포 에이전트 또는 병합 에이전트 초기 동기화 중에 복제된 다른 모든 개체 스크립트와 데이터가 적용된 후 스냅샷 후 스크립트를 실행합니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. |
|
pre_snapshot_script |
파일 위치에 대한 포인터를 .sql 지정합니다. 병합 에이전트는 구독자에서 스냅샷을 적용할 때 복제된 개체 스크립트를 실행하기 전에 프리 스냅샷 스크립트를 실행합니다. 이 속성을 변경하려면 새 스냅샷이 필요합니다. |
|
publication_compatibility_level |
100RTM |
SQL Server 2008(10.0.x) |
90RTM |
SQL Server 2005(9.x) | |
publish_to_activedirectory |
true |
이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다. Active Directory에 게시 정보를 더 이상 추가할 수 없습니다. |
false |
Active Directory에서 게시 정보를 제거합니다. | |
replicate_ddl |
1 |
게시자에서 실행되는 DDL(데이터 정의 언어) 문이 복제됩니다. |
0 |
DDL 문은 복제되지 않습니다. | |
retention |
지정된 발행물의 변경 내용을 저장할 단위 수를 retention_period_unit 나타내는 int입니다. 구독이 보존 기간 내에 동기화되지 않고 수신된 보류 중인 변경 내용이 배포자의 정리 작업으로 제거된 경우 구독이 만료되고 다시 초기화되어야 합니다. 허용되는 최대 보존 기간은 현재 날짜부터 9999년 12월 31일까지의 일 수입니다.참고: 병합 게시의 보존 기간은 서로 다른 표준 시간대의 구독자를 수용할 수 있도록 24시간의 유예 기간을 둡니다. |
|
retention_period_unit |
day |
보존 기간은 일 단위로 지정됩니다. |
week |
보존 기간(주)을 지정합니다. | |
month |
보존 기간은 월 단위로 지정됩니다. | |
year |
보존 기간은 연도로 지정됩니다. | |
snapshot_in_defaultfolder |
true |
스냅샷 파일은 기본 스냅샷 폴더에 저장됩니다. |
false |
스냅샷 파일은 에 의해 alt_snapshot_folder 지정된 대체 위치에 저장됩니다. 이 조합은 스냅샷 파일이 기본 위치와 대체 위치 모두에 저장되도록 지정합니다. |
|
snapshot_ready |
true |
게시에 대한 스냅샷을 사용할 수 있습니다. |
false |
게시에 대한 스냅샷을 사용할 수 없습니다. | |
status |
active |
게시가 활성 상태입니다. |
inactive |
게시가 비활성 상태입니다. | |
sync_mode |
native 또는bcp native |
모든 테이블의 기본 모드 대량 복사 프로그램 출력이 초기 스냅샷에 사용됩니다. |
character 또는 bcp character |
모든 테이블의 문자 모드 대량 복사 프로그램 출력은 SQL Server가 아닌 모든 구독자에 필요한 초기 스냅샷에 사용됩니다. | |
use_partition_groups 참고: 파티션 그룹을 사용한 후 사용 setupbelongs 으로 되돌리고 설정한 use_partition_groups=false changemergearticle 경우 스냅샷을 생성한 후에 올바르게 반영되지 않을 수 있습니다. 스냅샷에서 생성된 트리거는 파티션 그룹을 준수합니다.이 시나리오의 해결 방법은 상태를 비활성으로 설정하고 수정한 use_partition_groups 다음 상태를 활성으로 설정하는 것입니다. |
true |
게시는 사전 계산 파티션을 사용합니다. |
false |
게시는 미리 계산된 파티션을 사용하지 않습니다. | |
validate_subscriber_info |
구독자 정보를 검색하는 데 사용되는 함수를 나열합니다. 그런 다음 구독자에 사용되는 동적 필터링 조건의 유효성을 검사하여 정보가 일관되게 분할되었는지 확인합니다. | |
web_synchronization_url |
웹 동기화에 사용되는 인터넷 URL의 기본값입니다. | |
NULL (기본값) |
@property 지원되는 값 목록을 반환합니다. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
이 저장 프로시저에서 수행한 작업이 기존 스냅샷을 무효화할 수 있음을 인정합니다. @force_invalidate_snapshot 비트이며 기본값은 .입니다0
.
0
는 게시를 변경해도 스냅샷이 무효화되지 않도록 지정합니다. 저장 프로시저에서 변경에 새 스냅샷이 필요하다는 것을 감지하면 오류가 발생하고 변경되지 않습니다.1
는 게시를 변경하면 스냅샷이 무효화될 수 있음을 지정합니다. 새 스냅샷이 필요한 기존 구독이 있는 경우 기존 스냅샷을 사용되지 않는 것으로 표시하고 새 스냅샷을 생성할 수 있는 권한을 부여합니다.
변경될 때 새 스냅샷을 생성해야 하는 속성은 설명 섹션을 참조하세요.
[ @force_reinit_subscription = ] force_reinit_subscription
이 저장 프로시저에서 수행한 작업에 기존 구독을 다시 초기화해야 할 수 있음을 인정합니다. @force_reinit_subscription 비트이며 기본값은 .입니다0
.
0
는 게시를 변경해도 구독을 다시 초기화하지 않아도 되도록 지정합니다. 저장 프로시저가 변경 시 기존 구독을 다시 초기화해야 한다는 것을 감지하면 오류가 발생하고 변경되지 않습니다.1
는 게시 변경 내용이 기존 구독을 다시 초기화하고 구독 다시 초기화가 발생할 수 있는 권한을 부여한다는 의미입니다.
변경될 때 모든 기존 구독을 다시 초기화해야 하는 속성은 설명 섹션을 참조하세요.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
sp_changemergepublication
는 병합 복제에 사용됩니다.
다음 속성을 변경하려면 새 스냅샷이 생성되어야 합니다. @force_invalidate_snapshot 매개 변수의 1
값을 지정해야 합니다.
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level
(에80SP3
만 해당)pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
다음 속성을 변경하려면 기존 구독을 다시 초기화해야 합니다. @force_reinit_subscription 매개 변수의 1
값을 지정해야 합니다.
dynamic_filters
validate_subscriber_info
게시 개체를 사용하여 publish_to_active_directory
Active Directory에 나열하려면 ACTIVE Directory에서 SQL Server 개체를 이미 만들어야 합니다.
예제
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
사용 권한
sysadmin 고정 서버 역할 또는 db_owner 고정 데이터베이스 역할의 멤버만 실행할 sp_changemergepublication
수 있습니다.