Compartir a través de


Configurar propiedades de instantáneas (programación de la replicación con Transact-SQL)

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.

Para configurar propiedades de instantáneas al crear una instantánea o una publicación transaccional

  1. En el publicador, ejecute 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:

    • @alt_snapshot_folder : especifique una ruta de acceso si se tiene acceso a la instantánea de esta publicación desde esa ubicación en lugar de o además de la carpeta predeterminada de la instantánea.

    • @compress_snapshot : especifique un valor true si los archivos de instantánea de la carpeta de instantáneas alternativas se comprimen en el formato de archivo CAB de Microsoft.

    • @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.

    • @ost_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.

    • @snapshot_in_defaultfolder - especifique el valor false si la instantánea únicamente está disponible en una ubicación que no es la predeterminada.

    Para obtener más información acerca de la creación de publicaciones, vea Create a Publication.

Para configurar propiedades de instantáneas al crear una publicación de combinación

  1. En el publicador, ejecute 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:

    • @alt_snapshot_folder : especifique una ruta de acceso si se tiene acceso a la instantánea de esta publicación desde esa ubicación en lugar de o además de la carpeta predeterminada de la instantánea.

    • @compress_snapshot : especifique un valor true si los archivos de instantánea de la carpeta de instantáneas alternativas se comprimen en el formato de archivo CAB.

    • @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.

    • @ost_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.

    • @snapshot_in_defaultfolder - especifique el valor false si la instantánea únicamente está disponible en una ubicación que no es la predeterminada.

  2. Para obtener más información acerca de la creación de publicaciones, vea Create a Publication.

Para modificar las propiedades de instantánea de una instantánea o de una publicación transaccional existente

  1. En la base de datos de publicación del publicador, ejecute sp_changepublication. Especifique el valor 1 para @force_invalidate_snapshot y uno de los valores siguientes para @property:

    • alt_snapshot_folder - especifique también una nueva ruta a la carpeta de instantáneas alternativa para @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.

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

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

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

  2. (Opcional) En la base de datos de publicación del publicador, ejecute sp_changepublication. Especifique @publication y uno o más de los parámetros de credenciales de seguridad o de programación que se están cambiando.

    Importante

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.

  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. Para más información, consulte Crear y aplicar la instantánea inicial.

Para modificar las propiedades de instantánea de una publicación de combinación existente

  1. En la base de datos de publicación del publicador, ejecute sp_changemergepublication. Especifique el valor 1 para @force_invalidate_snapshot y uno de los valores siguientes para @property:

    • alt_snapshot_folder - especifique también una nueva ruta a la carpeta de instantáneas alternativa para @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.

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

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

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

  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. Para más información, consulte Crear y aplicar la instantánea inicial.

Ejemplo

En este ejemplo se crea una publicación que usa una carpeta de instantáneas alternativa y una instantánea comprimida.

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

Consulte también

Ubicaciones alternativas para las carpetas de instantáneas
Instantáneas comprimidas
Ejecutar scripts antes y después de aplicar la instantánea
Conceptos de procedimientos almacenados del sistema de replicación
Transferir instantáneas mediante FTP
Cambiar las propiedades de la publicación y de los artículos