¿Que son Replicas de
Base de Datos?
Una replicación de base de datos es una técnica
mediante la cual copiamos de forma exacta en otra ubicación una instancia de la
base de datos.
La replicación copia y mantiene los objetos de
las bases de datos en las múltiples bases de datos que levantan un sistema
distribuido. La replicación puede mejorar el funcionamiento y proteger la
disponibilidad de las aplicaciones, porque alterna opciones de acceso de los
datos existentes. Por ejemplo, una aplicación puede tener acceso normalmente a
una base de datos local, más que a un servidor remoto para reducir al mínimo el
tráfico de la red y alcanzar su funcionamiento máximo. Además, la aplicación
puede continuar funcionando si el servidor local experimenta una falla, pero
otros servidores con datos replicados siguen siendo accesibles.
Ventajas de las Replicación
de Base de Datos
La replicación te puede ofrecer grandes
beneficios relacionados principalmente con el rendimiento, disponibilidad y
seguridad de los datos.
Aumento de la fiabilidad: mediante la replicación de base de datos a
través de múltiples servidores, te aseguras que los datos van a estar
disponibles incluso en el caso de que una de las máquinas tenga un fallo grave
de hardware. El sistema distribuido de gestión de bases de datos debe ser capaz
de enrutar a los usuarios afectados a otro de los nodos disponibles.
Mejora en el rendimiento: al estar los datos distribuidos en diferentes
servidores, los múltiples accesos no saturan los servidores. Esto es importante
sobre todo en el caso de aplicaciones que pueden tener miles o cientos de miles
de peticiones simultáneas. El rendimiento de las aplicaciones aumenta
notablemente.
Mejora en la seguridad de los datos: en un sistema transaccional
tradicional, todas las actualizaciones de una base de datos se guardan en un
mismo disco. La seguridad de tus datos queda entonces en manos de la estrategia
de copias de seguridad que tengas implementada en ese servidor. Con la
replicación de base de datos aumentas la seguridad de los datos ya que las
actualizaciones están siendo escritas en varios servidores. Es decir, varios
discos, varias fuentes de alimentación, CPU’s, etc. son utilizadas para
asegurar que tus datos estarán a salvo en algunos servidores, aunque pueda
ocurrir un desastre en otros.
Desventajas
Al no depender de servidores o matrices para
realizar la replicación, puede ejecutarse a través de un elevado número de
plataformas de servidores y matrices de almacenamiento, lo que hace de esta
tecnología la opción ideal para entornos de gran heterogeneidad. Además, la
mayor parte de los productos de replicación en red ofrecen funciones de
virtualización de sistemas de almacenamiento como complemento o como parte del
paquete principal.
Las soluciones de replicación en red que se
encuentran disponibles en la actualidad consisten en dispositivos en línea o
bien en sistemas de mallas de conexión. En el caso de los dispositivos en
línea, todas las E/S tienen que pasar por la unidad de replicación. Estos
dispositivos finalizan las E/S introducidas y crean nuevas E/S que se envían a
los principales puntos de destino del almacenamiento, y, en el caso de las E/S
de escritura, también a puntos de destino de almacenamiento replicados. La
solución en línea ha sido duramente criticada por los problemas de rendimiento
y escalabilidad que presenta.
La gran escalabilidad de su arquitectura y los
elevados niveles de caché que ofrece no sólo han permitido que SVC supere estas
limitaciones ligadas al rendimiento y la escalabilidad, sino que, además, y
gracias a la sencillez del enfoque en línea, por contraposición a la mayor
complejidad que revisten las soluciones de mallas de conexión, han logrado que
se convierta en uno de los productos estrella del mercado de la replicación en
red y de la virtualización.
Otras desventajas son:
Complejidad del sistema, desarrollo de software
más costoso, problemas de sincronización, dificultad para conocer la corrección
de los algoritmos paralelos, detección de caídas de nodos
Dependencia de la red de comunicaciones,
sobrecarga de procesamiento de mensajes
Dificultad de diseño, fases adicionales
Poca madurez de los productos comerciales,
orientados a replicación
Funciones de administración compleja,
sincronización y coordinación
Dificultad de cambio, inexistencia de
metodologías
Personal especializado
Caracteristicas
La replicación se proporciona en los siguientes
niveles:
Replicación básica: las réplicas de tablas se
gestionan para accesos de sólo lectura. Para modificaciones, se deberá acceder a
los datos del sitio primario.
Replicación avanzada (simétrica): amplían las
capacidades básicas de sólo- lectura de la replicación, permitiendo que las
aplicaciones hagan actualizaciones a las réplicas de las tablas, a través de un
sistema replicado de la base de datos. Con la replicación avanzada, los datos
pueden proveer lectura y acceso a actualizaciones a los datos de las tablas.
El modelo de Replicación que usa SQL es el de
“Publicador – Suscriptor”. Este modelo consiste en Publicadores, Suscriptores y
Distribuidores; las publicaciones y los artículos, y las suscripciones por
tirón o empuje. Además incorpora agentes de administración como Agente de
Instantánea, Agente Lector de Registro, Agente de Distribución, y Agente de
Mezcla. Todos los agentes pueden funcionar debajo del agente del servidor del
SQL y se pueden administrar completamente por el Administrador del Servidor de
SQL.
Usos
Se utiliza en entornos distribuidos de Sistemas
de Gestión de Bases de Datos donde una sola base de datos tiene que ser
utilizada y actualizada en varios lugares de forma simultánea.
Actualmente existen en la red multitud de
aplicaciones y de sistemas que tienen por debajo una base de datos que sigue el
modelo cliente-servidor. Muchas veces esos sistemas deben de tener garantizada
la accesibilidad por lo que para evitar problemas es necesario utilizar este
tipo de técnicas de replicación de base de datos de forma que un fallo en uno
de los servidores de base de datos no impida a los usuarios seguir utilizando
la aplicación.
Mediante la replicación de base de datos,
usuarios de todo el mundo pueden estar accediendo a lo que para ellos son los
mismos datos, aunque en realidad, físicamente esos datos pueden estar de forma
transparente para el usuario, en diferentes nodos o localidades.