Cómo funciona la replicación de instantáneas
De forma predeterminada, los tres tipos de replicación utilizan una instantánea para inicializar suscriptores. El Agente de instantáneas de SQL Server siempre genera los archivos de instantáneas, pero el agente que entrega los archivos varía según el tipo de replicación que se utilice. La replicación de instantáneas y la replicación transaccional utilizan el Agente de distribución para entregar los archivos, mientras que la replicación de mezcla utiliza el Agente de mezcla de SQL Server. El Agente de instantáneas se ejecuta en el distribuidor. El Agente de distribución y el Agente de mezcla se ejecutan en el distribuidor para las suscripciones de inserción o en los suscriptores para las suscripciones de extracción. Para obtener más información acerca de las suscripciones de inserción y extracción, vea Suscribirse a publicaciones. Para obtener más información acerca de los agentes, vea Información general sobre los agentes de replicación.
Las instantáneas se pueden generar y aplicar inmediatamente tras la creación de la suscripción o de acuerdo con una programación establecida en el momento de crear la publicación. El Agente de instantáneas prepara archivos de instantáneas que contienen el esquema y los datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantáneas del publicador y registra la información de seguimiento en la base de datos de distribución del distribuidor. Al configurar un distribuidor se especifica la carpeta de instantáneas predeterminada, pero puede especificar una ubicación alternativa para una publicación en lugar de, o además de, la predeterminada. Para obtener más información, vea Ubicaciones alternativas para las carpetas de instantáneas.
Nota
Además del proceso de instantáneas estándar descrito en este tema, se utiliza un proceso de dos partes para las publicaciones de mezcla con filtros con parámetros. Para obtener más información, vea Instantáneas para publicaciones de mezcla con filtros con parámetros.
En la ilustración siguiente se muestran los componentes principales de la replicación de instantáneas.
Agente de instantáneas
En la replicación de mezcla se genera una instantánea cada vez que se ejecuta el Agente de instantáneas. En la replicación transaccional, la generación de instantáneas depende de la configuración de la propiedad immediate_sync de la publicación. Si la propiedad está establecida en TRUE (el valor predeterminado con el Asistente para nueva publicación), se genera una instantánea cada vez que se ejecuta el Agente de instantáneas. Ésta se puede aplicar al suscriptor en cualquier momento. Si está establecida en FALSE (el valor predeterminado con sp_addpublication), la instantánea sólo se genera si se ha agregado una nueva suscripción desde la última vez que se ejecutó el Agente de instantáneas; los suscriptores deben esperar a que el Agente de instantáneas termine antes de poder sincronizarse.
El Agente de instantáneas ejecuta los pasos siguientes:
Establece una conexión del distribuidor al publicador y, a continuación, si fuera necesario, adopta bloqueos en las tablas publicadas:
Para las publicaciones de mezcla, el Agente de instantáneas no adopta ningún bloqueo.
Para las publicaciones transaccionales, el Agente de instantáneas adopta bloqueos de manera predeterminada únicamente durante la fase inicial de la generación de instantáneas.
Para las publicaciones de instantáneas, adopta bloqueos durante todo el proceso de generación de instantáneas.
Escribe una copia del esquema de la tabla para cada artículo en un archivo .sch. Si se publican otros objetos de base de datos, como índices, restricciones, procedimientos almacenados, vistas, funciones definidas por el usuario, etc., se generan archivos de scripts adicionales.
Copia los datos de la tabla publicada en el publicador y escribe los datos en la carpeta de instantáneas. La instantánea se genera como un conjunto de archivos de programa de copia masiva (BCP).
En las publicaciones de instantáneas y transaccionales, el Agente de instantáneas anexa filas a las tablas MSrepl_commands y MSrepl_transactions de la base de datos de distribución. Las entradas de la tabla MSrepl_commands son comandos que indican la ubicación de los archivos .sch y .bcp, de cualquier otro archivo de instantáneas y de las referencias a cualquier script anterior o posterior a la instantánea. Las entradas de la tabla MSrepl_transactions son comandos importantes para sincronizar el suscriptor.
En las publicaciones de mezcla, el Agente de instantáneas realiza pasos adicionales. Para obtener más información, vea Cómo se inicializan publicaciones y suscripciones en la replicación de mezcla.
Libera los bloqueos de las tablas publicadas.
Durante la generación de instantáneas, no es posible realizar cambios en el esquema de las tablas publicadas. Después de generar los archivos de instantáneas, podrá verlos en la carpeta de instantáneas mediante el Explorador de Windows.
Agente de distribución y Agente de mezcla
En las publicaciones de instantáneas, cada vez que el Agente de distribución se ejecuta para la publicación, mueve una nueva instantánea a cada suscriptor que aún no se ha sincronizado, se ha marcado para volver a inicializarse o incluye nuevos artículos.
En la replicación de instantáneas y transaccional, el Agente de distribución realiza los siguientes pasos:
Establece una conexión con el distribuidor.
Examina las tablas MSrepl_commands y MSrepl_transactions de la base de datos de distribución del distribuidor. El agente lee la ubicación de los archivos de instantáneas de la primera tabla y los comandos de sincronización del suscriptor de ambas tablas.
Aplica el esquema y los comandos a la base de datos de suscripciones.
En una publicación de replicación de mezcla sin filtrar, el Agente de mezcla realiza los siguientes pasos:
Establece una conexión con el publicador.
Examina la tabla sysmergeschemachange del publicador y determina si existe una nueva instantánea que deba aplicarse a éste.
Si hay una nueva instantánea disponible, el Agente de mezcla aplica los archivos de instantáneas de la ubicación especificada en sysmergeschemachange a la base de datos de suscripciones.
Vea también