Tengo una base de datos de producción, es decir, donde hay actualizaciones constantes y la configuré para que se publique en otro servidor mediante replicación transaccional.
Cuando configuro la replicación transaccional he estado haciendo lo siguiente:
- deshabilitar el acceso a la base de datos de origen
- base de datos de origen de copia de seguridad y luego restaurarla en el servidor de suscripción
- configurar la replicación
- volver a habilitar el acceso a la base de datos para nuestras aplicaciones
El problema con este enfoque es programar en tiempo de inactividad, tener que suspender todas las tareas programadas cronometradas que ejecutamos y cerrar el acceso a nuestras diversas aplicaciones que dependen de esta base de datos.
¿Puedo simplemente configurar la replicación transaccional sin deshabilitar el acceso a la base de datos de publicación y la base de datos de suscriptores se pondrá al día correctamente? es decir, ¿están todas las declaraciones DML en cola en el editor y tan pronto como el suscriptor está listo, se seleccionan y ejecutan?
Respuesta1
La respuesta simple es No... No necesita deshabilitar el acceso al sistema, etc. He aquí por qué y cómo funciona... Cuando configura la replicación, el editor crea una instantánea de los datos en el mismo momento en que crea la publicación. También hay un lector de registros que se ejecuta al mismo tiempo con la replicación transaccional que captura CADA transacción desde que se creó la última instantánea. Entonces... cuando se crea un suscriptor, es básicamente un proceso de 2 pasos:
Paso 1: La instantánea se aplica al suscriptor, lo que crea el esquema y los datos en la base de datos del suscriptor.
Paso 2: Luego, las transacciones desde el momento de la instantánea se aplican para que el suscriptor actualice la base de datos del suscriptor con los datos más recientes.
Básicamente, no, no necesitas hacer todas las demás cosas que estás haciendo para crear un nuevo suscriptor.
Déjame saber si necesitas algo más.
¡Gracias!
-VM