sp_changemergepublication(Transact-SQL)
병합 게시의 속성을 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
구문
sp_changemergepublication [ @publication= ] 'publication'
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
인수
[ @publication=\] 'publication'
게시의 이름입니다. publication은 sysname이며 기본값은 없습니다.[ @property=\] 'property'
지정한 게시에 대해 변경할 속성입니다. property는 sysname이며 다음 표에 나와 있는 값 중 하나일 수 있습니다.[ @value=\] 'value'
지정한 속성에 대한 새 값입니다. value는 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 3.5 SP1 구독자에 대해서는 지원되지 않습니다.
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이면 제한이 없습니다. 동시에 실행하도록 예약된 병합 프로세스 수가 이 값보다 클 경우 초과 작업은 currentlmerge 프로세스가 완료될 때까지 큐에서 기다립니다.
max_concurrent_dynamic_snapshots
매개 변수가 있는 행 필터를 사용하는 병합 게시에 대해 현재 실행할 수 있는 필터링된 데이터 스냅숏을 생성할 최대 동시 스냅숏 세션 수를 나타내는 int입니다. 0이면 제한이 없습니다. 동시에 실행되도록 예약된 스냅숏 프로세스 수가 이 값보다 클 경우 초과 작업은 현재 병합 프로세스가 완료될 때까지 큐에서 기다립니다.
post_snapshot_script
.sql 파일 위치에 대한 포인터를 지정합니다. 배포 에이전트 또는 병합 에이전트는 초기 동기화 동안 다른 복제된 개체 스크립트 및 데이터를 모두 적용한 후에 포스트 스냅숏 스크립트를 실행합니다. 이 속성을 변경하려면 새 스냅숏이 필요합니다.
pre_snapshot_script
.sql 파일 위치에 대한 포인터를 지정합니다. 병합 에이전트는 구독자에서 스냅숏을 적용할 때 복제된 개체 스크립트를 실행하기 전에 프리 스냅숏 스크립트를 실행합니다. 이 속성을 변경하려면 새 스냅숏이 필요합니다.
publication_compatibility_level
100RTM
SQL Server 2008
90RTM
SQL Server 2005
80SP3
SQL Server 2000 SP3
80SP2
SQL Server 2000 SP2
80SP1
SQL Server 2000 SP2
80RTM
SQL Server 2000
70 SP4
SQL Server 7.0 SP4
70SP3
SQL Server 7.0 SP3
70SP2
SQL Server 7.0 SP2
70SP1
SQL Server 7.0 SP1
70RTM
SQL Server 7.0
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
참고partition_groups를 사용한 후 다시 setupbelongs를 사용하고 changemergearticle에서 use_partition_groups=false를 설정하면 스냅숏이 생성된 후 이러한 작업이 올바로 반영되지 않을 수 있습니다. 스냅숏이 생성하는 트리거는 파티션 그룹과 호환됩니다. 이 문제를 해결하려면 상태를 비활성으로 설정하고 use_partition_groups를 설정한 다음 상태를 활성으로 설정합니다.true
게시에서 사전 계산 파티션을 사용합니다.
false
게시에서 사전 계산 파티션을 사용하지 않습니다.
validate_subscriber_info
구독자 정보를 검색하는 데 사용할 함수를 나열하고 구독자가 정보가 일관성 있게 분할되는지 확인하기 위해 사용하는 동적 필터링 조건의 유효성을 검사합니다.
web_synchronization_url
웹 동기화에 사용되는 인터넷 URL의 기본값입니다.
NULL(기본값)
property에 대해 지원되는 값 목록을 반환합니다.
[ @force\_invalidate\_snapshot = ] force_invalidate_snapshot
이 저장 프로시저가 수행한 동작으로 인해 기존 스냅숏이 무효화될 수도 있습니다. force_invalidate_snapshot은 bit이며 기본값은 0입니다.0인 경우 게시를 변경해도 스냅숏이 무효화되지 않습니다. 저장 프로시저가 새 스냅숏을 필요로 하는 변경을 감지하면 오류가 발생하며 변경이 수행되지 않습니다.
1인 경우 게시를 변경하면 스냅숏이 무효화될 수 있습니다. 기존 구독에 새 스냅숏이 필요한 경우 이 값은 기존 스냅숏을 사용되지 않는 것으로 표시하고 새 스냅숏을 생성할 수 있는 권한을 부여합니다.
변경 시 새 스냅숏을 생성해야 하는 속성에 대해서는 주의 섹션을 참조하십시오.
[ @force\_reinit\_subscription = ] force_reinit_subscription
이 저장 프로시저가 수행한 동작으로 인해 기존 구독을 다시 초기화해야 할 수도 있습니다. force_reinit_subscription은 bit이며 기본값은 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(to 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, the SQL Server를 사용하여 Active Directory에 게시 개체를 나열하려면 SQL Server 개체가 Active Directory에 이미 만들어져 있어야 합니다.
예
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks]
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을 실행할 수 있습니다.