Configuración de la continuidad de aplicaciones en Autonomous Database
Para configurar la continuidad de aplicaciones, debe activar la continuidad de aplicaciones para el servicio de base de datos que utiliza la aplicación y configurar el tipo de failover y el timeout de drenaje. Además, debe definir varios parámetros de cadena de conexión que permitan alta disponibilidad.
- Configuración del servicio para activar la continuidad de aplicaciones
UtiliceDBMS_APP_CONT_ADMIN
para activar la continuidad de aplicaciones o la continuidad de aplicaciones transparente: - Uso de Fast Application Notification (FAN)
Al conectarse a Autonomous Database, la base de datos Oracle configura automáticamente FAN. Para despliegues de aplicaciones con Autonomous Database, los eventos de Fast Application Notifications (FAN) para interrupciones no planificadas se dirigen al gestor de conexiones (CMAN) y no se necesitan pasos de configuración de la aplicación cliente para utilizar FAN. - Configuración de una cadena de conexión para una alta disponibilidad
Para mantener una alta disponibilidad, Oracle recomienda definir determinados parámetros de cadena de conexión al conectarse a Oracle Autonomous Database. - Configuración de opciones de cliente específicas del controlador
En función del cliente y el controlador, debe asegurarse de que el cliente está configurado correctamente para utilizar la continuidad de aplicaciones al conectarse a Autonomous Database
Tema principal: Uso de la continuidad de aplicaciones en Autonomous Database
Configuración del servicio para activar la continuidad de aplicaciones
Utilice DBMS_APP_CONT_ADMIN
para activar la continuidad de aplicaciones o la continuidad de aplicaciones transparente:
-
Continuidad de aplicaciones (CA): defina esta opción de failover mediante el procedimiento
DBMS_APP_CONT_ADMIN.ENABLE_AC
. El procedimientoENABLE_AC
toma tres parámetros:SERVICE NAME
es el nombre del servicio que se va a cambiar,FAILOVER_RESTORE
, definido enLEVEL1
para seleccionar la continuidad de aplicaciones (AC) yREPLAY_INITIATION_TIMEOUT
, es el timeout de reproducción que especifica cuántos segundos después de enviar una solicitud se permite que se reproduzca dicha solicitud.Por ejemplo, como usuario ADMIN, para activar la continuidad de aplicaciones para el servicio
TPURGENT
:execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600);
-
Continuidad de aplicaciones transparente (TAC): defina esta opción de failover mediante el procedimiento
DBMS_APP_CONT_ADMIN.ENABLE_TAC
. El procedimientoENABLE_TAC
toma tres parámetros:SERVICE NAME
es el nombre del servicio que se va a cambiar,FAILOVER_RESTORE
, definido enAUTO
para seleccionar la continuidad de aplicaciones transparente (TAC) yREPLAY_INITIATION_TIMEOUT
es el timeout de reproducción que especifica cuántos segundos después de enviar una solicitud se permite la reproducción de dicha solicitud.Por ejemplo, como usuario ADMIN, para activar la continuidad de aplicaciones transparente para el servicio
TP
con el timeout de reproducción definido en 20 minutos:execute DBMS_APP_CONT_ADMIN.ENABLE_TAC( 'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200);
-
Desactivado: desactive el failover mediante el procedimiento
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER()
.Por ejemplo, como usuario ADMIN, para desactivar el failover para el servicio
TP
:execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com');
Búsqueda del parámetro de nombre de servicio para la continuidad de aplicaciones
Según el tipo de carga de trabajo, utilice un comando similar al siguiente para ejecutar SELECT
desde DBA_SERVICES
en la base de datos e identifique el servicio en el que desea activar la continuidad de aplicaciones:
-
Almacén de datos
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com
-
Transaction Processing or JSON Database
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- ---------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com nvt21_adb1_medium.adb.oraclecloud.com
Observe que FAILOVER_TYPE
para el servicio high
no tiene ningún valor e indica que la continuidad de aplicaciones está desactivada.
Verificar que la continuidad de aplicación está activada para un servicio
Según el tipo de carga de datos, compruebe la salida de la consulta en DBA_SERVICES
para verificar que la continuidad de aplicaciones está activada.
-
Almacén de datos
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com
-
Transaction Processing or JSON Database
SELECT name, failover_type FROM DBA_SERVICES; NAME FAILOVER_TYPE ------------------------------------------------------- -------------- nvt21_adb1_tp.adb.oraclecloud.com nvt21_adb1_tpurgent.adb.oraclecloud.com TRANSACTION nvt21_adb1_low.adb.oraclecloud.com nvt21_adb1_high.adb.oraclecloud.com AUTO nvt21_adb1_medium.adb.oraclecloud.com
El valor FAILOVER_TYPE
para el servicio high
es ahora AUTO
, lo que indica que la continuidad de aplicaciones transparente (TAC) está activada y el valor FAILOVER_TYPE
para el servicio tpurgent
es ahora TRANSACTION
, lo que indica que la continuidad de aplicaciones (AC) está activada.
Uso de FAN (Fast Application Notification)
Al conectarse a Autonomous Database, la base de datos Oracle configura automáticamente FAN. Para despliegues de aplicaciones con Autonomous Database, los eventos de Fast Application Notifications (FAN) para interrupciones no planificadas se dirigen al gestor de conexiones (CMAN) y no se necesitan pasos de configuración de la aplicación cliente para utilizar FAN.
FAN lo gestiona automáticamente el controlador de cliente y Autonomous Database Connection Manager (CMAN):
- Para los eventos de mantenimiento planificados, FAN se envía en banda directamente a los controladores. Para ello, es necesario que las aplicaciones utilicen los pools de Oracle o la CA para los límites de las solicitudes o que utilicen pruebas de conexión.
- Los controladores de cliente de Oracle Database y Oracle usan todas las pruebas de conexión y los límites de solicitud.
Consulte Configuración de cliente para una disponibilidad continua en Autonomous Database para obtener más información.
Configuración de una cadena de conexión para alta disponibilidad
Para mantener una alta disponibilidad, Oracle recomienda definir determinados parámetros de cadena de conexión al conectarse a Oracle Autonomous Database.
Al conectarse a Oracle Autonomous Database, defina los parámetros CONNECT_TIMEOUT
, RETRY_DELAY
, RETRY_COUNT
y TRANSPORT_CONNECT_TIMEOUT
en la cadena de conexión. Las cadenas de conexión incrustadas en el archivo tnsnames.ora
proporcionado por Oracle están preconfiguradas con los valores adecuados para la mayoría de las aplicaciones. En algunos casos, según las necesidades de las aplicaciones, puede que necesite cambiar los valores predefinidos de una cadena de conexión.
Utilice este TNS para todos los clientes de Oracle versión 12.2 o superior:
alias = (DESCRIPTION = (CONNECT_TIMEOUT= 90)(RETRY_COUNT=50) (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=50) (RETRY_DELAY=3) (ADDRESS_LIST = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST=scan-host)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = service-name)))
Notas sobre las cadenas de conexión:
-
Para los clientes JDBC y ODP, el tiempo de espera de conexión del pool se debe configurar para que sea mayor que
CONNECT_TIMEOUT
en la cadena de conexión. -
No utilice la denominación de conexión sencilla en el cliente porque dichas conexiones no tienen capacidades de alta disponibilidad.
Consulte Descarga de credenciales de cliente (carteras) para obtener información sobre el archivo tnsnames.ora
.
Configuración de opciones de cliente específicas del controlador
En función del cliente y el controlador, se debe asegurar de que el cliente está configurado correctamente para utilizar la continuidad de aplicaciones al conectarse a Autonomous Database
- Configuración del controlador JDBC Thin
Muestra detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador JDBC Thin. - Configuración del controlador Oracle Call Interface (OCI)
Muestra detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador de Oracle Call Interface (OCI). - Configuración del controlador de proveedor no gestionado ODP.NET
Muestra los detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador de proveedor no gestionado ODP.NET.
Configuración del controlador JDBC Thin
Muestra detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador JDBC Thin.
Si la aplicación utiliza el controlador JDBC Thin, sigue estas prácticas recomendadas:
-
Uso de la caché de sentencias JDBC para cobertura y rendimiento.
Para obtener la mejor cobertura y rendimiento, utilice la caché de sentencias del controlador JDBC en lugar de una caché de sentencias del servidor de aplicaciones. Esto permite al controlador saber que las sentencias se cierran y la memoria que se va a liberar al final de las solicitudes.
Para utilizar la caché de sentencias JDBC, utilice la propiedad de conexión
oracle.jdbc.implicitStatementCacheSize
(OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE)
. La caché de sentencias es por conexión. El valor del tamaño de la caché coincide con el número deopen_cursors
. Por ejemplo:oracle.jdbc.implicitStatementCacheSize=nnn
dondennn
está normalmente entre 10 y 100 y es igual al número de cursores abiertos que mantiene la aplicación. -
Ajuste del recopilador de elementos no utilizados.
Para muchas aplicaciones, el ajuste por defecto del recopilador de elementos no utilizados es suficiente. Para las aplicaciones que devuelven y mantienen grandes cantidades de datos, puede utilizar valores más altos, como 2 GB o más. Por ejemplo:
java -Xms3072m -Xmx3072m
Se recomienda definir la asignación de memoria para el tamaño inicial de montón de Java (ms) y el tamaño máximo de montón (mx) en el mismo valor. Esto evita el uso de recursos del sistema al aumentar y reducir el montón de la memoria.
-
Al utilizar Universal Connection Pool (UCP), desactivar Fast Connection Failover. Por ejemplo:
PoolDataSource.setFastConnectionFailoverEnabled(false)
Tema principal: Configuración de opciones de cliente específicas del controlador
Configuración del controlador Oracle Call Interface (OCI)
Muestra detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador de Oracle Call Interface (OCI).
Si la aplicación cliente utiliza el controlador de Oracle Call Interface (OCI), siga esta práctica recomendada:
-
Sustituya
OCIStmtPrepare
porOCIStmtPrepare2
.OCIStmtPrepare()
está en desuso desde la versión 12.2. Todas las aplicaciones deben utilizarOCIStmtPrepare2()
. La continuidad de aplicaciones transparente (CAT) y la continuidad de aplicaciones (CA) permitenOCIStmtPrepare
, pero no reproducen esta sentencia.
No configure los servidores ONS en oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Además, para Autonomous Database Sin servidor, no configure la sección <fan>:
<fan>
<!-- only possible values are "trace" or "error" -->
<subscription_failure_action>
</subscription_failure_action>
</fan>
Tema principal: Configuración de opciones de cliente específicas del controlador
Configuración del controlador de proveedor no gestionado de ODP.NET
Muestra los detalles para utilizar la continuidad de aplicaciones con Autonomous Database con un cliente mediante el controlador de proveedor no gestionado ODP.NET.
El controlador de proveedor no gestionado ODP.NET utiliza automáticamente la continuidad de aplicaciones cuando la continuidad de aplicaciones está activada en el servicio de base de datos que utiliza la aplicación para conectarse a Autonomous Database.
Al conectar una aplicación ODP.NET a una aplicación sin servidor de Autonomous Database, no configure los servidores ONS en oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Tema principal: Configuración de opciones de cliente específicas del controlador