Condividi tramite


Configurare le proprietà dello snapshot (programmazione Transact-SQL replica)

Le proprietà snapshot possono essere definite e modificate a livello di codice tramite stored procedure di replica, in cui le stored procedure utilizzate dipendono dal tipo di pubblicazione.

Per configurare le proprietà dello snapshot durante la creazione di una pubblicazione snapshot o transazionale

  1. Nel server di pubblicazione eseguire sp_addpublication. Specificare un nome di pubblicazione per @publication, un valore snapshot o continuo per @repl_freq e uno o più dei parametri correlati allo snapshot seguenti:

    • @alt_snapshot_folder : specificare un percorso se si accede allo snapshot per la pubblicazione da tale posizione anziché dalla cartella predefinita dello snapshot.

    • @compress_snapshot : specificare il valore true se i file di snapshot nella cartella snapshot alternativa vengono compressi nel formato di file CAB Microsoft.

    • @pre_snapshot_script : specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.

    • @post_snapshot_script : specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.

    • @snapshot_in_defaultfolder : specificare un valore false se lo snapshot è disponibile solo in un percorso non predefinito.

    Per altre informazioni sulla creazione di pubblicazioni, vedere Creare una pubblicazione.

Per configurare le proprietà dello snapshot durante la creazione di una pubblicazione di tipo merge

  1. Nel server di pubblicazione eseguire sp_addmergepublication. Specificare un nome di pubblicazione per @publication, un valore snapshot o continuo per @repl_freq e uno o più dei parametri correlati allo snapshot seguenti:

    • @alt_snapshot_folder : specificare un percorso se si accede allo snapshot per la pubblicazione da tale posizione anziché dalla cartella predefinita dello snapshot.

    • @compress_snapshot : specificare il valore true se i file di snapshot nella cartella snapshot alternativa vengono compressi nel formato di file CAB.

    • @pre_snapshot_script : specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.

    • @post_snapshot_script : specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.

    • @snapshot_in_defaultfolder : specificare un valore false se lo snapshot è disponibile solo in un percorso non predefinito.

  2. Per altre informazioni sulla creazione di pubblicazioni, vedere Creare una pubblicazione.

Per modificare le proprietà dello snapshot di una pubblicazione esistente, sia esso uno snapshot o una pubblicazione transazionale

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_changepublication. Specificare il valore 1 per @force_invalidate_snapshot e uno dei valori seguenti per @property:

    • alt_snapshot_folder -also specificare un nuovo percorso della cartella snapshot alternativa per @value.

    • compress_snapshot : specificare anche un valore true o false per @value per indicare se i file di snapshot nella cartella snapshot alternativa vengono compressi nel formato di file CAB.

    • pre_snapshot_script : anche per @value specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.

    • post_snapshot_script : anche per @value specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.

    • snapshot_in_defaultfolder : specificare anche un valore true o false per indicare se lo snapshot è disponibile solo in un percorso non predefinito.

  2. (Facoltativo) Presso il Publisher nel database di pubblicazione, eseguire sp_changepublication_snapshot. Specificare @publication e uno o più parametri di pianificazione o credenziali di sicurezza da modificare.

    Importante

    Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file di script, è necessario proteggere il file per impedire l'accesso non autorizzato.

  3. Eseguire L'agente Snapshot di Replica dal prompt dei comandi o avviare l'attività dell'agente Snapshot per generare un nuovo snapshot. Per altre informazioni, vedere Creare e applicare lo snapshot iniziale.

Per modificare le proprietà dello snapshot di una pubblicazione di tipo merge esistente

  1. Nel database di pubblicazione sul Publisher, eseguire sp_changemergepublication. Specificare il valore 1 per @force_invalidate_snapshot e uno dei valori seguenti per @property:

    • alt_snapshot_folder -also specificare un nuovo percorso della cartella snapshot alternativa per @value.

    • compress_snapshot : specificare anche un valore true o false per @value per indicare se i file di snapshot nella cartella snapshot alternativa vengono compressi nel formato di file CAB.

    • pre_snapshot_script : anche per @value specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.

    • post_snapshot_script : anche per @value specificare il nome file e il percorso completo di un file .sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.

    • snapshot_in_defaultfolder : specificare anche un valore true o false per indicare se lo snapshot è disponibile solo in un percorso non predefinito.

  2. Eseguire il Replication Snapshot Agent dal prompt dei comandi oppure avviare il processo dell'Agente Snapshot per generare un nuovo snapshot. Per altre informazioni, vedere Creare e applicare lo snapshot iniziale.

Esempio

In questo esempio viene creata una pubblicazione che utilizza una cartella snapshot alternativa e uno snapshot compresso.

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

Vedere anche

Percorsi alternativi delle cartelle snapshot
Snapshot compressi
Eseguire script prima e dopo l'applicazione dello snapshot
Concetti sulle procedure memorizzate del sistema di replica
Trasferire snapshot tramite FTP
Modificare le proprietà della pubblicazione e dell'articolo