Comparte ahora:

1. Introducción a SQL Server Replicación

1.1 Que es SQL Server ¿Replicación?

SQL Server La replicación es un conjunto de tecnologías para copiar y distribuir datos y objetos de bases de datos de una base de datos a otra, y luego sincronizarlos para mantener la consistencia. Esta función permite crear y mantener múltiples copias de sus datos en diferentes servidores y ubicaciones, garantizando así la disponibilidad y fiabilidad de los datos.

1.2 Propósito y beneficios de la replicación

SQL Server La replicación satisface múltiples necesidades comerciales críticas y proporciona ventajas significativas para la gestión de bases de datos y la distribución de datos:

  • Distribución de datos entre ubicaciones: La replicación permite compartir datos entre oficinas regionales o ubicaciones globales, lo que mejora la eficiencia operativa al garantizar el acceso local a los datos necesarios. Esto reduce la latencia de la red y proporciona un mejor rendimiento para usuarios distribuidos geográficamente.
  • Alta disponibilidad y recuperación ante desastres: Al mantener réplicas de datos críticos en múltiples servidores, la replicación proporciona redundancia que protege contra fallos de hardware y desastres. En caso de fallo del servidor principal, las copias replicadas pueden servir como recursos de respaldo, minimizando el tiempo de inactividad y la pérdida de datos.
  • Equilibrio de carga y escalabilidad: La replicación distribuye las operaciones de lectura entre múltiples servidores, evitando que un solo servidor se convierta en un cuello de botella. Este enfoque mejora el rendimiento del sistema y permite que su infraestructura se escale horizontalmente a medida que aumentan las demandas de datos y usuarios.
  • Informes y análisis en tiempo real: La descarga de consultas de informes y análisis a servidores replicados reduce la carga en las bases de datos de producción. Los usuarios pueden ejecutar consultas analíticas complejas con datos casi en tiempo real sin afectar los sistemas operativos, lo que garantiza el rendimiento y la actualización de los datos.
  • Integración y consolidación de datos: La replicación facilita la fusión de datos de diversas fuentes en una única vista consolidada. Esto resulta especialmente útil para organizaciones con múltiples sucursales que necesitan agregar datos en la sede central o para crear almacenes de datos centralizados a partir de sistemas operativos distribuidos.

2. SQL Server Arquitectura y componentes de replicación

SQL Server La arquitectura de replicación consta de varios componentes interconectados que trabajan juntos para distribuir y sincronizar datos en toda la infraestructura de su base de datos. Esta sección explora los componentes principales, incluyendo editores, distribuidores, suscriptores, publicaciones, artículos, suscripciones y los agentes que coordinan el flujo de datos entre ellos:

  • Autor: Un editor es un SQL Server instancia que hostUna o más bases de datos que contienen datos para replicar. Actúa como fuente autorizada en la topología de replicación.
  • Distribuidor: Un distribuidor es un SQL Server Instancia que gestiona el flujo de datos entre publicadores y suscriptores. La instancia del distribuidor...osts la base de datos de distribución, que almacena metadatos de replicación y transacciones.
  • Abonado: Un suscriptor es un SQL Server Instancia que recibe y almacena datos replicados de los publicadores. Una sola instancia de suscriptor puede...ost múltiples bases de datos de suscriptores, cada una de las cuales recibe datos de diferentes publicaciones.
  • Publicación: Una publicación define qué datos se replicarán y cómo se distribuirán a los suscriptores. Agrupa artículos relacionados y establece la metodología de replicación aplicable a todos los objetos incluidos.
  • Artículo: Un artículo es el elemento fundamental de la replicación y representa un objeto de base de datos individual que se distribuirá a los suscriptores.
  • Suscripción: Una suscripción establece la relación entre una publicación y un suscriptor, definiendo cómo y cuándo se entregan los datos a la base de datos de destino.
  • agentes: Los agentes son procesos especializados que realizan el trabajo real de mover y sincronizar datos entre los componentes de replicación.

SQL Server Arquitectura y componentes de replicación

3. Tipos de SQL Server Replicación

SQL Server Ofrece varios tipos de replicación, cada uno diseñado para escenarios específicos de distribución de datos y requisitos empresariales. Comprender las características, ventajas y limitaciones de cada tipo es fundamental para seleccionar el enfoque adecuado para su entorno.

3.1 Replicación de instantáneas

La replicación de instantáneas toma una instantánea de los datos que se publicarán en un momento específico y distribuye la copia completa a los suscriptores. No supervisa los cambios posteriores hasta que se genera la siguiente instantánea. La replicación de instantáneas es la forma más sencilla de replicación, lo que la hace adecuada para situaciones donde los datos cambian con poca frecuencia o donde es aceptable tener datos ligeramente desactualizados.

Los casos de uso comunes incluyen la distribución de datos de referencia, como listas de precios o tipos de cambio que se actualizan periódicamente, el suministro de conjuntos de datos iniciales para almacenes de datos y escenarios donde es preferible una actualización completa de los datos al seguimiento de cambios individuales. Por ejemplo, una empresa podría usar la replicación de instantáneas para distribuir catálogos de productos actualizados a las sucursales una vez al día.

Las principales ventajas de la replicación de instantáneas son su simplicidad, sus bajos requisitos de mantenimiento y la capacidad de replicar datos sin claves primarias. Sin embargo, presenta desventajas significativas, como un alto impacto al generar instantáneas debido a bloqueos de tablas, una alta latencia entre actualizaciones y su ineficiencia con grandes conjuntos de datos o datos que cambian con frecuencia. Cualquier modificación realizada en los suscriptores es...ost cuando se aplica la siguiente instantánea.

3.2 Replicación transaccional

La replicación transaccional entrega los cambios del editor a los suscriptores casi en tiempo real, replicando las transacciones individuales a medida que ocurren. Comienza con una instantánea inicial para establecer la línea base, luego monitorea continuamente el registro de transacciones para detectar cambios en los artículos publicados y los entrega a los suscriptores de forma incremental.

La replicación transaccional es ideal para entornos de servidor a servidor que requieren alto rendimiento y baja latencia. Entre los usos más comunes se incluyen la mejora de la escalabilidad y la disponibilidad mediante la transferencia de operaciones de lectura a servidores de suscriptores, el soporte del almacenamiento de datos y la generación de informes con datos casi en tiempo real, la integración de datos de múltiples sitios en una ubicación central y la transferencia del procesamiento por lotes a servidores dedicados. Por ejemplo, una plataforma de comercio electrónico podría utilizar la replicación transaccional para mantener sincronizados los datos de inventario en las bases de datos regionales.

Las ventajas de la replicación transaccional incluyen la entrega de datos con baja latencia, un alto rendimiento para grandes volúmenes de transacciones y la posibilidad de realizar modificaciones no replicadas en los suscriptores. Las desventajas incluyen una mayor complejidad en comparación con la replicación de instantáneas, el requisito de claves primarias en las tablas replicadas y la posibilidad de que la replicación se interrumpa si se producen conflictos, como violaciones de la clave primaria en los suscriptores.

3.3 Replicación de fusión

La replicación de fusión está diseñada específicamente para entornos donde los suscriptores necesitan trabajar sin conexión o con conectividad intermitente y luego sincronizar los cambios cuando la conexión está disponible. Este tipo de replicación permite modificar los datos tanto en el publicador como en los suscriptores de forma independiente, rastreando los cambios mediante activadores y tablas de metadatos, y fusionando automáticamente las modificaciones durante la sincronización.

La replicación de fusión está diseñada para aplicaciones móviles y entornos de servidores distribuidos donde se producen cambios autónomos. Entre los casos de uso se incluyen la automatización de la fuerza de ventas, donde los usuarios móviles trabajan sin conexión y se sincronizan posteriormente; sistemas de punto de venta que operan de forma independiente y consolidan datos periódicamente; y aplicaciones distribuidas donde varias sedes necesitan actualizar datos compartidos. Por ejemplo, una cadena minorista podría utilizar la replicación de fusión para que cada tienda pueda gestionar el inventario local mientras se sincroniza con el sistema de almacén central.

Las ventajas de la replicación de fusión incluyen la compatibilidad con suscriptores autónomos que pueden realizar cambios, la tolerancia a la conectividad de red intermitente y la flexibilidad para la resolución de conflictos. Las desventajas incluyen una mayor complejidad en la configuración y el mantenimiento, la sobrecarga de rendimiento derivada del seguimiento de metadatos y desencadenadores, la adición de columnas de identificadores únicos a las tablas y la posibilidad de conflictos que requieran gestión y resolución.

3.4 Replicación punto a punto

La replicación punto a punto se basa en la replicación transaccional y permite que varias instancias de servidor (tres o más nodos) actúen como pares iguales, donde cada nodo actúa simultáneamente como publicador y suscriptor. En esta topología, todos los nodos mantienen copias idénticas de los datos y pueden gestionar operaciones de lectura y escritura, lo que proporciona un entorno multimaestro verdaderamente distribuido.

La replicación punto a punto es adecuada para aplicaciones que requieren escalabilidad horizontal de las operaciones de lectura y alta disponibilidad. Entre los casos de uso se incluyen aplicaciones web que distribuyen consultas de catálogo entre múltiples nodos manteniendo la consistencia de los datos, escenarios que requieren mantenimiento o actualizaciones sin tiempo de inactividad mediante la desconexión individual de los nodos, y aplicaciones globales con centros de datos en diferentes regiones. Por ejemplo, una organización internacional de soporte de software podría utilizar la replicación punto a punto entre oficinas en diferentes zonas horarias para que cada ubicación tenga acceso local a los datos actualizados.

Las ventajas de la replicación punto a punto incluyen un mejor rendimiento de lectura mediante escalabilidad horizontal, mayor disponibilidad con múltiples nodos activos y consistencia de datos prácticamente en tiempo real. Las desventajas incluyen el requisito de Enterprise Edition, la complejidad en la gestión de topologías multinodo, la necesidad de esquemas y datos idénticos en todos los nodos, y la posibilidad de conflictos cuando las operaciones de escritura no están particionadas correctamente.

3.5 Replicación bidireccional

La replicación bidireccional es una topología de replicación transaccional específica, diseñada específicamente para entornos de dos servidores donde ambos necesitan intercambiar cambios. Cada servidor publica datos y se suscribe a los mismos datos del otro, creando un flujo de sincronización bidireccional simple. Si bien la replicación punto a punto también admite dos nodos, la replicación bidireccional ofrece un rendimiento mejorado para este escenario específico.

La replicación bidireccional es adecuada para escenarios que requieren dos servidores activos con datos sincronizados, como configuraciones activo-activo para alta disponibilidad o aplicaciones distribuidas geográficamente donde cada sitio requiere acceso de escritura local. La topología requiere un diseño cuidadoso de la aplicación para particionar las actualizaciones de datos y evitar conflictos.

Las ventajas incluyen un rendimiento optimizado para escenarios con dos servidores, una configuración más sencilla en comparación con la replicación punto a punto, sincronización casi en tiempo real y una menor sobrecarga que la replicación de combinación. Las desventajas incluyen la limitación a exactamente dos servidores, la falta de resolución de conflictos integrada, lo que requiere un diseño de aplicación minucioso, y la necesidad de estrategias de particionamiento adecuadas para evitar conflictos.

3.6 Suscripciones actualizables

Las suscripciones actualizables amplían la replicación transaccional para permitir que los suscriptores realicen cambios ocasionales en los datos replicados, que luego se propagan al publicador y a otros suscriptores. A diferencia de la replicación de fusión o las topologías punto a punto diseñadas para actualizaciones bidireccionales frecuentes, las suscripciones actualizables están pensadas para escenarios donde el flujo principal de datos es unidireccional (del publicador a los suscriptores), pero los suscriptores necesitan realizar correcciones o actualizaciones ocasionalmente.

Las suscripciones actualizables son apropiadas para escenarios donde most Las actualizaciones se realizan en el editor, pero es necesario realizar actualizaciones ocasionales en los suscriptores, como las oficinas de campo que leen principalmente datos, pero necesitan realizar correcciones o actualizaciones locales. La topología requiere una planificación cuidadosa para minimizar los conflictos y garantizar la consistencia de los datos.

Las principales ventajas incluyen la limitación de operaciones de escritura en los suscriptores, manteniendo al mismo tiempo el rendimiento de la replicación transaccional. Las desventajas incluyen una mayor complejidad, la posibilidad de conflictos que requieran resolución, la sobrecarga de rendimiento derivada del protocolo de confirmación en dos fases en el modo de actualización inmediata y el requisito de que todas las tablas replicadas tengan claves primarias.

3.7 Comparación de diferentes tipos de réplicas

Tipo de replicación Tiempo de actualizacion Número de editores Dirección: Usar escenarios
Instantánea Punto en el tiempo 1 One Direction (Editorial → Suscriptores) Datos de referencia que cambian con poca frecuencia (listas de precios, tipos de cambio)
Transaccional Casi en tiempo real 1 One Direction (Editorial → Suscriptores) Escenarios de alto rendimiento (inventario de comercio electrónico, almacenamiento de datos, informes)
ir Periódico (cuando está conectado) 1 Bidireccional (Editor ↔ Suscriptores) Aplicaciones móviles, trabajadores fuera de línea (automatización de la fuerza de ventas, servicios de campo)
Peer-to-Peer Casi en tiempo real Múltiples (3 o más) Bidireccional (todos los nodos) Implementaciones globales de múltiples centros de datos (oficinas en todo el mundo con acceso local de lectura y escritura)
Bidireccional Casi en tiempo real 2 Bidireccional (ambos servidores) Configuraciones activo-activo de dos centros de datos (alta disponibilidad de dos sitios)
Suscripciones actualizables Casi en tiempo real 1 Principalmente unidireccional (actualizaciones inversas ocasionales) Sucursales que principalmente leen pero ocasionalmente actualizan (correcciones locales)

4. Configuración SQL Server Replicación

4.1 Prerrequisitos y requisitos

4.1.1 Requisitos de software

SQL Server La replicación requiere compatibilidad SQL Server Versiones de todos los participantes de la topología. La versión del distribuidor debe ser igual o superior a la del publicador, y el suscriptor puede estar dentro de dos versiones del publicador. Por ejemplo, un SQL Server El editor de 2016 puede replicarlo SQL Server Suscriptores de 2012, 2014, 2016, 2017 o 2019.

4.1.2 Requisitos de permiso

La configuración de la replicación requiere permisos específicos en cada nivel. Los miembros del rol fijo de servidor sysadmin pueden realizar todas las tareas de configuración de la replicación. Para obtener permisos más específicos, los usuarios deben ser miembros del rol de base de datos db_owner para las bases de datos de publicador y suscriptor.

4.2 Paso 1: Configurar la distribución

Configurar la distribución es el primer paso para configurar SQL Server replicación.

Para configurar la distribución utilizando SQL Server Estudio de gestión:

  1. Conéctate a SQL Server instancia en SQL Server Estudio de gestión.
  2. En el Explorador de objetos, haga clic con el botón derecho en Replicación carpeta y seleccione Configurar distribución.
    Start configurar la distribución en SQL Server Replicación.
  3. En el Asistente para configurar distribución, haga clic en Siguiente en la página de bienvenida.
    Asistente para configurar distribución
  4. En la pestaña Mayorista página, elija una de las siguientes opciones según sus requisitos de topología:
    • Distribuidor Local: Seleccione “ServerName actuará como su propio Distribuidor; SQL Server Creará una base de datos de distribución y un registro si desea que el publicador y el distribuidor se ejecuten en la misma instancia (la instancia actual). Esta configuración es más sencilla y adecuada para entornos más pequeños o cuando la latencia de red entre el publicador y el distribuidor podría causar problemas.
    • Distribuidor remoto: Seleccione “Usar el siguiente servidor como distribuidor” y haga clic en Agregar la extensión de  Para especificar un servidor distribuidor remoto si desea transferir el procesamiento de la distribución a una instancia independiente. Esta configuración mejora el rendimiento cuando el volumen de replicación es alto, ya que distribuye la carga de trabajo entre varios servidores. Deberá proporcionar el nombre del distribuidor remoto y especificar una contraseña que el editor usará para conectarse a él.

    Configurar el distribuidor en SQL Server Replicación

  5. Haga clic en Siguiente Para especificar la ubicación de la carpeta de instantáneas, utilice una ruta UNC (como \\nombreservidor\compartido\carpeta) en lugar de una ruta local para garantizar la accesibilidad en toda la red.
    Configure la carpeta de instantáneas en el Asistente para configurar distribución
  6. En la pestaña Base de datos de distribución página, acepte el nombre de la base de datos de distribución predeterminada (normalmente “distribución”) o especifique un nombre personalizado, luego configure las ubicaciones de los archivos de registro y de datos.
    Configurar la base de datos de distribución en SQL Server Replicación
  7. En la pestaña Publicadores En la página, verifique que el servidor actual esté habilitado como editor. Si configura el servidor actual como distribuidor, podrá agregar otros editores que lo utilicen.
    Configurar los publicadores en SQL Server Replicación
  8. Revise las acciones del asistente y haga clic Acabado para configurar la distribución.
    Finalizar la configuración en SQL Server Replicación

4.3 Paso 2: Crear publicación

Después de configurar la distribución, el siguiente paso es crear una publicación que defina qué objetos de datos se replicarán a los suscriptores.

Para crear una publicación utilizando SQL Server Estudio de gestión:

  1. En el Explorador de objetos, expanda el Replicación carpeta.
  2. Haga clic con el botón Publicaciones locales y seleccione Nueva publicación.
  3. El nuevo asistente de publicacióntarts; haga clic Siguiente en la página de bienvenida.
  4. Seleccione la base de datos que desea publicar desde la Base de datos de publicaciones página. Esto habilita automáticamente la publicación en la base de datos seleccionada.
  5. En la pestaña Tipo de publicación página, seleccione el tipo de replicación: Publicación de instantáneasPublicación transaccional, Publicación entre pares o Fusionar publicación.
  6. En la pestaña Artículos página, expandir la Mesas nodo y seleccionar tablas para incluir como artículos.
  7. Expandir opcionalmente Procedimientos almacenadosVistas, u otros tipos de objetos para incluir artículos adicionales.
  8. Haga clic en Propiedades del artículo para configurar el filtrado u otras configuraciones específicas del artículo.
  9. En la pestaña Filtrar filas de la tabla página, agregue filtros de fila si es necesario.
  10. En la pestaña Agente de instantáneas página, elija cuándo crear la instantánea: inmediatamente, en un momento específico o según un cronograma.
  11. En la pestaña Seguridad del agente página, especifique el contexto de seguridad para el Agente de Instantánea.
  12. En la pestaña Acciones del asistente página, seleccione Crear la publicación.
  13. Proporcione un nombre de publicación y haga clic Acabado.
    Crear una nueva publicación en SQL Server Replicación

4.4 Paso 3: Crear suscripción

Después de crear una publicación, el siguiente paso es crear suscripciones que conecten la publicación a las bases de datos de suscriptores.

Las suscripciones pueden ser push (gestionadas por el distribuidor) o pull (gestionadas por el suscriptor). Las principales diferencias radican en dónde se crea la suscripción y en la ubicación del agente que se selecciona, lo que determina la acción de la suscripción (push o pull).

Para suscripción push (gestionado por el Distribuidor):

  1. En la pestaña editor servidor, expandir Replicación -> Publicaciones locales.
  2. Haga clic derecho en la publicación y seleccione Suscripciones nuevas.

Para suscripción Pull (gestionado por el Suscriptor):

  1. En la pestaña abonado servidor, expandir Replicación, botón derecho del ratón Suscripciones localesy selecciona Suscripciones nuevas.
  2. En la pestaña Publicación página, haga clic Encuentre SQL Server Publisher  y conectarse al servidor del editor.

Pasos comunes del asistente para ambos tipos de suscripción:

  1. En el Asistente para nueva suscripción, haga clic en Siguiente en la página de bienvenida.
  2. Seleccione la publicación y haga clic Siguiente.
  3. En la pestaña Ubicación del agente de distribución página, elija la ubicación del agente:
    • Suscripción push: Seleccione “Ejecutar todos los agentes en el distribuidor”: el distribuidor enviará los cambios a los suscriptores.
    • Suscripción de extracción:Seleccione “Ejecutar cada agente en su suscriptor”: cada suscriptor extraerá los cambios del distribuidor.
  4. En la pestaña Abonados página, seleccione los servidores de suscriptores existentes o haga clic en Añadir suscriptor para agregar nuevos.
  5. Para cada suscriptor, seleccione la base de datos de destino o cree una nueva base de datos. Nota: La base de datos de suscripciones debe ser diferente de la base de datos del editor, incluso si se utiliza la misma SQL Server ejemplo.
  6. En la pestaña Seguridad del agente de distribución página, haga clic en el botón de propiedades de cada suscripción para configurar el contexto de seguridad.
  7. En la pestaña Programación de sincronización página, elija sincronización continua o sincronización programada.
  8. En la pestaña Inicializar suscripciones página, seleccione Immediately para inicializar durante la finalización del asistente o En la primera sincronización.
  9. Revise las acciones del asistente y haga clic Acabado.
    Crear una nueva suscripción en SQL Server Replicación con el Asistente para nueva suscripción.

5. Seguimiento y gestión SQL Server Replicación

5.1 Supervisión de la replicación con el Monitor de replicación

Para iniciar el Monitor de replicación:

  1. In SQL Server Estudio de gestión, expandir Replicación en el Explorador de objetos.
  2. Haga clic con el botón Replicación y seleccione Iniciar el Monitor de replicación.
  3. Si no hay ningún editor registrado, haga clic en Agregar editor en el panel izquierdo.
  4. Elija Agregar la extensión de SQL Server Publisher y conectarse al servidor del editor.
  5. El editor aparece en el panel izquierdo con nodos expandibles para publicaciones y suscripciones.

Utilice el Monitor de replicación para supervisar la SQL Server Replicación.

5.2 Supervisión del rendimiento

5.2.1 Monitorizar la latencia

La latencia de replicación es el tiempo que transcurre entre un cambio que ocurre en el publicador y su aplicación en el suscriptor. Supervise la latencia para garantizar que la actualización de los datos cumpla con los requisitos del negocio.

Utilice el Monitor de Replicación para ver las métricas de latencia en la pestaña "Todas las Suscripciones". La columna "Latencia" muestra la latencia promedio en segundos. Para la replicación transaccional, los tokens de seguimiento proporcionan mediciones precisas de latencia mediante la inserción de transacciones de marcador que se rastrean a través del flujo de replicación.

Para utilizar tokens rastreadores:

  1. En el Monitor de replicación, seleccione una publicación transaccional.
  2. Haga clic en la pestaña Tokens rastreadores .
  3. Haga clic en Insertar trazador para inyectar una transacción de marcador.
  4. Monitorea el token a medida que viaja desde el editor al distribuidor y al suscriptor.
  5. Vea el tiempo que toma cada segmento para identificar cuellos de botella.

Inserte el token trazador para obtener mediciones de latencia más precisas de SQL Server Replicación

5.2.2 Monitorizar el rendimiento

El rendimiento mide el volumen de datos replicados a lo largo del tiempo, generalmente expresado en transacciones por segundo o comandos por segundo. Monitoree el rendimiento para garantizar que la replicación pueda seguir el ritmo de la actividad del editor.

Aunque el Monitor de Replicación proporciona información básica sobre el estado de sincronización, la tasa de entrega y las métricas detalladas de rendimiento no son visibles en la interfaz gráfica de usuario. Utilice consultas T-SQL en la base de datos de distribución para supervisar el rendimiento:

USE distribution
GO

-- Direct join to avoid subquery
SELECT TOP 20
    h.time AS [Time],
    a.name AS [Agent Name],
    h.runstatus AS [Status],
    h.delivered_transactions AS [Delivered Transactions],
    h.delivered_commands AS [Delivered Commands],
    h.delivery_rate AS [Delivery Rate (commands/sec)],
    h.delivery_latency AS [Delivery Latency (ms)],
    h.comments AS [Comments]
FROM MSdistribution_history h
JOIN MSdistribution_agents a ON h.agent_id = a.id
WHERE a.name LIKE '%MyPublication2%'
AND h.runstatus IN (2, 3, 4, 6)
ORDER BY h.time DESC
GO

Códigos de estado: 1 = Start, 2 = En progreso, 3 = Correcto, 4 = Inactivo, 5 = Reintentar, 6 = Fallido. Compare la tasa de entrega con las tasas de transacción del editor para identificar situaciones donde la replicación se está retrasando. Contadores de rendimiento en Monitor de rendimiento de Windows Proporcionar métricas de rendimiento adicionales para cada agente de replicación.

5.2.3 Identificar cuellos de botella

Los cuellos de botella en la replicación pueden ocurrir en varios puntos de la topología. En el publicador, un tiempo excesivo de generación de instantáneas o retrasos en el Agente del Lector de Registros pueden indicar limitaciones de recursos. Supervise la CPU, la memoria y la E/S de disco en el publicador durante las actividades de replicación.

En el distribuidor, verifique la acumulación de transacciones en la base de datos de distribución. Un gran número de comandos no distribuidos indica que el distribuidor no puede mantener el ritmo de entrega. Supervise los recursos del servidor del distribuidor y considere usar un distribuidor remoto dedicado para situaciones de alto volumen.

Verifique los comandos no distribuidos para encontrar los cuellos de botella de rendimiento en SQL Server Replicación

En el suscriptor, la aplicación lenta de los cambios puede deberse a recursos insuficientes, índices faltantes o restricciones que ralentizan las operaciones de inserción. Supervise la utilización de recursos del suscriptor y el rendimiento de las consultas cuando el Agente de Distribución esté en ejecución. Las limitaciones de ancho de banda de red entre los componentes también causan cuellos de botella, especialmente con grandes volúmenes de datos.

5.3 Administración de agentes de replicación

5.3.1 StarAgentes de parada y parada

A start o detener un agente de replicación:

  1. In SQL Server Estudio de gestión, expandir SQL Server Agente -> Ofertas de empleo.
  2. Localice el trabajo del agente de replicación (los nombres generalmente incluyen la información de publicación y del suscriptor).
  3. Haga clic derecho en el trabajo y seleccione Start Trabajo or Detener el trabajo.

Start o detener un agente de replicación en SQL Server Replicación

5.3.2 Configurar perfiles de agente

Los perfiles de agente contienen conjuntos de parámetros que controlan el comportamiento del agente. SQL Server Proporciona perfiles predeterminados optimizados para escenarios comunes y puede crear perfiles personalizados para necesidades específicas.

Para modificar los perfiles de agente:

  1. En el Explorador de objetos, expanda Replicación.
  2. Haga clic con el botón Replicación y seleccione Propiedades del distribuidor.
  3. Haga clic en la pestaña Valores predeterminados del perfil .
  4. Seleccione un tipo de agente (Instantánea, Lector de registros, Distribución o Combinación) en el menú desplegable.
  5. Seleccione un perfil y haga clic Propiedades para ver los valores de los parámetros.
  6. Haga clic en Nuevo perfil para crear un perfil personalizado basado en uno existente.
  7. Modifique los parámetros según sea necesario y haga clic OK.

Configurar el perfil del agente

Aplique un perfil a un agente editando las propiedades de suscripción y seleccionando el perfil deseado en el menú desplegable Perfil de agente.

5.3.3 Parámetros y configuraciones del agente

Los parámetros del agente optimizan el rendimiento y el comportamiento. Los parámetros clave del agente de distribución incluyen CommitBatchSize (número de transacciones aplicadas por confirmación), CommitBatchThreshold (número de comandos antes de la confirmación), SubscriptionStreams (conexiones paralelas para una entrega más rápida) y QueryTimeout (tiempo de espera para los comandos).

Para el Agente de Lector de Registros, los parámetros importantes incluyen ReadBatchSize (transacciones leídas por escaneo), ReadBatchThreshold (comandos antes de la entrega) y PollingInterval (retardo entre escaneos de registros). Ajuste estos parámetros según el volumen de transacciones y los requisitos de latencia.

Configurar las propiedades del agente

5.4 Consideraciones sobre copias de seguridad y restauración

La realización de copias de seguridad de las bases de datos que participan en la replicación requiere consideraciones especiales. Para la base de datos del editor, es fundamental realizar copias de seguridad completas y del registro de transacciones con regularidad. Marque la copia de seguridad de la base de datos para que sea compatible con la replicación utilizando la opción "CON REPLICACIÓN" al realizar copias de seguridad de las bases de datos en la replicación transaccional. Realice copias de seguridad de la base de datos de distribución con regularidad para proteger la configuración de la replicación.

Al restaurar una base de datos de publicador en el mismo servidor con el mismo nombre, utilice la opción WITH KEEP_REPLICATION para conservar el estado de replicación. Esta opción garantiza que las transacciones que aún no haya procesado el Agente del Lector de Registros permanezcan marcadas para replicación, lo que permite que la replicación continúe automáticamente sin reinicializar las suscripciones.

En escenarios de recuperación ante desastres donde las copias de seguridad no están disponibles, están dañadas o los archivos de base de datos están dañados, pueden ser necesarias herramientas de recuperación especializadas. DataNumen SQL Recovery Puede extraer datos de archivos MDF y NDF dañados o inaccesibles, proporcionando una opción de último recurso cuando fallan los procedimientos de restauración estándar.

Para más detalles sobre SQL Server Copia de seguridad, consulte nuestra guía completa.

6. Preguntas frecuentes (FAQ)

P: ¿Cuál es la diferencia entre la replicación instantánea y la replicación transaccional?

R: La replicación de instantáneas toma una copia completa de los datos en un momento específico y la aplica al suscriptor, lo que resulta adecuado para datos que cambian con poca frecuencia. La replicación transaccional...tarts con una instantánea inicial y luego replica continuamente transacciones individuales a medida que ocurren, proporcionando una sincronización casi en tiempo real para datos que cambian con frecuencia.

P: ¿Puedo replicar entre diferentes? SQL Server versiones?

A: Sí, SQL Server La replicación admite la compatibilidad de versiones dentro de un rango limitado. La versión del distribuidor debe ser igual o superior a la del editor, y el suscriptor puede estar dentro de dos versiones del editor. Por ejemplo, si el editor es SQL Server 2016, el suscriptor puede ser SQL Server 2012, 2014, 2016, 2017 o 2019.

P: ¿Cómo manejo los conflictos en la replicación de combinación?

R: La replicación de fusión proporciona mecanismos integrados de detección y resolución de conflictos. Puede configurar solucionadores de conflictos a nivel de artículo, eligiendo entre los integrados o implementando solucionadores de conflictos personalizados. Los conflictos se suelen resolver mediante métodos basados ​​en prioridad o marca de tiempo, con la opción de registrarlos para su revisión manual.

P: ¿Cuáles son los impactos en el rendimiento de la replicación?

R: La replicación afecta el rendimiento de varias maneras: el editor experimenta sobrecarga al rastrear cambios y generar instantáneas, el distribuidor utiliza recursos para almacenar y reenviar transacciones, y se consume ancho de banda de red durante la transferencia de datos. El impacto varía según el tipo de replicación: la replicación de instantáneas causa picos periódicos de alto impacto, mientras que la replicación transaccional mantiene una carga más consistente pero continua.

P: ¿Cómo puedo proteger mi topología de replicación?

A: Proteja su topología de replicación implementando varias prácticas recomendadas: utilice la autenticación de Windows o una autenticación fuerte. SQL Server autenticación, cifrar conexiones mediante TLS, proteger la carpeta de instantáneas con la autenticación adecuada NTFS permisos, configurar la Lista de acceso a publicaciones (PAL) para controlar el acceso, utilizar cuentas de servicio separadas con los permisos mínimos requeridos para cada agente de replicación y auditar periódicamente las configuraciones de seguridad de replicación.

P: ¿Puedo replicar a Azure SQL Database?

R: Sí, puede replicar en Azure SQL Database mediante replicación transaccional con una instancia local. SQL Server o Azure SQL Managed Instance como publicador y distribuidor. Azure SQL Database puede actuar como suscriptor, pero no como publicador ni distribuidor. La replicación de mezcla y la replicación punto a punto no son compatibles con Azure SQL Database.

P: ¿Cómo puedo monitorear el retraso en la replicación?

A: Supervise el retraso de replicación mediante el Monitor de replicación en SQL Server Management Studio, que muestra las métricas de latencia de cada suscripción. También puede consultar tablas de bases de datos de distribución como MSdistribution_history y MSrepl_commands, usar contadores de rendimiento específicos de los agentes de replicación o configurar alertas basadas en umbrales de latencia para detectar y solucionar de forma proactiva los retrasos en la sincronización.

P: ¿Qué sucede cuando un suscriptor está desconectado?

R: Cuando un suscriptor está desconectado, el comportamiento depende del tipo de replicación. En la replicación transaccional, las transacciones se acumulan en la base de datos de distribución hasta que el suscriptor vuelve a estar en línea; luego, se reanuda la sincronización. En la replicación de combinación, se registran los cambios en ambos lados y se combinan al restablecerse la conectividad. La configuración del período de retención determina cuánto tiempo se conservan los datos antes de que deban reinicializarse.

P: ¿Cómo puedo agregar nuevos artículos a una publicación existente?

A: Para agregar nuevos artículos a una publicación existente, utilice SQL Server Management Studio para modificar las propiedades de la publicación y seleccionar objetos adicionales, o usar el procedimiento almacenado sp_addarticle. Después de agregar artículos, genere una nueva instantánea y reinicie todas las suscripciones para garantizar que los suscriptores reciban los nuevos artículos. Algunos cambios pueden requerir la reinicialización de las suscripciones, según la configuración de la publicación.

P: ¿Cómo puedo eliminar la replicación de una base de datos?

A: Elimine la replicación de una base de datos eliminando primero todas las suscripciones con sp_dropsubscription, luego descartando la publicación con sp_droppublication y, finalmente, deshabilitando la publicación en la base de datos con sp_replicationdboption. Si el servidor es un distribuidor, deshabilite la distribución con sp_dropdistributor. Siempre haga una copia de seguridad de las bases de datos antes de eliminar la configuración de replicación.

Q: ¿Cuál es la diferencia entre SQL Server ¿Replicación y grupos de disponibilidad AlwaysOn?

A: La replicación es una solución de distribución e integración de datos que opera a nivel de objeto, mientras Grupos de disponibilidad siempre activos es una solución de alta disponibilidad y recuperación ante desastres que opera a nivel de base de datos.

7. Conclusión

SQL Server La replicación proporciona un marco sólido para distribuir y sincronizar datos entre múltiples bases de datos y ubicaciones. Esta tecnología admite diversos escenarios mediante diferentes tipos de replicación.

La selección de la estrategia de replicación adecuada depende de sus requisitos específicos. Considere la frecuencia de cambio de datos, los requisitos de latencia, si los suscriptores necesitan realizar actualizaciones, las características de la red y las necesidades de autonomía de los suscriptores. La replicación de instantáneas funciona mejor con datos de referencia que cambian con poca frecuencia, donde la latencia no es crítica. La replicación transaccional se adapta a escenarios de gran volumen que requieren baja latencia y un flujo de datos principalmente unidireccional.

Elija la replicación de fusión cuando los suscriptores necesiten un funcionamiento autónomo con capacidades sin conexión y sincronización bidireccional. Implemente la replicación punto a punto para equilibrar la carga de las operaciones de lectura en múltiples nodos activos con consistencia casi en tiempo real. Considere enfoques híbridos que combinen varios tipos de replicación para escenarios complejos con diversos requisitos.

Referencias


Sobre el Autor

Yuan Sheng es un administrador de bases de datos senior (DBA) con más de 10 años de experiencia en SQL Server Entornos y gestión de bases de datos empresariales. Ha resuelto con éxito cientos de escenarios de recuperación de bases de datos en organizaciones de servicios financieros, atención médica y manufactura.

Yuan se especializa en SQL Server Recuperación de bases de datos, soluciones de alta disponibilidad y optimización del rendimiento. Su amplia experiencia práctica incluye la gestión de bases de datos multiterabyte, la implementación de Grupos de Disponibilidad Siempre Activa (AVA) y el desarrollo de estrategias automatizadas de backup y recuperación para sistemas empresariales críticos.

Gracias a su experiencia técnica y su enfoque práctico, Yuan se centra en crear guías integrales que ayuden a los administradores de bases de datos y a los profesionales de TI a resolver problemas complejos. SQL Server Aborda los desafíos de manera eficiente. Se mantiene al día con las últimas novedades. SQL Server versiones y las tecnologías de bases de datos en evolución de Microsoft, probando periódicamente escenarios de recuperación para garantizar que sus recomendaciones reflejen las mejores prácticas del mundo real.

¿Tiene preguntas acerca SQL Server ¿Necesita ayuda adicional para la recuperación de la base de datos o para solucionar problemas? Yuan le da la bienvenida. comentarios y sugerencias para mejorar estos recursos técnicos.

Comparte ahora: