Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
As propriedades do snapshot podem ser definidas e modificadas programaticamente usando procedimentos armazenados de replicação, onde os procedimentos armazenados dependem do tipo de publicação.
Para configurar as propriedades do instantâneo ao criar um instantâneo ou uma publicação 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 com o snapshot:-
@alt_snapshot_folder- especificar um caminho se o snapshot desta publicação for acedido a partir desse local em vez de, ou além da pasta predefinida do snapshot. -
@compress_snapshot- especifique o valor true se os ficheiros de instantâneo na pasta de instantâneos alternativa estiverem comprimidos no formato de ficheiro CAB da Microsoft. -
@pre_snapshot_script- especificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Assinante durante a inicialização antes da aplicação do snapshot inicial. -
@post_snapshot_script- especificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no assinante durante a inicialização após a aplicação do snapshot inicial. -
@snapshot_in_defaultfolder- especificar um valor de false se o snapshot estiver disponível apenas numa localização não predefinida.
Para mais informações sobre a criação de publicações, consulte Criar uma Publicação.
-
Para configurar propriedades de snapshot ao criar uma publicação de fusão
No Publisher, executa sp_addmergepublication. Especifique um nome de publicação para
@publication, um valor de snapshot ou contínuo para@repl_freq, e um ou mais dos seguintes parâmetros relacionados com snapshot:- alt_snapshot_folder - especificar um caminho se o snapshot desta publicação for acedido a partir desse local em vez de, ou além da pasta predefinida do snapshot.
-
@compress_snapshot- especificar o valor true se os ficheiros de instantâneo na pasta alternativa de instantâneos estiverem comprimidos no formato CAB. -
@pre_snapshot_script- especificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Assinante durante a inicialização antes da aplicação do snapshot inicial. -
@post_snapshot_script- especificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no assinante durante a inicialização após a aplicação do snapshot inicial. -
@snapshot_in_defaultfolder- especificar um valor de false se o snapshot estiver disponível apenas numa localização não predefinida.
Para mais informações sobre a criação de publicações, consulte Criar uma Publicação.
Modificar propriedades de snapshot de um snapshot existente ou publicação transacional
No Publisher da base de dados de publicações, execute sp_changepublication. Especifique um valor de 1 para
@force_invalidate_snapshote um dos seguintes valores para@property:-
alt_snapshot_folder -also especificar um novo caminho para a pasta alternativa de snapshots para
@value. -
compress_snapshot - especifique também um valor de verdadeiro ou falso para
@valuepara indicar se os ficheiros de snapshot na pasta alternativa de snapshot estão comprimidos no formato CAB. -
pre_snapshot_script - também em
@valueespecifique o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Assinante durante a inicialização, antes de o snapshot inicial ser aplicado. -
post_snapshot_script - também para
@valueespecificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Assinante durante a inicialização após a aplicação do snapshot inicial. - snapshot_in_defaultfolder - também especificar um valor de verdadeiro ou falso para indicar se o instantâneo está disponível apenas numa localização não predefinida.
-
alt_snapshot_folder -also especificar um novo caminho para a pasta alternativa de snapshots para
(Opcional) No Publisher, na base de dados de publicação, execute sp_changepublication_snapshot. Especifique
@publicatione um ou mais parâmetros de agendamento ou credenciais de segurança a alterar.Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se você precisar armazenar credenciais em um arquivo de script, deverá proteger o arquivo para impedir o acesso não autorizado.
Execute o Replication Snapshot Agent a partir do prompt de comandos ou inicie o trabalho Snapshot Agent para gerar um novo snapshot. Para mais informações, consulte Criar e Aplicar o Snapshot Inicial.
Para modificar propriedades de snapshot de uma publicação de fusão existente
No Publicador, na base de dados de publicação, execute sp_changemergepublication. Especifique um valor de 1 para
@force_invalidate_snapshote um dos seguintes valores para@property**:-
alt_snapshot_folder -also especificar um novo caminho para a pasta alternativa de snapshots para
@value. -
compress_snapshot - especifique também o valor true ou false para
@value, de modo a indicar se os ficheiros de instantâneo na pasta alternativa de instantâneos estão comprimidos no formato de ficheiro CAB. -
pre_snapshot_script - também para
@valueespecificar o nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Assinante durante a inicialização antes da aplicação do snapshot inicial. -
post_snapshot_script - especificar também para
@valueo nome do ficheiro e o caminho completo de um ficheiro .sql que será executado no Subscritor durante a inicialização, depois de aplicado o instantâneo inicial. - snapshot_in_defaultfolder - também especificar um valor de verdadeiro ou falso para indicar se o instantâneo está disponível apenas numa localização não predefinida.
-
alt_snapshot_folder -also especificar um novo caminho para a pasta alternativa de snapshots para
Execute o Replication Snapshot Agent a partir do prompt de comandos ou inicie o trabalho Snapshot Agent para gerar um novo snapshot. Para mais informações, consulte Criar e Aplicar o Snapshot Inicial.
Example
Este exemplo cria uma publicação que utiliza uma pasta alternativa para instantâneos e um instantâneo comprimido.
-- 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