스냅숏 속성 구성(복제 Transact-SQL 프로그래밍)Configure Snapshot Properties (Replication Transact-SQL Programming)

복제 저장 프로시저를 사용하여 스냅숏 속성을 프로그래밍 방식으로 정의 및 수정할 수 있습니다. 사용되는 저장 프로시저는 게시 유형에 따라 달라집니다.Snapshot properties can be defined and modified programmatically using replication stored procedures, where the stored procedures used depend on the type of publication.

스냅숏 또는 트랜잭션 게시를 만들 때 스냅숏 속성을 구성하려면To configure snapshot properties when creating a snapshot or transactional publication

  1. 게시자에서 sp_addpublication을 실행합니다.At the Publisher, execute sp_addpublication. 이때 @publication에 게시 이름을 지정하고 @repl_freqsnapshot 또는 @repl_freq를 지정하며 다음과 같은 스냅숏 관련 매개 변수를 하나 이상 지정합니다.Specify a publication name for @publication, a value of either snapshot or continuous for @repl_freq, and one or more of the following snapshot-related parameters:

    • @alt_snapshot_folder - 이 게시에 대한 스냅숏을 기본 스냅숏 폴더 이외 위치 또는 기본 스냅숏 폴더에 추가된 위치에서 액세스하는 경우 경로를 지정합니다.@alt_snapshot_folder - specify a path if the snapshot for this publication is accessed from that location instead of or in addition to the snapshot default folder.

    • @compress_snapshot - 대체 스냅숏 폴더의 스냅숏 파일이 CAB 파일 형식으로 압축되는 경우 true MicrosoftMicrosoft 값을 지정합니다.@compress_snapshot - specify a value of true if the snapshot files in the alternate snapshot folder are compressed in the MicrosoftMicrosoft CAB file format.

    • @pre_snapshot_script - 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.@pre_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • @post_snapshot_script - 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.@post_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • @snapshot_in_defaultfolder - 대체 스냅숏 폴더의 스냅숏 파일이 false 값을 지정합니다.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

      게시를 만드는 방법은 Create a Publication를 참조하세요.For more information about creating publications, see Create a Publication.

병합 게시를 만들 때 스냅숏 속성을 구성하려면To configure snapshot properties when creating a merge publication

  1. 게시자에서 sp_addmergepublication을 실행합니다.At the Publisher, execute sp_addmergepublication. 이때 @publication에 게시 이름을 지정하고 @repl_freqsnapshot 또는 @repl_freq를 지정하며 다음과 같은 스냅숏 관련 매개 변수를 하나 이상 지정합니다.Specify a publication name for @publication, a value of either snapshot or continuous for @repl_freq, and one or more of the following snapshot-related parameters:

    • @alt_snapshot_folder - 이 게시에 대한 스냅숏을 기본 스냅숏 폴더 이외 위치 또는 기본 스냅숏 폴더에 추가된 위치에서 액세스하는 경우 경로를 지정합니다.@alt_snapshot_folder - specify a path if the snapshot for this publication is accessed from that location instead of or in addition to the snapshot default folder.

    • @compress_snapshot - 대체 스냅숏 폴더의 스냅숏 파일이 CAB 파일 형식으로 압축되는 경우 값을 지정합니다.@compress_snapshot - specify a value of true if the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • @pre_snapshot_script - 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.@pre_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • @post_snapshot_script - 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.@post_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • @snapshot_in_defaultfolder - 대체 스냅숏 폴더의 스냅숏 파일이 false 값을 지정합니다.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

  2. 게시를 만드는 방법은 Create a Publication를 참조하세요.For more information about creating publications, see Create a Publication.

기존 스냅숏 또는 트랜잭션 게시의 스냅숏 속성을 수정하려면To modify snapshot properties of an existing snapshot or transactional publication

  1. 게시 데이터베이스의 게시자에서 sp_changepublication을 실행합니다.At the Publisher on the publication database, execute sp_changepublication. 이때 @force_invalidate_snapshot 또는 @force_invalidate_snapshot 을 지정하고 @property에 다음 값 중 하나를 지정합니다.Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder - @value을 실행합니다.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot - CAB 파일 형식으로 압축되는 경우false 또는 @value 값을 지정합니다.compress_snapshot - also specify a value of either true or false for @value to indicate whether the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • pre_snapshot_script - @value 에도 마찬가지로 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.pre_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • post_snapshot_script - @value 에도 마찬가지로 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.post_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • snapshot_in_defaultfolder - 마찬가지로 스냅숏을 기본 위치 이외 위치에서만 사용할 수 있는지 여부를 나타내는 true 또는 false 값을 지정합니다.snapshot_in_defaultfolder - also specify a value of either true or false to indicate whether the snapshot is available only in a non-default location.

  2. (옵션) 게시 데이터베이스의 게시자에서 sp_changepublication_snapshot을 실행합니다.(Optional) At the Publisher on the publication database, execute sp_changepublication_snapshot. 이때 변경할 @publication 및 하나 이상의 일정 또는 보안 자격 증명 매개 변수를 지정합니다.Specify @publication and one or more of the scheduling or security credential parameters being changed.

    중요

    가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다.When possible, prompt users to enter security credentials at runtime. 자격 증명을 스크립트 파일에 저장해야 하는 경우에는 파일에 무단으로 액세스하지 못하도록 보안을 설정해야 합니다.If you must store credentials in a script file, you must secure the file to prevent unauthorized access.

  3. 명령 프롬프트에서 Replication Snapshot Agent 를 실행하거나 스냅숏 에이전트 작업을 시작하여 새 스냅숏을 생성합니다.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. 자세한 내용은 Create and Apply the Initial Snapshot을 참조하세요.For more information, see Create and Apply the Initial Snapshot.

기존 병합 게시의 스냅숏 속성을 수정하려면To modify snapshot properties of an existing merge publication

  1. 게시 데이터베이스의 게시자에서 sp_changemergepublication을 실행합니다.At the Publisher on the publication database, execute sp_changemergepublication. 이때 @force_invalidate_snapshot 또는 @force_invalidate_snapshot 을 지정하고 @property에 다음 값 중 하나를 지정합니다.Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder - @value을 실행합니다.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot - CAB 파일 형식으로 압축되는 경우false 또는 @value 값을 지정합니다.compress_snapshot - also specify a value of either true or false for @value to indicate whether the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • pre_snapshot_script - @value 에도 마찬가지로 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.pre_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • post_snapshot_script - @value 에도 마찬가지로 초기 스냅숏을 적용하기 전에 초기화하는 동안 구독자에서 실행할 .sql 파일의 이름 및 전체 경로를 지정합니다.post_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • snapshot_in_defaultfolder - 마찬가지로 스냅숏을 기본 위치 이외 위치에서만 사용할 수 있는지 여부를 나타내는 true 또는 false 값을 지정합니다.snapshot_in_defaultfolder - also specify a value of either true or false to indicate whether the snapshot is available only in a non-default location.

  2. 명령 프롬프트에서 Replication Snapshot Agent 를 실행하거나 스냅숏 에이전트 작업을 시작하여 새 스냅숏을 생성합니다.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. 자세한 내용은 Create and Apply the Initial Snapshot을 참조하세요.For more information, see Create and Apply the Initial Snapshot.

예제Example

이 예제에서는 대체 스냅숏 폴더 및 압축 스냅숏을 사용하는 게시를 만듭니다.This example creates a publication that uses an alternate snapshot folder and a compressed snapshot.

-- 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

참고 항목See Also

대체 스냅숏 폴더 위치 Alternate Snapshot Folder Locations
압축 스냅숏 Compressed Snapshots
스냅숏 적용 전후에 스크립트 실행 Execute Scripts Before and After the Snapshot Is Applied
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
FTP를 통해 스냅숏 전송 Transfer Snapshots Through FTP
게시 및 아티클 속성 변경 Change Publication and Article Properties