Configurar propiedades de instantáneas (programación de la replicación con Transact-SQL)Configure Snapshot Properties (Replication Transact-SQL Programming)

Las propiedades de las instantáneas se pueden definir y modificar mediante programación usando procedimientos almacenados de replicación, los cuales dependerán del tipo de publicación.Snapshot properties can be defined and modified programmatically using replication stored procedures, where the stored procedures used depend on the type of publication.

Para configurar propiedades de instantáneas al crear una instantánea o una publicación transaccionalTo configure snapshot properties when creating a snapshot or transactional publication

  1. En el publicador, ejecute sp_addpublication.At the Publisher, execute sp_addpublication. Especifique un nombre de publicación para @publication, el valor snapshot o continuous para @repl_freqy uno o más de los siguientes parámetros relacionados con instantáneas: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 - especifique una ruta si a la instantánea de esta publicación se tiene acceso desde esa ubicación en lugar o además de desde la carpeta predeterminada para instantáneas.@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 - especifique el valor true si los archivos de instantáneas de la carpeta de instantáneas están comprimidos en el formato de archivo CAB de MicrosoftMicrosoft .@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 - especifique el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.@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 - especifique el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.@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 - especifique el valor false si la instantánea únicamente está disponible en una ubicación que no es la predeterminada.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

      Para obtener más información acerca de la creación de publicaciones, vea Create a Publication.For more information about creating publications, see Create a Publication.

Para configurar propiedades de instantáneas al crear una publicación de combinaciónTo configure snapshot properties when creating a merge publication

  1. En el publicador, ejecute sp_addmergepublication.At the Publisher, execute sp_addmergepublication. Especifique un nombre de publicación para @publication, el valor snapshot o continuous para @repl_freqy uno o más de los siguientes parámetros relacionados con instantáneas: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 - especifique una ruta si a la instantánea de esta publicación se tiene acceso desde esa ubicación en lugar o además de desde la carpeta predeterminada para instantáneas.@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 - especifique el valor true si los archivos de instantáneas de la carpeta de instantáneas están comprimidos en el formato de archivo 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 - especifique el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.@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 - especifique el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.@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 - especifique el valor false si la instantánea únicamente está disponible en una ubicación que no es la predeterminada.@snapshot_in_defaultfolder - specify a value of false if the snapshot is available only in a non-default location.

  2. Para obtener más información acerca de la creación de publicaciones, vea Create a Publication.For more information about creating publications, see Create a Publication.

Para modificar las propiedades de instantánea de una instantánea o de una publicación transaccional existenteTo modify snapshot properties of an existing snapshot or transactional publication

  1. En la base de datos de publicación del publicador, ejecute sp_changepublication.At the Publisher on the publication database, execute sp_changepublication. Especifique el valor 1 para @force_invalidate_snapshot y uno de los valores siguientes para @property:Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder - especifique también una nueva ruta a la carpeta de instantáneas alternativa para @value.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot - especifique también el valor true o false para @value para indicar si los archivos de instantáneas de la carpeta de instantáneas alternativa están comprimidos en el formato de archivo 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 - especifique también para @value el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.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 - especifique también para @value el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.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 - especifique también el valor true o false para indicar si la instantánea está disponible únicamente en una ubicación que no es la predeterminada.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. (Opcional) En la base de datos de publicación del publicador, ejecute sp_changepublication.(Optional) At the Publisher on the publication database, execute sp_changepublication_snapshot. Especifique @publication y uno o más de los parámetros de credenciales de seguridad o de programación que se están cambiando.Specify @publication and one or more of the scheduling or security credential parameters being changed.

    Importante

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución.When possible, prompt users to enter security credentials at runtime. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.If you must store credentials in a script file, you must secure the file to prevent unauthorized access.

  3. Ejecute el Replication Snapshot Agent desde el símbolo del sistema o inicie el trabajo del Agente de instantáneas para generar una nueva instantánea.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. Para más información, consulte Create and Apply the Initial Snapshot.For more information, see Create and Apply the Initial Snapshot.

Para modificar las propiedades de instantánea de una publicación de combinación existenteTo modify snapshot properties of an existing merge publication

  1. En la base de datos de publicación del publicador, ejecute sp_changemergepublication.At the Publisher on the publication database, execute sp_changemergepublication. Especifique el valor 1 para @force_invalidate_snapshot y uno de los valores siguientes para @property:Specify a value of 1 for @force_invalidate_snapshot and one of the following values for @property:

    • alt_snapshot_folder - especifique también una nueva ruta a la carpeta de instantáneas alternativa para @value.alt_snapshot_folder -also specify a new path to the alternate snapshot folder for @value.

    • compress_snapshot - especifique también el valor true o false para @value para indicar si los archivos de instantáneas de la carpeta de instantáneas alternativa están comprimidos en el formato de archivo 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 - especifique también para @value el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.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 - especifique también para @value el nombre de archivo y la ruta completa de un archivo .sql que se ejecutará en el suscriptor durante la inicialización antes de que se aplique la instantánea inicial.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 - especifique también el valor true o false para indicar si la instantánea está disponible únicamente en una ubicación que no es la predeterminada.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. Ejecute el Replication Snapshot Agent desde el símbolo del sistema o inicie el trabajo del Agente de instantáneas para generar una nueva instantánea.Run the Replication Snapshot Agent from the command prompt or start the Snapshot Agent job to generate a new snapshot. Para obtener más información, consulte Create and Apply the Initial Snapshot.For more information, see Create and Apply the Initial Snapshot.

EjemploExample

En este ejemplo se crea una publicación que usa una carpeta de instantáneas alternativa y una instantánea comprimida.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

Vea tambiénSee Also

Ubicaciones alternativas para las carpetas de instantáneas Alternate Snapshot Folder Locations
Instantáneas comprimidas Compressed Snapshots
Ejecutar scripts antes y después de aplicar la instantánea Execute Scripts Before and After the Snapshot Is Applied
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Transferir instantáneas mediante FTP Transfer Snapshots Through FTP
Cambiar las propiedades de la publicación y de los artículos Change Publication and Article Properties