Despliegue bases de datos Oracle escalables, tolerantes a fallos y con particiones horizontales en Oracle Cloud Infrastructure

Cuando necesite una base de datos que admita ampliaciones verticales extremas con un aislamiento completo de datos para sus aplicaciones OLTP a escala empresarial, despliegue instancias shcard de Oracle Database en una topología con tolerancia a fallos en Oracle Cloud Infrastructure.

La fragmentación es una arquitectura de capa de datos en la que los datos se particionan horizontalmente en bases de datos independientes, denominadas shards, cada una de las cuales se ejecuta en un servidor independiente con sus propios recursos de CPU, memoria y disco. Este enfoque shared-nothing elimina puntos de fallo únicos en la capa de infraestructura. Se presenta un pool de particiones horizontales al nivel de aplicación como una única base de datos lógica, denominada base de datos con particiones horizontales. Las aplicaciones que tienen una estrategia de distribución de datos bien definida y acceden a los datos principalmente mediante el uso de una clave de fragmentación pueden aprovechar un nivel de datos con particiones horizontales.

Arquitectura

Las siguientes arquitecturas muestran topologías de Oracle Database 19c con tolerancia a fallos y con particiones horizontales en Oracle Cloud Infrastructure, desplegadas mediante la pila de Oracle Database Sharding proporcionada en Oracle Cloud Marketplace.

Las arquitecturas tienen recursos redundantes en cada capa (director estándar, catálogo y particiones horizontales), para garantizar la máxima disponibilidad de la base de datos con particiones horizontales.

Despliegue en varios dominios de disponibilidad

Esta arquitectura muestra una base de datos con particiones horizontales distribuida en dos dominios de disponibilidad en una región de Oracle Cloud Infrastructure.A continuación, se muestra la descripción de shards-single-region.png
Descripción de la ilustración shards-single-region.png

Implementación en un único dominio de disponibilidad

Esta arquitectura muestra una base de datos con particiones horizontales distribuida entre los dominios de errores dentro de un único dominio de disponibilidad en una región de Oracle Cloud Infrastructure.A continuación, se muestra la descripción de shards-single-ad.png
Descripción de la ilustración shards-single-ad.png

Las arquitecturas incluyen los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y las grandes distancias pueden separarlas (entre países e incluso continentes).

    Todos los recursos de esta arquitectura se despliegan en un compartimento que especifique y en una única región de Oracle Cloud Infrastructure.

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como alimentación o refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es improbable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • Dominios de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de errores con alimentación y hardware independientes. Cuando distribuye recursos en varios dominios de errores, las aplicaciones pueden tolerar fallos del servidor físico, mantenimiento del sistema y fallos de alimentación dentro de un dominio de errores.

    Los recursos de esta arquitectura se distribuyen uniformemente entre los dominios de errores de cada dominio de disponibilidad.

  • Red virtual en la nube (VCN) y subred

    Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes del centro de datos tradicionales, las VCN le proporcionan un control total de su entorno de red. Una VCN puede tener varios bloques CIDR no solapados que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, que se pueden acotar a una región o a un dominio de disponibilidad. Cada subred consta de un rango de direcciones contiguas que no se solapan con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

    Los recursos informáticos y de base de datos de esta arquitectura están asociados a una única subred pública regional. Puede especificar la VCN y la subred que se van a utilizar. Si desea crear una nueva VCN y subred, puede especificar el bloque de direcciones CIDR para la VCN y la subred.

  • Gateway de internet

    El gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.

  • Lista de seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

    Esta arquitectura incluye una lista de seguridad para controlar el tráfico hacia y desde los directores de particiones horizontales.

  • Tabla de ruta

    Las tablas de rutas virtuales contienen reglas para enrutar el tráfico desde subredes a destinos fuera de una VCN, normalmente a través de gateways.

    Esta arquitectura incluye una tabla de rutas para dirigir el tráfico desde la subred al gateway de Internet.

  • Directores de Particiones Shard

    Un director de particiones horizontales (también denominado gestor de servicios global) es un listener de red que permite el enrutamiento de conexión de alto rendimiento a los fragmentos de base de datos adecuados según las claves de partición horizontal.

    Puede especificar el número de directores de particiones horizontales necesarios. Los directores de particiones horizontales se despliegan en instancias informáticas individuales, que se distribuyen en todos los dominios de disponibilidad de la región y en los dominios de errores de cada dominio de disponibilidad. Puede elegir la forma de las instancias informáticas que se utilizarán para los directores de particiones horizontales.

  • Catálogos de particiones horizontales principales y en espera

    Un catálogo de particiones horizontales es una instancia especial de Oracle Database que admite el despliegue automatizado de particiones horizontales, la gestión centralizada de una base de datos con particiones horizontales y consultas multidetín.

    Esta arquitectura contiene un par de bases de datos de catálogo principales en espera, cada una de las cuales es un sistema de base de datos de máquina virtual de Oracle Cloud Infrastructure de un solo nodo. Puede elegir la unidad de base de datos y la capacidad de almacenamiento disponible para las bases de datos del catálogo.

  • Fragmentos de base de datos

    Cada partición horizontal de la base de datos es un sistema de base de datos de máquina virtual de Oracle Cloud Infrastructure de nodo único. Puede especificar el número de particiones horizontales principales, la unidad de base de datos que se va a utilizar y la capacidad de almacenamiento disponible. Los particiones horizontales se distribuyen de manera uniforme en todos los dominios de disponibilidad de la región y en los dominios de errores de cada dominio de disponibilidad.

    Al desplegar la arquitectura, puede optar por aprovisionar una partición horizontal en espera para cada partición horizontal principal.
    • Si su región contiene varios dominios de disponibilidad, cada partición horizontal de un par principal/en espera se coloca en un dominio de disponibilidad independiente.
    • Si la región contiene solo un dominio de disponibilidad, los fragmentos principal y en espera se aíslan en dominios de errores independientes.

Recomendaciones

Los requisitos pueden ser diferentes de la arquitectura que se describe aquí. Utilice las siguientes recomendaciones como punto de partida.

  • Tamaño y número de fragmentos
    Al desplegar la pila, puede especificar la unidad de base de datos que se va a utilizar y el número de particiones horizontales.
    • Elija una unidad adecuada según sus requisitos de carga de trabajo. La unidad que especifique se utiliza para todas las particiones horizontales.

      Después del despliegue, puede cambiar la unidad de las particiones horizontales individuales para adaptarse a los cambios en la carga de trabajo. La partición horizontal para la que cambia la unidad se detiene y, a continuación, se reinicia con la nueva unidad.

    • En general, un gran número de particiones horizontales pequeñas proporciona una mejor tolerancia general a los fallos que un pequeño número de particiones horizontales grandes. Para ampliar la topología o mejorar la tolerancia a fallos, puede agregar particiones horizontales en cualquier momento sin afectar la disponibilidad de las particiones horizontales existentes. Cuando es necesario, puede escalar la base de datos con particiones horizontales; la última partición horizontal creada se elimina primero después de mover los datos a las otras particiones horizontales.
  • Disponibilidad de partición horizontal

    Para garantizar una alta disponibilidad de las particiones horizontales, aprovisione las particiones en espera y utilice Oracle Data Guard para la sincronización de la base de datos primaria a la en espera y para el failover.

  • Disponibilidad de catálogo de particiones horizontales

    Para una alta disponibilidad del catálogo de particiones horizontales, aprovisione un catálogo en espera y utilice Oracle Data Guard para la sincronización y el failover. Tenga en cuenta que la disponibilidad del catálogo de particiones horizontales no afecta a la disponibilidad de la base de datos con particiones horizontales. Una interrupción del catálogo de particiones horizontales sólo afecta a la capacidad de realizar operaciones de mantenimiento o consultas multidetín mientras realiza una conmutación por error al catálogo en espera. Las transacciones OLTP se siguen enrutando a las particiones horizontales.

  • Disponibilidad del director de particiones horizontales

    Para una alta disponibilidad de la capa de director de particiones horizontales, despliegue varios directores de particiones horizontales. Puede desplegar hasta cinco directores de particiones horizontales en una región. Oracle recomienda desplegar al menos dos directores de particiones horizontales, aislados en dominios de disponibilidad independientes o dominios de errores.

  • Almacenamiento

    La versión actual de la pila de Oracle Cloud Marketplace aprovisiona los fragmentos de base de datos y la base de datos del catálogo con almacenamiento basado en Logical Volume Manager (LVM). Puede especificar la capacidad de almacenamiento disponible, desde 256 GB hasta 40 TB. Seleccione una capacidad de almacenamiento adecuada para la carga de trabajo. Se asocia un volumen en bloque del tamaño especificado a cada partición horizontal de la base de datos.

    Puede ampliar el almacenamiento en cualquier momento sin afectar a la disponibilidad de la base de datos. Tenga en cuenta que el almacenamiento total utilizado es superior al almacenamiento disponible. Consulte la documentación de Oracle Cloud Infrastructure Database para obtener más información.

  • Diseño de Red

    Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

    Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desee configurar conexiones privadas.

Consideraciones

  • Diseño de aplicaciones

    Cualquier aplicación que tenga una estrategia de distribución de datos bien definida y que acceda a los datos principalmente mediante una clave de fragmentación (como ID de cliente, número de cuenta, etc.) es adecuada para bases de datos con particiones horizontales.

  • Escalabilidad

    Después de desplegar la base de datos con particiones horizontales, puede aumentar o reducir el número de particiones horizontales mediante la edición de la pila y la aplicación de los cambios. Según el factor de replicación que especifique al desplegar la pila, también se escalan los particiones horizontales en espera.

    También puede escalar el número de directores de particiones horizontales.

  • Seguridad

    Al desplegar la base de datos con particiones horizontales, especifique una clave SSH pública para activar conexiones SSH seguras a los servidores de base de datos.

  • Aislamiento de red

    Para garantizar el aislamiento de la red, despliegue la base de datos con particiones horizontales en una subred privada. Para el acceso administrativo a los servidores de base de datos, puede aprovisionar un bastion host en una subred pública.

Desplegar

Una pila basada en Terraform para desplegar esta arquitectura de referencia está disponible en Oracle Cloud Marketplace.

  1. Vaya a Oracle Cloud Marketplace.
  2. Haga clic en Obtener aplicación.
  3. Siga las indicaciones de la pantalla.

Explorar más

Uso de Oracle Sharding (documentación de Oracle Database 19c)