Configurar propriedades de instantâneo (Programação Transact-SQL de replicação)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
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 instantâneo ou contínuo 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 true se os arquivos de instantâneo na pasta de instantâneo alternativa forem compactados em formato de arquivo CAB da 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 false 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 Create a Publication.
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 instantâneo ou contínuo 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 true 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 false 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 Create a Publication.
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 seguintes valores 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.
- alt_snapshot_folder – também especifique um caminho novo para a pasta de instantâneo alternativa para
(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 agendamento que estão sendo alterados.Importante
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 seguintes valores 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.
- alt_snapshot_folder – também especifique um caminho novo para a pasta de instantâneo alternativa para
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'AdventureWorks2022';
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