Configurar propriedades de instantâneo (Programação Transact-SQL de replicação)
Propriedades de instantâneo podem ser definidas e modificadas de forma programada usando-se procedimentos armazenados de replicação, nos quais os procedimentos armazenados usados dependem do tipo de publicação.
Para configurar propriedades de instantâneo ao criar uma publicação de instantâneo ou transacional
No Publicador, execute sp_addpublication. Especifique um nome de publicação para @publication, um valor de snapshot ou continuous para @repl_freq, e um ou mais dos seguintes parâmetros relacionados a instantâneo.
@alt_snapshot_folder - especifique um caminho se o instantâneo para essa publicação for acessado daquele local em vez de ou além da pasta padrão de instantâneo.
@compress_snapshot - especifique um valor de verdadeiro se os arquivos de instantâneo na pasta de instantâneo alternativa forem compactados no formato de arquivo CAB Microsoft.
@pre_snapshot_script - especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização antes que o instantâneo inicial seja aplicado.
@post_snapshot_script - especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização depois que o instantâneo inicial for aplicado.
@snapshot_in_defaultfolder - especifique um valor de falso se o instantâneo só estiver disponível em um local não padrão.
Para obter mais informações sobre como criar publicações, consulte Crie uma publicação.
Para configurar propriedades de instantâneo ao criar uma publicação de mesclagem
No Publicador, execute sp_addmergepublication. Especifique um nome de publicação para @publication, um valor de snapshot ou continuous para @repl_freq, e um ou mais dos seguintes parâmetros relacionados a instantâneo.
@alt_snapshot_folder - especifique um caminho se o instantâneo para essa publicação for acessado daquele local em vez de ou além da pasta padrão de instantâneo.
@compress_snapshot - especifique um valor de verdadeiro se os arquivos de instantâneo na pasta de instantâneo alternativa forem compactados em formato de arquivo CAB.
@pre_snapshot_script - especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização antes que o instantâneo inicial seja aplicado.
@post_snapshot_script - especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização depois que o instantâneo inicial for aplicado.
@snapshot_in_defaultfolder - especifique um valor de falso se o instantâneo só estiver disponível em um local não padrão.
Para obter mais informações sobre como criar publicações, consulte Crie uma publicação.
Para modificar as propriedades de instantâneo de uma publicação de instantâneo ou transacional existente
No Publicador do banco de dados de publicação, execute sp_changepublication. Especifique um valor 1 para @force_invalidate_snapshot e um dos valores a seguir para @property:
alt_snapshot_folder - também especifique um caminho novo para a pasta de instantâneo alternativa para @value.
compress_snapshot - especifique também um valor de verdadeiro ou falso para @value para indicar se arquivos de instantâneo na pasta de instantâneo alternativa são compactados no formato de arquivo CAB.
pre_snapshot_script - também para @value especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização antes que o instantâneo inicial seja aplicado.
post_snapshot_script - também para @value especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização depois que o instantâneo inicial for aplicado.
@snapshot_in_defaultfolder - especifique também um valor de verdadeiro ou falso para indicar se o instantâneo está disponível apenas em um local não padrão.
(Opcional) No Publicador do banco de dados de publicação, execute sp_changepublication_snapshot. Especifique @publication e um ou mais dos parâmetros de credencial de segurança ou programação que estão sendo alterados.
Observação sobre segurança Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, você deverá proteger o arquivo para impedir acesso não autorizado.
Execute o Replication Snapshot Agent no prompt de comando ou inicie o trabalho do Agente de Instantâneo para gerar um instantâneo novo. Para obter mais informações, consulte Criar e aplicar o instantâneo inicial.
Para modificar as propriedades de instantâneo de uma publicação de mesclagem existente
No Publicador do banco de dados de publicação, execute sp_changemergepublication. Especifique um valor 1 para @force_invalidate_snapshot e um dos valores a seguir para @property:
alt_snapshot_folder - também especifique um caminho novo para a pasta de instantâneo alternativa para @value.
compress_snapshot - especifique também um valor de verdadeiro ou falso para @value para indicar se arquivos de instantâneo na pasta de instantâneo alternativa são compactados no formato de arquivo CAB.
pre_snapshot_script - também para @value especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização antes que o instantâneo inicial seja aplicado.
post_snapshot_script - também para @value especifique o nome de arquivo e caminho completo de um arquivo .sql que será executado no Assinante durante a inicialização depois que o instantâneo inicial for aplicado.
@snapshot_in_defaultfolder - especifique também um valor de verdadeiro ou falso para indicar se o instantâneo está disponível apenas em um local não padrão.
Execute o Replication Snapshot Agent no prompt de comando ou inicie o trabalho do Agente de Instantâneo para gerar um instantâneo novo. Para obter mais informações, consulte Criar e aplicar o instantâneo inicial.
Exemplo
Esse exemplo cria uma publicação que usa uma pasta de instantâneo alternativa e um instantâneo compactado.
-- 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
Consulte também
Conceitos
Locais da pasta de instantâneos alternativos
Executar scripts antes e depois da aplicação do instantâneo
Conceitos dos procedimentos armazenados do sistema de replicação