La replicación es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos desde una base de datos a otra, para luego sincronizar ambas bases de datos y mantener su coherencia. La replicación permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes locales y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet.
El esquema de la replicación se basa en las Editoriales, hace mención a artículos, publicaciones, publicadores, distribuidores, subscriptores y agentes.
La mejor forma de entender los elementos de la replicación es exactamente haciendo metáfora a la producción dentro de la editorial:
Se crea un publicación, esta publicación contiene Artículos, en este caso lo artículos pueden ser objetos de la bases de datos como tablas, vistas, Store Procedures o funciones, el publicador es el servidor que contiene la publicación con los artículos, Interviene también lo que es el distribuidor de la publicación, este puede ser otro servidor o el mismo publicador a lo que se le conoce como distribuidor local, el objetivo de que el distribuidor sea un servidor alterno es para liberar de una carga de trabajo al publicador que es quien la publicación y artículos y en la gran mayoría de los casos esos artículos tienen una carga de trabajo considerable más tratándose de bases de datos en producción. Posteriormente entra lo que es el subscriptor, una suscripción es una petición de copia de datos o de objetos de base de datos para replicar. Una suscripción define qué publicación se recibirá, dónde y cuándo. Las suscripciones pueden ser de inserción o de extracción; y una publicación puede admitir una combinación de suscripciones de inserción y extracción. El publicador (en las suscripciones de inserción) o el suscriptor (en las suscripciones de extracción) solicitan la sincronización o distribución de datos de una suscripción.
Modos de Replicación:
Aquí hay de tres sopas, y el tipo de replicación que a ti te conviene es el de:… bueno mejor lee un poco más para que realmente sepas que es lo que se adapta mejor a tus necesidades, ya que el tipo seleccionado depende de factores como físicos (ubicaciones de los equipos), cantidades de datos, etc..
· Replicación de Instantáneas:
o La replicación de instantáneas distribuye datos tal como se encuentran en un momento específico en el tiempo, no supervisa las actualizaciones de los datos, al iniciar cualquier modo de replicación, siempre se hace uso de la instantánea para proporcionar el conjunto inicial de datos y objetos de la BD. Estos son los mejores escenarios para el uso óptimo de la replicación de instantáneas:
§ Datos que cambian con poca frecuencia.
§ Aceptable disponer de copia de la base de datos anticuada con respecto al publicador durante un periodo de tiempo.
§ Replicación de pequeñas cantidades de datos.
o Sus ventajas es que tiene una carga más reducida de trabajo en el publicador que la replicación transaccional por que no se realiza seguimiento de cambios.
o Y su desventaja puede ser que si la cantidad de datos a replicar es grande de igual forma tendrán que ser los recursos para generarla y aplicarla en los subscriptores.
o Los cambios que se pudiesen realizar en la base de datos de la subscripción se pierden por completo al ejecutarse el agente de distribución, debido a que reemplaza toda la información de la base de datos de la subscripción con la instantánea de la base de datos replicada.
o Si el Agente de Distribución se deja establecido con la opción default la cual es Ejecutarse continuamente, se ejecutara cada segundo, esto demanda más trabajo al servidor en el que se configure la subscripción, pero podría también mantener actualizado al subscriptor tan rápido como se programe el Agente de Instantáneas. (Más adelante veremos un ejemplo)
Para entender mejor:
En la replicación de instantáneas cada vez que se ejecuta el agente de instantáneas genera una instantánea con toda la información a replicar de la base de datos, es por este motivo que este tipo de replicación no es recomendable cuando la cantidad de información a replicar es mucha o su modificación es muy frecuente y la disponibilidad de esas modificaciones es obligatoria en la base de datos del subscriptor, pues esto generaría carga de trabajo a la red y los servidores.
Otro punto importante a mencionar es que la base de datos del subscriptor es básicamente de solo lectura, debido a que cada vez que se ejecuta el agente distribuidor traerá la información con la última instantánea y reemplazara de nuevo toda la información del subscriptor.
El mejor escenario para que este modo opere con eficiencia es:
· La información a transferir es poca. (Entonces puedes programarlo para que el agente de instantáneas se ejecute con frecuencia y el Agente Distribuidor en continuidad esto aria que los datos estén disponibles en la base de datos del subscriptor inmediatamente.)
· La información cambia en periodos de tiempo largos. Se programan los agentes para su ejecución en los tiempos necesarios.
· Replicación Transaccional:
o En la replicación transaccional intervienen tres agentes, el agente de instantáneas, el agente de log y el agente de distribución de SQL Server® , el agente de instantáneas prepara los archivos que contienen los esquemas, datos y objetos de la base de datos y registra los trabajos de sincronización en la base de datos de distribución del distribuidor. El agente de Log supervisa el registro de transacciones y copia las transacciones marcadas para ser replicadas. El agente de distribución copia el archivo de instantáneas y las transacciones almacenadas.
o Los cambios en el publicador se transfieren al subscriptor dependiendo de la programación del agente de distribución, y se pude ejecutar continuamente para que la latencia sea mínima
· Replicación de Mezcla:
o Este modo de replicación se inicia con una instantánea de los objetos y datos de la base de datos del publicador al igual que el modo transaccional, los cambios en la información y la modificación de esquemas que posteriormente se llevan a cabo en el publicador y en los subscriptores se controlan por medio de desencadenadores.
o La replicación de mezcla permite que diferentes sitios funcionen de forma autónoma y, después, mezclen las actualizaciones en un solo resultado uniforme. Puesto que las actualizaciones tienen lugar en más de un nodo, los mismos datos pueden haber sido actualizados por el publicador y por más de un suscriptor. Por tanto, se pueden producir conflictos cuando las actualizaciones se mezclan y la replicación de mezcla proporciona varias formas de controlar los conflictos.
Continuaremos..