saltar al contenido

Base de datos de alta disponibilidad (HA DB)

RDM, el sistema de administración de bases de datos, fue diseñado para brindar alta disponibilidad y un tiempo de actividad superior. RDM replicará y reflejará sin problemas sus datos entre varios entornos, brindándole acceso casi en tiempo real a los datos administrados sin tiempo de inactividad.

¿Qué es la replicación de bases de datos?

La replicación de la base de datos es un proceso de copiar datos de una base de datos a una o más copias, o réplicas, generalmente para mejorar la accesibilidad o la tolerancia a fallas.

Los términos "replicación activa" y "replicación pasiva" se utilizan a veces para caracterizar cómo funciona este proceso. Como se define en Wikipedia, la replicación activa se realiza procesando la misma solicitud en cada réplica. En la replicación pasiva, cada solicitud se procesa en una única réplica y luego su estado se transfiere a las otras réplicas.

Habilidades de replicación de RDM

Administrador de base de datos Raima (RDM) admite ambas técnicas; en la documentación de Raima, la replicación activa se denomina simplemente "replicación", mientras que la replicación pasiva se denomina "duplicación". En el contexto de RDM, la duplicación dará como resultado copias idénticas a la base de datos original, byte por byte, mientras que la replicación dará como resultado copias no idénticas. Estas copias contendrán todos los registros transferidos del original, pero la organización física de los registros en los archivos de la base de datos (o en la memoria) puede diferir. Además, la copia puede contener tablas o índices adicionales que nunca estuvieron en la base de datos original. O puede que no contenga algunas de las tablas de la base de datos original, ya que RDM Enterprise Lite admite la replicación filtrada, donde solo se replican las tablas especificadas.

"Activo-Activo" frente a "Activo-Pasivo"

En el contexto de la replicación, los términos "activo-activo" y "activo-pasivo" también son comunes, pero se refieren a conceptos diferentes a los que acabamos de describir. La replicación activo-activo significa la replicación bidireccional de datos entre dos bases de datos que se están actualizando activamente y también se denomina "replicación multimaestro". La replicación activa-pasiva significa la replicación unidireccional desde una base de datos maestra que se actualiza activamente a una base de datos esclava que no se actualiza excepto por el proceso de replicación. Esto también se denomina replicación "maestro-esclavo".

En RDM, la replicación es siempre una replicación maestro-esclavo y se realiza de forma asincrónica. Puede tomar cualquiera de dos formas:

  1. Replicación de una base de datos RDM a otra: tanto el maestro como el esclavo son bases de datos RDM, donde el esclavo es una copia de solo lectura del maestro.
  2. Replicación de una base de datos RDM a un tipo diferente de base de datos, como una base de datos Microsoft SQL Server, una base de datos Oracle, una base de datos MySQL o una base de datos RDM SQL. Aquí el esclavo puede contener otros datos además de los copiados del maestro y puede ser actualizado por otras aplicaciones. Sin embargo, la replicación sigue siendo "unidireccional" en el sentido de que los datos se transfieren solo desde la base de datos RDM al esclavo, y nunca al revés.

Optimización de la replicación en sistemas integrados

En el contexto de los sistemas integrados, la segunda forma de replicación es útil para recopilar datos de varios dispositivos integrados y almacenarlos todos en la misma máquina, donde está disponible para consultas o informes de los usuarios. Por lo general, los datos almacenados en un dispositivo integrado llegan en tiempo real desde sensores y otro hardware conectado, y son muy sensibles al tiempo. Cualquier operación que pueda bloquear o ralentizar las actualizaciones en el dispositivo integrado es inaceptable. Sin embargo, sin mucho costo de CPU, los datos se pueden replicar (asincrónicamente) desde el dispositivo integrado a una base de datos basada en PC, donde hay un hardware más potente y menos requisitos para tiempos de respuesta limitados.

Diferencias entre replicación y creación de reflejo de datos

En RDM existe cierta superposición funcional entre la replicación y la duplicación, pero en general la replicación se proporciona principalmente para mejorar la accesibilidad. Al mantener múltiples copias esclavas de los mismos datos en varios nodos, parte de la carga de trabajo se descarga del maestro. Esto mejorará el rendimiento de la actualización en la base de datos maestra y permitirá lecturas más rápidas en los otros nodos, donde las aplicaciones pueden acceder a una copia esclava local de la base de datos. Cuando se usa junto con el soporte de RDM para uniones de bases de datos, esto le permite construir un sistema de base de datos distribuido. Una aplicación puede abrir varias bases de datos, ubicadas en la misma máquina o en máquinas diferentes, en una unión de base de datos y obtener una vista unificada de los datos, como si todos estuvieran en la misma base de datos. Este soporte para la replicación y las bases de datos distribuidas hace de RDM un sistema de base de datos altamente escalable.

La replicación también puede ser una forma conveniente de propagar datos de configuración a través de una red de procesadores. Una base de datos maestra puede contener los datos de configuración actuales del sistema, y esto se puede replicar a través de una estructura de varios niveles a los otros nodos de la red. Cada nodo se puede programar para descubrir una fuente disponible para replicar y conectarse a ella. La replicación admite bases de datos en memoria y basadas en disco, por lo que en este ejemplo, el origen de la replicación de varios niveles podría ser una base de datos en memoria leída desde el disco, que se replica en todo el sistema en bases de datos locales en memoria a medida que se inicia cada nodo. arriba.

Creación de reflejo de la base de datos

Reflejar una base de datos es crear una copia byte por byte de una base de datos en una ubicación diferente. La creación de reflejos es diferente a copiar o hacer una copia de seguridad de una base de datos en que una base de datos reflejada se actualiza al mismo tiempo que la base de datos original (sincrónica) o lo más rápido posible después de que se actualiza la base de datos original (asincrónica). Las imágenes de página del maestro se aplican a los esclavos para implementar la duplicación.

Los 3 propósitos principales de la duplicación

  1. Mantener otra copia de una base de datos para su custodia. La copia de seguridad puede ser una copia en disco de una base de datos maestra en memoria.
  2. Para descargar la lectura de una base de datos a otra computadora.
  3. Estar preparado para cambiar el procesamiento a otra computadora si falla la computadora principal. Esto a menudo se conoce como una base de datos de alta disponibilidad.

La diferencia entre alta disponibilidad y duplicación

Aunque la duplicación se considera a menudo en el contexto de alta disponibilidad (HA), no es lo mismo. HA implica más que duplicación en términos de base de datos, ya que HA incluye la capacidad de detectar y responder a un componente fallido en el sistema, cambiando a un componente en espera (failover). La duplicación es el componente dentro de un sistema HA que mantiene una copia redundante de la base de datos.

Habilidades de duplicación de RDM

En Raima Database Manager (RDM), la duplicación tiene una arquitectura altamente modular y flexible, lo que facilita la conexión de componentes RDM para lograr la duplicación de la base de datos dentro de un solo sistema o en varios sistemas. Todos los componentes de duplicación pueden ser controlados por una aplicación a través de funciones API publicadas.
En su forma más simple, la duplicación RDM consta de los siguientes componentes:

  1. Una base de datos maestra: la aplicación actualiza continuamente esta base de datos.
  2. Una base de datos esclava: esta es una copia de solo lectura del maestro.
  3. A servidor de base de datos controlar el acceso a la base de datos maestra.
  4. Un servidor de base de datos que controla el acceso a la base de datos esclava.
  5. Un agente de duplicación que publica datos modificados de la base de datos maestra.
  6. Un agente de duplicación que se suscribe a los datos del componente #5 y aplica esos datos a su base de datos esclava.

En esta lista, los componentes 1, 3 y 5 pertenecen al sistema maestro, mientras que los componentes 2, 4 y 6 pertenecen al sistema esclavo.
En la práctica, puede haber más componentes por cualquiera de las siguientes razones:

  • Puede haber más de una base de datos esclava para cada maestro.
  • Los servidores de bases de datos y los agentes de duplicación pueden manejar varias bases de datos si es necesario.
  • Los agentes de duplicación pueden conectarse a otros múltiples agentes de duplicación, ya sea como editores o suscriptores.
  • La duplicación puede ser un sistema de varios niveles.

Arquitectura optimizada para el paralelismo

Esta arquitectura permite el paralelismo y hace uso de registros de transacciones que se generan automáticamente como parte del procesamiento de transacciones de RDM, por lo que la duplicación no impone mucha sobrecarga en los requisitos de CPU de RDM.

Duplicación con RDM: síncrona o asincrónica

  • Con la duplicación síncrona, solo se permite una base de datos esclava por maestro. Cuando una aplicación escribe una transacción en la base de datos maestra, la confirmación no se completará en la maestra hasta que se complete en la esclava. Esto significa que el esclavo debe estar conectado al maestro; de lo contrario, las transacciones en la base de datos maestra fallarán. También significa que la duplicación síncrona a través de Internet no es práctica.
  • Con la duplicación asincrónica, se permiten varias bases de datos esclavas para cada maestro. Los esclavos no necesitan estar conectados al maestro en todo momento. Pueden desconectarse y volver a conectarse más tarde, poniéndose al día con las actualizaciones que se han producido en el medio. En esta configuración, las aplicaciones que escriben transacciones en la base de datos maestra no se bloquean esperando a que se complete la transacción esclava.

El estado de los componentes RDM se puede determinar mediante programación mediante una aplicación, de modo que la duplicación RDM se pueda integrar en un sistema HA eficaz. La aplicación proporciona la lógica de control para el sistema HA: la capacidad de determinar que se requiere una conmutación por error y el control general de la conmutación por error y la conmutación por recuperación. Los componentes de duplicación de RDM proporcionan mecanismos para cambiar las funciones del maestro y el esclavo.

RDM se usa a menudo en sistemas embebidos, donde se puede mantener una base de datos reflejada en la memoria o en un sistema de archivos separado de la ubicación de la base de datos maestra. Esta solución requiere relativamente poco hardware adicional.

En algunos sistemas integrados, la duplicación de RDM se puede utilizar como un mecanismo para transferir el contenido de la base de datos a un sistema externo, normalmente un sistema de PC. Aunque sería posible que el software de la PC se conectara directamente al servidor de la base de datos en el sistema integrado, esto podría suponer una carga impredecible para el sistema integrado, mientras que la duplicación tiene muy poco impacto. En esta situación, se podría utilizar la duplicación o la replicación. La elección generalmente depende de si se requiere que la base de datos esclava sea una copia byte por byte de la maestra (duplicación) o simplemente equivalente lógicamente (replicación).