Prashanth Jayaram

Replicación de SQL Server: descripción general de componentes y topografía

October 14, 2019 by

El volumen de datos retenidos, administrados y accedidos hoy no tiene precedentes. Las empresas esperan que el departamento de IT mantenga todos los datos en línea y accesibles de forma indefinida, ejerciendo una intensa presión sobre las bases de datos necesarias para almacenarlos y administrarlos. Para poder satisfacer las necesidades de hoy; vamos a necesitar reemplazar los procesos obsoletos heredados e ineficientes con técnicas nuevas y más ágiles. La replicación de SQL Server es una de las técnicas para poder satisfacer tales demandas.

En este artículo, le vamos hacer entender la topografía completa de la replicación de SQL Server, incluidos todos los componentes internos y el SQL para vincular todo. Después de que complete la lectura de este artículo, usted comprenderá:

  • La replicación de SQL Server, en general
  • Los componentes de la replicación transaccional de SQL Server, en particular
  • Cómo conseguir las propiedades del distribuidor
  • Cómo encontrar el editor usando el mismo distribuidor
  • Cuáles son las bases de datos utilizadas para la replicación de SQL Server
  • La topología general de un entorno de replicación
  • Cuáles son los artículos que se asignan al tipo de modelo de replicación de SQL Server
  • Cómo conseguir los detalles de publicación
  • Cómo conseguir los detalles de suscripción
  • Agentes de replicación de SQL Server
  • Y mucho más…

Replicación

La replicación de SQL Server es una tecnología que nos permite copiar, distribuir datos y objetos de bases de datos de una base de datos a otra y luego poder sincronizar entre bases de datos para mantener la consistencia e integridad de los datos. En la mayoría de los casos, la replicación es un proceso de reproducción de datos en los objetivos deseados. La replicación de SQL Server se utiliza para poder copiar y sincronizar datos continuamente o a su vez se puede programar para que se ejecute a intervalos predeterminados. Existen diferentes técnicas de replicación que admiten una variedad de enfoques de sincronización de datos; de una sola mano; uno a muchos; muchos a uno; bidireccional, y mantener varios conjuntos de datos sincronizados entre sí.

Componentes de replicación transaccional de SQL Server

En el siguiente diagrama muestra los componentes de la replicación transaccional de SQL Server.

Incluyendo la replicación de SQL Server …

  • Editor
  • Base de datos de publicaciones
  • Publicación
  • Artículos
  • Distribuidor
  • Base de datos de distribución
  • Suscriptor
  • Base de datos de suscripciones
  • Suscripción
  • Agentes de replicación

Diagrama de replicación de SQL Server

Artículo

Un artículo es la unidad básica de la replicación de SQL Server. Un artículo puede consistir en tablas, procedimientos almacenados y vistas. Es probable escalar el artículo, horizontal y verticalmente, usando una opción de filtro. También vamos a poder crear múltiples artículos en el mismo objeto con algunas restricciones y limitaciones.

Utilizando el asistente de Nueva publicación se puede navegar por el artículo. Este nos permite ver las propiedades de un artículo y poder proporcionar opciones para establecer propiedades para los artículos. En algunos casos, las propiedades se pueden establecer durante el tiempo de creación de la publicación y es una propiedad de solo lectura.

Después de la creación de una publicación de replicación de SQL Server, como, por ejemplo, si alguna propiedad requiere un cambio, va a requerir, a su vez, que se genere una nueva instantánea de replicación. Si la publicación tiene una o más suscripciones, entonces el cambio va a requerir que todas las suscripciones se reinicien. Para poder obtener más información, consulte Cómo agregar/soltar artículos a/desde una publicación existente en el artículo de SQL Server.

Para que pueda enumerar todos los artículos publicados, ejecute el siguiente código T-SQL:

Para poder obtener los detalles de los artículos en la replicación transaccional o de fusión de SQL Server en una base de datos publicada, tiene que ejecutar el siguiente código T-SQL:

Para poder conseguir más información detallada sobre un artículo en el editor de la lista, ejecute el siguiente código T-SQL:

Para poder obtener detalles de nivel de columna, ejecute el siguiente código T-SQL:


Para poder enumerar las columnas que se publican en la replicación transaccional en la base de datos de publicaciones, tiene que ejecutar el siguiente código T-SQL:

Publicaciones

Una publicación es una colección lógica de artículos de una base de datos. La entidad nos va a permitir definir y configurar las propiedades de los artículos en el nivel superior para que todas las propiedades se hereden a todos los artículos de ese grupo.

Base de datos del editor

El editor es una base de datos la cual contiene una lista de objetos designados como los artículos de replicación de SQL Server que se conocen como la base de datos de publicación. El editor puede contener una o más publicaciones. Cada editor puede definir un mecanismo de propagación de datos generando varios procedimientos almacenados de replicación interna.


Editor

El publicador es una instancia de base de datos que proporciona los datos a disposición de otras ubicaciones a través de la replicación de SQL Server. El publicador puede obtener una o más publicaciones, cada una de las cuales define un conjunto lógicamente relacionado de objetos y datos para replicar.

Distribuidor

El Distribuidor es una base de datos el cual actúa como un almacén para la replicación de datos específicos asociados con uno o más Editores. En muchas ocasiones, el distribuidor es una base de datos única el cual actúa como el publicador y el distribuidor. En el contexto de la replicación de SQL Server, esto se conoce comúnmente como un “distribuidor local”. Por otro lado, si este está configurado en un servidor separado, entonces se lo va a conocer como un “distribuidor remoto”. Ya que cada editor está asociado con una única base de datos, la cual es conocida como “base de datos de distribución”, también conocida como “Distribuidor”.

La base de datos de distribución identifica y almacena los datos de estado de replicación de SQL Server, metadatos sobre la publicación y en algunos casos, este actúa como una cola para los datos que se transfieren del publicador a los suscriptores.

Dependiendo del modelo de replicación, el Distribuidor igualmente podría ser el responsable de notificar a los Suscriptores que se suscribieron a una publicación, que un artículo ha cambiado. Adicionalmente, la base de datos de distribución mantiene la integridad de los datos.

Bases de datos de distribución

Cada Distribuidor debe contener al menos una base de datos de distribución. La base de datos de distribución va a constar de detalles del artículo, metadatos de replicación y datos. Un distribuidor puede tener más de una base de datos de distribución; sin embargo, todas las publicaciones definidas en un único publicador deben utilizar la misma base de datos de distribución.

Para saber si …

  • ¿Un servidor es un distribuidor o no?


  • ¿Una base de datos de distribución está instalada o no?

  • ¿Un editor está usando este distribuidor o no?


  • ¿Simplemente para interrogar varias propiedades de Distribuidor y Base de datos de distribución?

Suscriptor

Una instancia de base de datos la cual consume datos de replicación de SQL Server de una publicación se denomina Suscriptor. El suscriptor puede recibir datos de uno o más editores y publicaciones. El suscriptor a su vez puede pasar los cambios de datos al editor o volver a publicar los datos a otros suscriptores dependiendo del tipo de diseño y modelo de replicación.

Suscripciones

Una suscripción es una solicitud de entrega de una copia de una publicación a un suscriptor. La suscripción define qué datos de publicación, se recibirán, dónde y cuándo.

Hay dos tipos de suscripciones: suscripciones Push y suscripciones Pull

  • Suscripción Push: el distribuidor actualiza directamente los datos en la base de datos del suscriptor
  • Suscripción de Pull: el suscriptor está programado para poder verificar regularmente en el distribuidor si existen nuevos cambios disponibles, y luego va actualizar los datos en la base de datos de las suscripciones

Bases de datos de suscripción

Una base de datos de destino de un modelo de replicación el cual se denomina base de datos de suscripción.

Agentes de replicación

La replicación de SQL Server usa un conjunto predefinido de programas independientes y los eventos se conocen como agentes, para poder llevar a cabo las tareas asociadas con los datos. De manera predeterminada, los agentes de replicación de SQL Server se ejecutan como trabajos programados en el Agente SQL Server. Los agentes de replicación también se pueden lograr ejecutar desde la línea de comandos y mediante aplicaciones que usan Replication Management Objects (RMO). Los agentes de replicación de SQL Server también pueden monitorearse y administrarse utilizando el Monitor de replicación y SQL Server Management Studio.

Agente de instantáneas de replicación

El Agente de instantáneas de replicación se utiliza con todos los tipos de tecnología de replicación de SQL Server, ya que este proporciona el conjunto de datos necesarios para ´poder realizar la sincronización de datos inicial de la base de datos de publicaciones con la base de datos de suscripción. Prepara el esquema y los datos iniciales de artículos publicados, archivos de instantáneas y registra información sobre el tipo de sincronización en la base de datos de distribución.

Agente de lector de registro

El Agente de lector de registro se utiliza solo con la replicación transaccional. Mueve las transacciones de replicación del registro de transacciones en línea de la base de datos de publicaciones a la base de datos de distribución.

Agente de distribución

El Agente de distribución se usa solo con la instantánea de replicación y la replicación de Transactional SQL Server. Este agente aplica la instantánea de replicación inicial a la base de datos de suscripción y después, los cambios de datos se rastrean y registran en la base de datos de distribución, el cual se aplica a la base de datos de suscripción.

Agente de fusión

El Agente de combinación se utiliza con el modelo de replicación de combinación. De una manera predeterminada, el Agente de mezcla carga los cambios del Suscriptor al Editor y luego de eso va a descargar los cambios del Publicador al Suscriptor. Cada suscripción posee su propio Agente de combinación que se conecta tanto al Editor como al Suscriptor y actualiza ambos. El Agente de mezcla se ejecuta en el Distribuidor para suscripciones push o en el Suscriptor para suscripciones pull. Entonces, la sincronización es bidireccional. Los conflictos de datos son manejados por un conjunto de disparadores que soportan todo el proceso.

Resumen

Hasta el momento, hemos visto un recorrido por algunos de los conceptos más importantes de la replicación de SQL Server. Adicionalmente, los scripts T-SQL se muestran para poder consultar tablas del sistema y procedimientos almacenados de replicación para así poder responder a la mayoría de las preguntas más frecuentes sobre la replicación de SQL Server.

Discutiré más sobre la replicación de SQL Server en los próximos artículos. Si cree que algo se puede mejorar en este artículo, no dude en dejar su comentario a continuación …

Tabla de contenido

SQL Server replication: Overview of components and topography
SQL Replication: Basic setup and configuration
How to Add/Drop articles from existing publications in SQL Server
How to do a quick estimated compare of data in two large SQL Server databases to see if they are equal
SQL Server transactional replication: How to reinitialize a subscription using a SQL Server database backup
How to setup a custom SQL Server transaction replication model with a Central Subscriber and Multiple Publisher databases
How to setup custom SQL Server transactional replication with a central publisher and multiple subscriber databases
How to set up a DDL and DML SQL Server database transactional replication solution
How to setup cross-platform transactional SQL Server replication for database reporting on Linux
SQL Server database migrations with zero data loss and zero downtime
Using transactional data replication to replay and test production loads on a staging server
How to setup SQL Server database replication for a reporting server
SQL Server transactional replication: How to reinitialize a subscription using a “Replication support only” –TBA
SQL Server Replication Monitoring and setting alerts using PowerShell –TBA
Prashanth Jayaram
168 Views