적용 대상:SQL Server
병합 게시의 속성을 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
구문
sys.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 기본값인 nvarchar(255)NULL.
다음 표에 나열된 값 중 하나일 수 있습니다.
이 표에서는 변경할 수 있는 게시의 속성 및 그 속성의 값에 대한 제한에 대해 설명합니다.
| 속성 | 값 | 설명 |
|---|---|---|
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입니다. 충돌 정리가 필요하지 않음을 의미하도록 conflict_retention 설정합니다0. |
|
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입니다. 구독이 보존 기간 내에 동기화되지 않고 수신된 보류 중인 변경 내용이 배포자의 정리 작업으로 제거된 경우 구독이 만료되고 다시 초기화되어야 합니다. 허용되는 최대 보존 기간은 현재 날짜부터 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=falsechangemergearticle경우 스냅샷을 생성한 후에 올바르게 반영되지 않을 수 있습니다. 스냅샷에서 생성된 트리거는 파티션 그룹을 준수합니다.이 시나리오의 해결 방법은 상태를 비활성으로 설정하고 수정한 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_foldercompress_snapshotdynamic_filtersftp_addressftp_loginftp_passwordftp_portftp_subdirectorypost_snapshot_script-
publication_compatibility_level(에80SP3만 해당) pre_snapshot_scriptsnapshot_in_defaultfoldersync_modeuse_partition_groups
다음 속성을 변경하려면 기존 구독을 다시 초기화해야 합니다. @force_reinit_subscription 매개 변수의 1값을 지정해야 합니다.
dynamic_filtersvalidate_subscriber_info
게시 개체를 사용하여 publish_to_active_directoryActive 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수 있습니다.