настроить свойства моментального снимка (программирование репликации на языке Transact-SQL)
Свойства моментального снимка можно определять и изменять программно с помощью хранимых процедур репликации, где используемые хранимые процедуры зависят от типа публикации.
Настройка свойств моментального снимка при создании снимка публикации транзакций
Выполните процедуру sp_addpublicationна издателе. Укажите имя публикации в параметре @publication, значение snapshot или continuous в параметре @repl_freq, а также один или несколько следующих параметров, связанных с моментальными снимками.
@alt_snapshot_folder . Укажите путь, если доступ к snapshot для этой публикации осуществляется из этого расположения, а не в дополнение к папке snapshot по умолчанию.
@compress_snapshot — укажите значение true, если файлы snapshot в альтернативной папке snapshot сжаты в формате CAB-файла Майкрософт.
@pre_snapshot_script — определяет имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
@pre_snapshot_script — определяет имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
@snapshot_in_defaultfolder — определяет значение false , если моментальный снимок доступен только в месте хранения, отличном от места по умолчанию.
Дополнительные сведения о создании публикаций см. в разделе Create a Publication.
Настройка свойств моментального снимка при создании снимка публикации слиянием
Выполните процедуру sp_addmergepublicationна издателе. Укажите имя публикации в параметре @publication, значение snapshot или continuous в параметре @repl_freq, а также один или несколько следующих параметров, связанных с моментальными снимками.
@alt_snapshot_folder . Укажите путь, если доступ к snapshot для этой публикации осуществляется из этого расположения, а не в дополнение к папке snapshot по умолчанию.
@compress_snapshot — укажите значение true, если файлы snapshot в альтернативной папке snapshot сжаты в формате CAB-файла.
@pre_snapshot_script — определяет имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
@pre_snapshot_script — определяет имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
@snapshot_in_defaultfolder — определяет значение false , если моментальный снимок доступен только в месте хранения, отличном от места по умолчанию.
Дополнительные сведения о создании публикаций см. в разделе Create a Publication.
Изменение свойств существующего моментального снимка публикации транзакций
На издателе в базе данных публикации выполните процедуру sp_changepublication. Задайте значение 1 в параметре @force_invalidate_snapshot и одно из следующих значений в параметре @property.
alt_snapshot_folder — также укажите новый путь к альтернативной папке моментальных снимков в параметре @value.
compress_snapshot — также укажите значение true или false в параметре @value чтобы указать, сжаты ли файлы моментальных снимков, находящихся в альтернативной папке, в формате CAB.
pre_snapshot_script — также в параметре @value укажите имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
pre_snapshot_script — также в параметре @value укажите имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации после применения исходного моментального снимка.
snapshot_in_defaultfolder — также укажите значение true или false , чтобы указать, доступен ли моментальный снимок только в месте хранения, отличном от места по умолчанию.
На издателе в базе данных публикации выполните хранимую процедуру sp_changepublication_snapshot(необязательно). Укажите параметр @publication и один или несколько параметров планирования или учетных данных безопасности, которые нужно изменить.
Важно!
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.
Чтобы сформировать новый моментальный снимок, запустите агент моментальных снимков репликации ( Replication Snapshot Agent ) из командной строки или задание агента моментальных снимков. Дополнительные сведения см. в разделе Create and Apply the Initial Snapshot.
Изменение свойств существующего моментального снимка публикации слиянием
В базе данных публикации на издателе выполните процедуру sp_changemergepublication. Задайте значение 1 в параметре @force_invalidate_snapshot и одно из следующих значений в параметре @property.
alt_snapshot_folder — также укажите новый путь к альтернативной папке моментальных снимков в параметре @value.
compress_snapshot — также укажите значение true или false в параметре @value чтобы указать, сжаты ли файлы моментальных снимков, находящихся в альтернативной папке, в формате CAB.
pre_snapshot_script — также в параметре @value укажите имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации до применения исходного моментального снимка.
pre_snapshot_script — также в параметре @value укажите имя и полный путь к SQL -файлу, который будет выполнен на подписчике во время инициализации после применения исходного моментального снимка.
snapshot_in_defaultfolder — также укажите значение true или false , чтобы указать, доступен ли моментальный снимок только в месте хранения, отличном от места по умолчанию.
Чтобы сформировать новый моментальный снимок, запустите агент моментальных снимков репликации ( Replication Snapshot Agent ) из командной строки или задание агента моментальных снимков. Дополнительные сведения см. в разделе Create and Apply the Initial 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
См. также:
Альтернативные расположения папки моментальных снимков
Сжатые моментальные снимки
Выполнение скриптов до и после применения моментального снимка
Replication System Stored Procedures Concepts
Передача моментальных снимков через FTP
Изменение свойств публикации и статьи