Configurazione delle proprietà dello snapshot (programmazione Transact-SQL della replica)Configure Snapshot Properties (Replication Transact-SQL Programming)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Le proprietà dello snapshot possono essere definite e modificate a livello di programmazione tramite le stored procedure di replica. Le stored procedure usate dipendono dal tipo di pubblicazione. Snapshot properties can be defined and modified programmatically using replication stored procedures, where the stored procedures used depend on the type of publication.

Per configurare le proprietà dello snapshot durante la creazione di una pubblicazione snapshot o transazionaleTo configure snapshot properties when creating a snapshot or transactional publication

  1. Nel server di pubblicazione eseguire sp_addpublication.At the Publisher, execute sp_addpublication. Specificare il nome della pubblicazione per @publication, il valore snapshot o continuous per @repl_freqe uno o più parametri correlati allo snapshot seguenti:Specify a publication name for @publication, a value of either snapshot or continuous for @repl_freq, and one or more of the following snapshot-related parameters:

    • @alt_snapshot_folder : specificare un percorso se allo snapshot di questa pubblicazione si accede da tale percorso anziché o in aggiunta alla cartella snapshot predefinita.@alt_snapshot_folder - specify a path if the snapshot for this publication is accessed from that location instead of or in addition to the snapshot default folder.

    • @compress_snapshot : specificare il valore true se i file di snapshot presenti nella cartella snapshot alternativa sono compressi nel formato MicrosoftMicrosoft CAB.@compress_snapshot - specify a value of true if the snapshot files in the alternate snapshot folder are compressed in the MicrosoftMicrosoft CAB file format.

    • @pre_snapshot_script : specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.@pre_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • @post_snapshot_script : specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.@post_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • @snapshot_in_defaultfolder : specificare il valore false se lo snapshot è disponibile solo in un percorso non predefinito.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

      Per ulteriori informazioni sulla creazione di pubblicazioni, vedere Create a Publication.For more information about creating publications, see Create a Publication.

Per configurare le proprietà dello snapshot durante la creazione di una pubblicazione di tipo mergeTo configure snapshot properties when creating a merge publication

  1. Nel server di pubblicazione eseguire sp_addmergepublication.At the Publisher, execute sp_addmergepublication. Specificare il nome della pubblicazione per @publication, il valore snapshot o continuous per @repl_freqe uno o più parametri correlati allo snapshot seguenti:Specify a publication name for @publication, a value of either snapshot or continuous for @repl_freq, and one or more of the following snapshot-related parameters:

    • @alt_snapshot_folder : specificare un percorso se allo snapshot di questa pubblicazione si accede da tale percorso anziché o in aggiunta alla cartella snapshot predefinita.@alt_snapshot_folder - specify a path if the snapshot for this publication is accessed from that location instead of or in addition to the snapshot default folder.

    • @compress_snapshot : specificare il valore true se i file di snapshot presenti nella cartella snapshot alternativa sono compressi nel formato CAB.@compress_snapshot - specify a value of true if the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • @pre_snapshot_script : specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.@pre_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • @post_snapshot_script : specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.@post_snapshot_script - specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • @snapshot_in_defaultfolder : specificare il valore false se lo snapshot è disponibile solo in un percorso non predefinito.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

  2. Per ulteriori informazioni sulla creazione di pubblicazioni, vedere Create a Publication.For more information about creating publications, see Create a Publication.

Per modificare le proprietà dello snapshot di una pubblicazione snapshot o transazionale esistenteTo modify snapshot properties of an existing snapshot or transactional publication

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_changepublication.At the Publisher on the publication database, execute sp_changepublication. Specificare il valore 1 per @force_invalidate_snapshot e uno dei valori seguenti per @property:Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder : specificare anche un nuovo percorso della cartella snapshot alternativa per @value.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot : specificare anche il valore true o false per @value per indicare se i file di snapshot presenti nella cartella snapshot alternativa sono compressi nel formato CAB.compress_snapshot - also specify a value of either true or false for @value to indicate whether the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • pre_snapshot_script : sempre per @value specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.pre_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • post_snapshot_script : sempre per @value specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.post_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • snapshot_in_defaultfolder : specificare anche il valore true o false per indicare se lo snapshot è disponibile solo in un percorso non predefinito.snapshot_in_defaultfolder - also specify a value of either true or false to indicate whether the snapshot is available only in a non-default location.

  2. (Facoltativo) Nel database di pubblicazione del server di pubblicazione eseguire sp_changepublication_snapshot.(Optional) At the Publisher on the publication database, execute sp_changepublication_snapshot. Specificare @publication e uno o più parametri di pianificazione o delle credenziali di sicurezza da modificare.Specify @publication and one or more of the scheduling or security credential parameters being changed.

    Importante

    Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.If you must store credentials in a script file, you must secure the file to prevent unauthorized access.

  3. Eseguire Replication Snapshot Agent dal prompt dei comandi o avviare il processo dell'agente snapshot per generare un nuovo snapshot.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. Per altre informazioni, vedere Create and Apply the Initial Snapshot.For more information, see Create and Apply the Initial Snapshot.

Per modificare le proprietà dello snapshot di una pubblicazione di tipo merge esistenteTo modify snapshot properties of an existing merge publication

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_changemergepublication.At the Publisher on the publication database, execute sp_changemergepublication. Specificare il valore 1 per @force_invalidate_snapshot e uno dei valori seguenti per @property:Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder : specificare anche un nuovo percorso della cartella snapshot alternativa per @value.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot : specificare anche il valore true o false per @value per indicare se i file di snapshot presenti nella cartella snapshot alternativa sono compressi nel formato CAB.compress_snapshot - also specify a value of either true or false for @value to indicate whether the snapshot files in the alternate snapshot folder are compressed in the CAB file format.

    • pre_snapshot_script : sempre per @value specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione prima dell'applicazione dello snapshot iniziale.pre_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization before the initial snapshot is applied.

    • post_snapshot_script : sempre per @value specificare il nome e il percorso completo di un file con estensione sql che verrà eseguito nel Sottoscrittore durante l'inizializzazione dopo l'applicazione dello snapshot iniziale.post_snapshot_script - also for @value specify the file name and full path of a .sql file that will be executed at the Subscriber during initialization after the initial snapshot is applied.

    • snapshot_in_defaultfolder : specificare anche il valore true o false per indicare se lo snapshot è disponibile solo in un percorso non predefinito.snapshot_in_defaultfolder - also specify a value of either true or false to indicate whether the snapshot is available only in a non-default location.

  2. Eseguire Replication Snapshot Agent dal prompt dei comandi o avviare il processo dell'agente snapshot per generare un nuovo snapshot.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. Per altre informazioni, vedere Create and Apply the Initial Snapshot.For more information, see Create and Apply the Initial Snapshot.

EsempioExample

In questo esempio viene creata una pubblicazione che utilizza una cartella snapshot alternativa e uno snapshot compresso.This example creates a publication that uses an alternate snapshot folder and a compressed 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

Vedere ancheSee Also

Posizioni alternative della cartella snapshot Alternate Snapshot Folder Locations
Snapshot compressi Compressed Snapshots
Eseguire gli script prima e dopo l'applicazione dello snapshot Execute Scripts Before and After the Snapshot Is Applied
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Trasferire snapshot tramite FTP Transfer Snapshots Through FTP
Modificare le proprietà di pubblicazioni e articoliChange Publication and Article Properties