Agentes de replicación push y pull a través de una VPN entre sitios
La ubicación del agente de una suscripción decide qué máquina abre conexiones a través de la VPN. Elija push o pull por quién es dueño del trabajo, no por las flechas del diagrama.
La ubicación del agente, no la de los datos, es la decisión que da forma a una suscripción de SQL Server. La máquina que ejecuta el agente abre la conexión, trabaja bajo una cuenta concreta y asume la culpa cuando la sincronización se atasca. En una VPN entre sitios esa diferencia es el diseño, no un detalle. Dibuje las conexiones del agente antes de dibujar la red.
Tres roles, no dos
El Publisher posee los datos del artículo, el Distributor posee la base de datos de distribución y el Subscriber recibe los cambios. El Log Reader Agent se ejecuta en el Distributor para la replicación transaccional. El Distribution Agent es el que cambia de ubicación con el tipo de suscripción, y por eso determina el diseño de la red. Aclare esos roles antes de hablar de reglas de VPN.
Una suscripción push ejecuta el Distribution Agent en el Distributor, y una suscripción pull lo ejecuta en el Subscriber, como indica la documentación sobre suscripciones de Microsoft. Todo el diálogo de red depende de cuál es esa máquina. Anote cuatro hechos por suscripción: el host del agente, su identidad de proceso, los inicios de sesión de base de datos que usa y los recursos que debe alcanzar. Esos hechos, no una flecha del diagrama, le dicen qué dirección debe funcionar.
Push significa que el agente vive en el Distributor
Con una suscripción push, el Distributor abre la conexión hacia el Subscriber a través de la VPN. El escucha, el firewall y el inicio de sesión SQL del lado del suscriptor deben aceptar conexiones que lleguen del lado remoto. La cuenta de servicio del Distributor también necesita permiso en la base de datos del suscriptor. Planifique esa ruta de entrada antes de crear la suscripción, porque descubrirla después suele significar recrearla.
La entrega de instantáneas añade una ruta que la replicación estable nunca usa. Si la instantánea se aloja en un recurso compartido de archivos, el Distribution Agent lee de ese recurso y la cuenta del suscriptor debe alcanzar la misma ruta UNC. Un flujo de cambios que dura semanas no dice nada sobre si funcionará una reinicialización. Por eso el recurso compartido de instantáneas pertenece al plan desde el principio.
No lea push como tráfico de una sola dirección. El agente necesita respuestas, confirmaciones y sus propios intercambios de autenticación. La ruta debe ser bidireccional a nivel de conexión incluso cuando los datos viajan en una sola dirección.
Pull significa que el agente vive en el Subscriber
Una suscripción pull invierte la conexión: el Subscriber ejecuta el Distribution Agent y se dirige al Distributor. Ese arreglo encaja con una política de VPN que permite conexiones salientes desde la sucursal y bloquea las entrantes. También pone la decisión de programación en manos de quien atiende el servidor de la sucursal. Elíjala cuando el equipo de la sucursal deba poseer su propia sincronización y notar sus propios fallos.
La cuenta de servicio de SQL Server Agent del suscriptor necesita acceso de lectura a la base de datos de distribución y al recurso compartido de instantáneas. Esa cuenta es la identidad que aparece en los errores de replicación, y una cuenta de servicio local sin derechos de dominio falla en un punto que parece un fallo de red pero en realidad es un fallo de credenciales. Revise la cuenta antes de depurar el túnel. Arreglar el inicio de sesión suele ser más rápido que demostrar la inocencia de la red.
La propiedad sigue al agente. Elija push cuando el equipo central deba poseer tanto la programación como los fallos. Elija lo que elija, anótelo junto a la suscripción para que el siguiente ingeniero sepa dónde mirar primero.
La republicación cambia el abanico, no la propiedad
Un suscriptor puede configurarse para republicar a más suscriptores, lo que permite que una base de datos de sucursal sirva a varios consumidores locales sin que cada uno tire a través de la WAN. La base de datos intermedia ahora contiene una publicación y sus propios agentes. También hereda permisos, supervisión y un plan de recuperación que antes no tenía. Ese rol adicional es el precio de eliminar la entrega repetida por WAN.
El orden documentado importa: inicialice la suscripción entrante antes de crear la publicación descendente. Trátelo como un paso del ciclo de vida con verificación, no como papeleo que se salta. Invertirlo produce una cadena que parece configurada y no entrega nada.
Declare el modelo de escritura explícitamente. Replicar un conjunto de datos de solo lectura a un consumidor local es un diseño distinto de aceptar escrituras en varios sitios, y una cadena de flechas no crea resolución de conflictos. Si la sucursal debe escribir, es una decisión aparte con su propia topología. Haga también visible la dependencia: cuando el republicador está caído, cada consumidor por debajo queda desactualizado.
Demuestre la ubicación de extremo a extremo
Lea el tipo de suscripción de la base de datos de distribución en lugar de confiar en la memoria, y luego compruebe que los cambios llegan de verdad:
USE distribution;
SELECT publication, subscriber_db, subscription_type
FROM dbo.MSsubscriptions;
EXEC sp_replmonitorsubscriptionpendingcmds
@publisher = 'PUB1', @publisher_db = 'Sales',
@publication = 'SalesPub', @subscriber = 'BR1',
@subscriber_db = 'Sales';
Un subscription_type de 0 es push y 1 es pull, y no puede cambiarse en el sitio, así que una discrepancia significa recrear la suscripción en lugar de editarla. La llamada de comandos pendientes le dice si el agente elegido mueve trabajo o solo se ejecuta. Una suscripción que informa cero comandos pendientes mientras la tabla del suscriptor queda vacía es un fallo distinto de una que informa una cola creciente, y las dos llevan a propietarios distintos.
Termine con un cambio real: inserte o actualice una fila en el Publisher, espere a que el agente informe y lea esa fila en el Subscriber. Hágalo una vez más a través de una breve interrupción de la VPN para ver cómo se recupera el agente. Una suscripción que sobrevive a esa prueba tiene una ubicación que puede documentar y defender.