¿Qué es la replicación de datos?

La replicación de datos es cuando los mismos datos se almacenan intencionalmente en más de un sitio o servidor. Hay varias razones por las que las empresas replican datos. Permite que los datos estén disponibles sin problemas en el caso de un tiempo de inactividad del servidor o mucho tráfico hacia el servidor. Los datos se vuelven accesibles para los usuarios de manera constante sin interferir ni ralentizar el acceso de otros usuarios. Para las aplicaciones en la nube, la replicación de datos le permite acceder a una copia de los datos en una base de datos local con un rendimiento mucho mayor que acceder a los datos a través de la API de la aplicación en la nube, que es especialmente útil para análisis y la ciencia de datos. La replicación de datos también puede permitirle evitar los límites de transacción de la API y la aceleración que tienen algunas aplicaciones en la nube.

Diagrama de replicación de datos

La replicación de datos no es lo mismo que una copia de seguridad normal y hace más... El servidor donde se originan los datos se denomina publicador y aquel en el que se replican los datos se denomina suscriptor. En la replicación de datos, la transacción realizada en el editor se sincroniza con el suscriptor y actualiza los datos automáticamente. Cualquier cambio de datos en el editor también se refleja automáticamente en el suscriptor.

Puede haber replicación completa o replicación parcial. En caso de replicación completa, todos los datos de origen se almacenan en todos los sitios replicados. En caso de replicación parcial, solo se copian los datos a los que se accede con frecuencia, mientras que otros datos permanecen en la fuente.

Tipos de replicación de datos

Hay tres tipos principales de replicación de datos.

Replicación transaccional

En la replicación transaccional, los cambios de datos que ocurren con frecuencia se automatizan y distribuyen entre servidores. La replicación de cambios del editor al suscriptor ocurre casi en tiempo real. No se limita a replicar el resultado final de la transacción, sino que registra cada paso de la transacción y el orden en que ocurren los cambios.

Por ejemplo, en el caso de transacciones en cajeros automáticos, la replicación del editor al suscriptor no es solo el saldo final registrado, sino todas las transacciones individuales realizadas en el medio. Otra característica clave de la replicación transaccional es que mientras los cambios de datos en el publicador se replican en el suscriptor, no funciona al revés. Los cambios de datos no se producen en el nivel de suscriptor de forma predeterminada.

Replicación de instantáneas

La replicación de instantáneas sincroniza los datos entre el publicador y el suscriptor en un momento determinado. Mueve fragmentos de datos del editor al suscriptor en una sola transacción. Las actualizaciones en una replicación de instantáneas no son tan frecuentes como la replicación transaccional. Se puede hacer antes de la replicación transaccional para establecer un estado base de los dos servidores. No actualiza cada transacción entre los servidores ni el orden de cambio de datos.

Este proceso se utiliza para sincronizar datos que cambian durante un período de tiempo. Por ejemplo, muchas empresas replican datos como cuentas, contactos y oportunidades desde un CRM en la nube a una base de datos local para generar informes. Esto se puede hacer cada 15 minutos, una vez por hora o una vez al día, dependiendo de la frecuencia con la que cambien los datos. Para mayor eficiencia, el proceso de replicación puede detectar los datos que han cambiado en el publicador y replicar solo los cambios en lugar de tomar una instantánea completa en cada intervalo de replicación.

Fusionar replicación

La replicación de mezcla es una forma de replicación un poco más compleja. La sincronización inicial del publicador es una replicación de instantáneas. Sin embargo, de esta forma, permite que se produzcan cambios de datos tanto a nivel de editor como de suscriptor. Luego, los datos actualizados se envían a un agente de combinación, que está instalado en todos los servidores. El agente de combinación utiliza algoritmos de resolución de conflictos para actualizar y distribuir los datos.

Por ejemplo, si un empleado estaba editando un documento guardado directamente en un servidor en la nube (editor) en su ordenador portátil o teléfono (suscriptor) mientras estaba en línea, eso sería una replicación transaccional ya que el documento se guarda casi en tiempo real. Sin embargo, si el documento se descargó del servidor en la nube y se actualizó sin conexión en el ordenador portátil o el teléfono, habría un conflicto, ya que los datos se actualizaron en el extremo del suscriptor. Una vez que vuelva a estar en línea, pasaría por un agente de fusión, que usaría un sistema de resolución de conflictos para actualizar el documento en el editor comparando los dos archivos.

La replicación de mezcla se usa en múltiples escenarios en los que un usuario no tiene acceso directo al editor en todo momento, como en el caso de los usuarios móviles, donde es posible desconectarse mientras se actualizan los datos. También se usaría en el caso de que varios suscriptores puedan acceder y actualizar los mismos datos en varios momentos y sincronizarlos con el editor o con otros suscriptores. También podría usarse cuando los mismos datos del editor se actualicen en partes por varios suscriptores al mismo tiempo.

Componentes importantes de la red de replicación de datos

Además del editor y el suscriptor, la red también tiene algunos elementos clave que se requieren para tener éxito.

Distribuidor

Para cambiar una configuración de replicación, primero se debe configurar el distribuidor. El distribuidor es un servidor en la red de replicación que controla la base de datos de distribución y almacena los metadatos y el historial de todas las replicaciones. También almacena transacciones e instantáneas destinadas a la replicación. El distribuidor puede ser el mismo que el servidor publicador (distribuidor local) o incluso un distribuidor remoto dependiendo del tipo de replicación.

Un distribuidor remoto generalmente se usa cuando un solo distribuidor atiende a múltiples editores o cuando se requiere realizar el procesamiento en un ordenador separado para no afectar el movimiento de datos en el editor. Esto se usa típicamente en la replicación transaccional donde la frecuencia de las actualizaciones es mucho más alta y podría afectar la velocidad de procesamiento del distribuidor si está en el mismo servidor. La replicación de mezcla se puede realizar con un distribuidor local, ya que la frecuencia de la replicación y las actualizaciones no es tan frecuente como la replicación transaccional. También ayuda que los datos actualizados del suscriptor después de la fusión tengan que sincronizarse eventualmente con el editor.

Agentes de replicación

Los agentes de replicación están en el centro de la replicación y varían según el tipo de replicación instalada. Son programas que realizan diversas tareas como la detección y actualización de bases de datos de editores y suscriptores, creación de copias y resolución de conflictos. Los agentes de replicación generalmente se almacenan en el distribuidor. Algunos de los agentes de replicación que se ejecutan desde el distribuidor son:

  • Agente de instantáneas.
  • Agente de distribución.
  • Agente de fusión.
  • Agente de lector de registro.
  • Agente lector de cola.

Ventajas de la replicación de datos.

La replicación de datos es una excelente manera de proporcionar un acceso constante a los datos. También aumenta el acceso a los datos a múltiples usuarios al mismo tiempo. Las redundancias de datos se eliminan mediante la fusión de bases de datos y la actualización de bases de datos esclavas con datos incompletos. Y con la replicación de datos, naturalmente, hay un acceso más rápido a las bases de datos.

Desventajas de la replicación de datos

La replicación de datos requiere un gran espacio de almacenamiento e infraestructura para mantenerla. La replicación es costosa y el mantenimiento de la infraestructura para mantener la coherencia de los datos requiere medidas complejas. También abre más partes del software a violaciones de privacidad y seguridad.

Mejores prácticas para la replicación

Una vez configurada la red de replicación, es importante seguir algunas prácticas de administración efectivas:

  • Debe existir una estrategia para realizar copias de seguridad de una base de datos de forma regular. También se deben realizar pruebas periódicas para restaurar esas copias de seguridad.
  • Como parte de la recuperación ante desastres, es esencial crear secuencias de comandos para todos los componentes de replicación y las tareas repetitivas, ya que las secuencias de comandos se pueden almacenar y respaldar fácilmente. En caso de un cambio en las políticas, los componentes se pueden modificar fácilmente.
  • Es necesario establecer factores que afecten el desempeño de la replicación. Esto incluye aspectos como el hardware, el diseño de la base de datos, la configuración de la red, la configuración del servidor y los parámetros del agente. Todos estos deben implementarse y monitorearse para la carga de trabajo utilizada por la aplicación.

Los siguientes cinco parámetros deben ser monitoreados para la eficiencia:

  • Tiempo requerido para la replicación.
  • Replicación sostenida durante un período de tiempo.
  • Simultaneidad o número de actividades de replicación que pueden ocurrir al mismo tiempo.
  • Duración de la sincronización.
  • Consumo de recursos para la replicación.
    • Para evitar desastres, es importante establecer umbrales de rendimiento para que, cuando se alcancen, generen advertencias y envíen alertas a los administradores. También se pueden establecer alertas para acciones de agentes de replicación o procesos de replicación.
    • Supervisar la topología de replicación.
    • La validación periódica de los datos para la replicación transaccional y la replicación de combinación debe realizarse en el editor y el suscriptor para mantener una replicación exitosa.

La replicación de datos va más allá de crear una copia de seguridad de datos. Si bien es uno de los componentes clave en la gestión de datos, también puede ser un proceso costoso y complejo si no se gestiona adecuadamente. La clave está en elegir el proceso de replicación adecuado a sus necesidades.