스냅샷 속성은 복제 저장 프로시저를 사용하여 프로그래밍 방식으로 정의하고 수정할 수 있습니다. 여기서 사용되는 저장 프로시저는 게시 유형에 따라 달라집니다.
스냅샷 또는 트랜잭션 게시를 만들 때 스냅샷 속성을 구성하려면
게시자에서 sp_addpublication 실행합니다. @publication에 대해 게시 이름을 지정하고, @repl_freq 값은 스냅샷 또는 연속 중 하나로 지정하며, 다음의 스냅샷 관련 매개 변수 중 하나 이상을 선택합니다.
@alt_snapshot_folder - 이 게시의 스냅샷이 스냅샷 기본 폴더 대신 또는 그 위치에서 액세스되는 경우 경로를 지정합니다.
@compress_snapshot - 대체 스냅샷 폴더의 스냅샷 파일이 Microsoft CAB 파일 형식으로 압축되는 경우 true 값을 지정합니다.
@pre_snapshot_script - 초기 스냅샷이 적용되기 전에 초기화 중에 구독자에서 실행될 .sql 파일의 파일 이름과 전체 경로를 지정합니다.
@post_snapshot_script - 초기 스냅샷이 적용된 후 초기화 중에 구독자에서 실행될 .sql 파일의 파일 이름과 전체 경로를 지정합니다.
@snapshot_in_defaultfolder - 기본이 아닌 위치에서만 스냅샷을 사용할 수 있는 경우 false 값을 지정합니다.
게시를 만드는 방법에 대한 자세한 내용은 게시 만들기를 참조하세요.
병합 게시를 만들 때 스냅샷 속성을 구성하려면
게시자에서 sp_addmergepublication 실행합니다. @publication의 게시 이름을 지정하고, @repl_freq에 대해 스냅샷 또는 연속 값을 설정하며, 다음과 같은 스냅샷 관련 매개 변수 중 하나 이상을 지정합니다.
@alt_snapshot_folder - 이 게시의 스냅샷이 스냅샷 기본 폴더 대신 또는 그 위치에서 액세스되는 경우 경로를 지정합니다.
@compress_snapshot - 대체 스냅샷 폴더의 스냅샷 파일이 CAB 파일 형식으로 압축되는 경우 true 값을 지정합니다.
@pre_snapshot_script - 초기 스냅샷이 적용되기 전에 초기화 중에 구독자에서 실행될 .sql 파일의 파일 이름과 전체 경로를 지정합니다.
@post_snapshot_script - 초기 스냅샷이 적용된 후 초기화 중에 구독자에서 실행될 .sql 파일의 파일 이름과 전체 경로를 지정합니다.
@snapshot_in_defaultfolder - 기본이 아닌 위치에서만 스냅샷을 사용할 수 있는 경우 false 값을 지정합니다.
게시를 만드는 방법에 대한 자세한 내용은 게시 만들기를 참조하세요.
기존 스냅샷 또는 트랜잭션 게시의 스냅샷 속성을 수정하려면
게시 데이터베이스의 게시자에서 sp_changepublication 실행합니다. @force_invalidate_snapshot값 1을 지정하고 @property 다음 값 중 하나를 지정합니다.
alt_snapshot_folder -also @value 대체 스냅샷 폴더에 대한 새 경로를 지정합니다.
compress_snapshot - 대체 스냅샷 폴더의 스냅샷 파일이 CAB 파일 형식으로 압축되는지 여부를 나타내기 위해 @valuetrue 또는 false 값을 지정합니다.
pre_snapshot_script - @value 초기 스냅샷이 적용되기 전에 초기화 중 구독자에서 실행될 .sql 파일의 파일 이름과 전체 경로를 지정합니다.
post_snapshot_script - 또한 @value 초기 스냅샷이 적용된 후 초기화 중에 구독자에서 실행될 .sql 파일의 전체 경로와 파일 이름을 지정합니다.
snapshot_in_defaultfolder - 기본이 아닌 위치에서만 스냅샷을 사용할 수 있는지 여부를 나타내기 위해 true 또는 false 값을 지정합니다.
(선택 사항) 게시 데이터베이스의 게시자에서 sp_changepublication_snapshot 실행합니다. @publication 및 예약 또는 보안 자격 증명 매개 변수 중 하나 이상을 지정하십시오.
중요합니다
가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 스크립트 파일에 자격 증명을 저장해야 하는 경우 무단 액세스를 방지하기 위해 파일을 보호해야 합니다.
명령 프롬프트에서 복제 스냅샷 에이전트 를 실행하거나 스냅샷 에이전트 작업을 시작하여 새 스냅샷을 생성합니다. 자세한 내용은 초기 스냅샷 만들기 및 적용을 참조하세요.
기존 병합 게시의 스냅샷 속성을 수정하려면
게시 데이터베이스의 게시자에서 sp_changemergepublication 실행합니다. @force_invalidate_snapshot값 1을 지정하고 @property 다음 값 중 하나를 지정합니다.
alt_snapshot_folder -also @value 대체 스냅샷 폴더에 대한 새 경로를 지정합니다.
compress_snapshot - 대체 스냅샷 폴더의 스냅샷 파일이 CAB 파일 형식으로 압축되는지 여부를 나타내기 위해 @valuetrue 또는 false 값을 지정합니다.
pre_snapshot_script - 초기화 시 구독자에서 초기 스냅숏이 적용되기 전에 실행될 .sql 파일의 전체 경로와 파일 이름을 @value에 지정합니다.
post_snapshot_script - 또한 @value 초기 스냅샷이 적용된 후 초기화 중에 구독자에서 실행될 .sql 파일의 전체 경로와 파일 이름을 지정합니다.
snapshot_in_defaultfolder - 기본이 아닌 위치에서만 스냅샷을 사용할 수 있는지 여부를 나타내기 위해 true 또는 false 값을 지정합니다.
명령 프롬프트에서 복제 스냅샷 에이전트 를 실행하거나 스냅샷 에이전트 작업을 시작하여 새 스냅샷을 생성합니다. 자세한 내용은 초기 스냅샷 만들기 및 적용을 참조하세요.
예시
이 예제에서는 대체 스냅샷 폴더와 압축된 스냅샷을 사용하는 게시를 만듭니다.
-- 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".
--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @owner AS sysname;
DECLARE @snapshot_share AS sysname;
SET @publicationDB = N'AdventureWorks2012';
SET @publication = N'AdvWorksSalesOrdersMergeAltSnapshot';
SET @article = N'SpecialOffer';
SET @owner = N'Sales';
SET @snapshot_share = '\\' + $(InstanceName) + '\AltSnapshotFolder';
-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname=N'merge publish',
@value = N'true';
-- Create new merge publication with an alternate snapshot location.
USE [AdventureWorks]
EXEC sp_addmergepublication
-- required parameters
@publication = @publication,
@snapshot_in_defaultfolder = N'false',
@alt_snapshot_folder = @snapshot_share,
@compress_snapshot = N'true';
-- Create the snapshot job for the publication.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = $(Login),
@job_password = $(Password);
-- Add an article.
EXEC sp_addmergearticle
@publication = @publication,
@article = @article,
@source_object = @article,
@type = N'table',
@source_owner = @owner,
@destination_owner = @owner;
-- Start the snapshot job.
EXEC sp_startpublication_snapshot
@publication = @publication;
GO
또한 참조하십시오
대체 스냅샷 폴더 위치
압축된 스냅샷
스냅샷 적용 전후에 스크립트 실행
복제 시스템 저장 프로시저 개념
FTP를 통해 스냅샷 전송
게시 및 아티클 속성 변경