Código de disponibilidad continua

Las aplicaciones alcanzan una disponibilidad continua cuando se ocultan de la aplicación el mantenimiento planificado, las interrupciones no planificadas y la carga de los desequilibrios. Una combinación de las mejores prácticas de la aplicación, la configuración sencilla y Oracle Autonomous AI Database garantizan que sus aplicaciones estén disponibles en forma continuada.

El mejor enfoque para ocultar las actividades de mantenimiento planificadas de sus aplicaciones es vaciar de forma transparente el trabajo de cada ubicación de carga de trabajo de la base de datos antes que la ventana de mantenimiento de esa ubicación de carga de trabajo. Los pools de conexiones y los niveles intermedios de Oracle, incluidos WebLogic Server, Oracle Universal Connection Pool (UCP), el pool de sesiones de OCI y el proveedor no gestionado de ODP.NET, tienen constancia de Fast Application Notification (FAN) y, por lo tanto, reciben una notificación antes de que se programe que se muevan los servicios de base de datos para permitir el drenaje de trabajo controlado antes del mantenimiento. La notificación FAN dispara automáticamente el cierre de conexiones inactivas, la apertura de nuevas conexiones en la nueva ubicación del servicio y permite un tiempo configurable para que el trabajo activo se complete en la ubicación del servicio que se va a cerrar en breve. Los principales niveles intermedios de JDBC de terceros, como IBM WebSphere, permiten el mismo comportamiento cuando se configuran con UCP. Para aplicaciones basadas en JDBC que no pueden utilizar UCP, Oracle proporciona soluciones con controladores de Oracle y pruebas de conexión.

Para ocultar interrupciones no planificadas resultantes de un fallo de comunicación o componente, Oracle proporciona:

TAC o AC también se ejecuta durante el mantenimiento planificado para las sesiones que no se vacían (completan la operación de base de datos actual) durante el intervalo de vaciado asignado.

Lista de comprobación de configuración de la aplicación

Para que la aplicación esté disponible continuamente, siga estas directrices:

Consejo: consulte la documentación técnica sobre disponibilidad continua para aplicaciones en ATP-Direct para conocer las mejores prácticas para implantar la disponibilidad continua para aplicaciones mediante una base de datos de IA autónoma.

Conexión mediante servicios de base de datos

Los servicios de base de datos proporcionan transparencia para la infraestructura subyacente: FAN, los datos de conexión, la continuidad de aplicaciones transparente (TAC), la continuidad de aplicaciones (AC), el switchover, los grupos de consumidores y muchas otras funciones y operaciones se basan en el uso de los servicios.

Autonomous AI Database on Dedicated Exadata Infrastructure ofrece varios pares de servicios de base de datos predefinidos entre los que elegir, como se describe en Nombres de servicios de base de datos predefinidos para bases de datos de IA autónomas. Todos proporcionan FAN y vaciado, y los dos pares de procesamiento de transacciones tienen activado TAC por defecto. Hay una API disponible para cambiar la configuración de TAC o AC en todos los servicios predefinidos (consulte Activación de atributos de servicio para failover).

Configuración de una cadena de conexión para alta disponibilidad

Oracle recomienda la configuración de cadena de conexión de la siguiente forma al conectarse a Oracle Autonomous AI Database. Las cadenas de conexión embebidas en el archivo tnsnames.ora proporcionado por Oracle se configuran de esta manera. No utilice la nomenclatura de conexión sencilla en el cliente porque dichas conexiones no tienen capacidades de alta disponibilidad.

Utilice este TNS para todos los clientes de Oracle versión 12.2 o superior:

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)
 (ADDRESS_LIST =
   (LOAD_BALANCE=on)
   (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Utilice lo siguiente para conexiones JDBC con la versión 12.1 o anterior del controlador de Oracle

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 15)(RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Uso de FAN (Fast Application Notification)

FAN proporciona inmediatamente una notificación a una aplicación en caso de interrupción o reanudación del servicio. Sin FAN, las aplicaciones pueden bloquearse en el timeout de TCP/IP tras fallos de hardware y red, y omitir el reequilibrio cuando los recursos se reanuden. Todos los pools de Oracle y todos los servidores de aplicaciones de Oracle utilizan FAN. Los servidores de aplicaciones JAVA de terceros pueden utilizar UCP para activar FAN.

No es necesario ningún cambio en la aplicación para utilizar FAN. Estos son solo cambios de configuración.

Para un servicio continuo durante el mantenimiento planificado, utilice FAN con:

Para un servicio continuo durante interrupciones no planificadas, utilice FAN con:

Cobertura de FAN

Los eventos de FAN se integran con:

Para activar FAN en el cliente

Utilice el alias TNS que se muestra en Configuración de una cadena de conexión para alta disponibilidad. Esta cadena de conexión se utiliza para configurar automáticamente la suscripción de Oracle Notification Service (ONS) en el cliente para la recepción de evento de FAN al utilizar un controlador de cliente de Oracle Database 12c o posterior. ONS proporciona una ruta de comunicación segura entre el nivel de base de datos y el nivel de cliente que permite notificar al cliente la disponibilidad del servicio (la parada o el inicio de los componentes), así como un consejo de equilibrio de carga de tiempo de ejecución para una mejor colocación durante el funcionamiento normal.

En función del cliente, active FAN en las propiedades de configuración de la aplicación de la siguiente manera:

Los servicios de base de datos predefinidos ofrecen conexiones TCPS que utilizan autenticación basada en cartera de TLS. Según el tipo de aplicación (JDBC u Oracle Call Interface), la configuración de la cartera debe seguir reglas concretas, como se describe en Configuración de clientes para FAN, incluidas carteras opcionales.

Uso de prácticas recomendadas para permitir el vaciado

Las mejores prácticas para el uso de aplicaciones consisten en desproteger las conexiones durante el tiempo que se necesiten y, a continuación, volver a protegerlas en el pool cuando se complete la acción actual. Esto es importante para lograr un buen rendimiento, para el reequilibrio del trabajo en tiempo de ejecución y durante las ventanas de mantenimiento para el vaciado del trabajo.

Oracle recomienda utilizar un pool de conexiones de Oracle con detección de FAN para ocultar el mantenimiento planificado. No tiene ningún impacto en los usuarios cuando su aplicación utiliza un pool de Oracle con FAN y devuelve las conexiones al pool entre solicitudes. No es necesario realizar ningún cambio en la aplicación para utilizar FAN. Cuando un pool de conexiones de Oracle recibe el evento de FAN para el tiempo de inactividad planificado, marca todas las conexiones de la instancia que se van a vaciar. De inmediato se cierran las conexiones protegidas para que no se vuelvan a utilizar. A medida que se devuelven las conexiones en uso al pool, estas se cierran. Esto permite que todas las conexiones se cierren correctamente a lo largo del tiempo.

Si utiliza un servidor de aplicaciones basado en Java de terceros, el método más eficaz para lograr el vaciado y el failover es sustituir el origen de datos de pool por UCP. Muchos servidores de aplicaciones soportan este enfoque, incluidos Oracle WebLogic Server, IBM WebSphere, IBM Liberty, Apache Tomcat, Red Hat WildFly (JBoss), Spring e Hibernate, entre otros. Los documentos técnicos de Oracle y otros proveedores, como IBM, describen cómo utilizar UCP con estos servidores de aplicaciones. El uso de UCP como origen de datos permite utilizar funciones de UCP, como Fast Connection Failover, el equilibrio de carga de tiempo de ejecución, la continuidad de aplicaciones y la continuidad de aplicaciones transparente con certificación completa.

Activación de la continuidad de aplicaciones transparente (TAC) o la continuidad de aplicaciones (AC)

TAC realiza un seguimiento y registra de forma transparente la sesión y el estado transaccional para que una sesión de base de datos se pueda recuperar tras interrupciones recuperables. Los dos pares de procesamientos de transacciones de servicios de base de datos predefinidos tienen TAC activado por defecto.

AC se puede personalizar, lo que le permite optar por reproducir los efectos secundarios o agregar devoluciones de llamada complejas en el failover que TAC no permite. Utilice AC si usa controladores de Oracle 12c (JDBC-thin u Oracle Call Interface), o desea personalizar con efectos secundarios o devoluciones de llamada, o tiene una aplicación que utiliza un estado, como las tablas temporales de duración de sesión, y no realiza tareas de limpieza entre solicitudes.

Pasos para utilizar la continuidad de aplicaciones transparente

Pasos para el uso de la continuidad de aplicaciones

Contenido relacionado