Configurare la continuità dell'applicazione su Autonomous AI Database
Per configurare Application Continuity, è necessario abilitare la continuità dell'applicazione per il servizio di database utilizzato dall'applicazione e configurare il tipo di failover e il timeout di rimozione. Inoltre, è necessario impostare diversi parametri della stringa di connessione che abilitano l'alta disponibilità.
- Configura il servizio per abilitare la continuità di applicazione
UtilizzareDBMS_APP_CONT_ADMINper abilitare la continuità di applicazione o la continuità di applicazione trasparente: - Usa FAN (Fast Application Notification)
Quando si esegue la connessione ad Autonomous AI Database, il database Oracle configura automaticamente FAN. Per le distribuzioni di applicazioni con Autonomous AI Database, gli eventi FAN (Fast Application Notification) per indisponibilità non pianificate vengono indirizzati al Connection Manager (CMAN) e nessun passo di configurazione dell'applicazione client necessario per utilizzare FAN. - Configura stringa di connessione per High Availability
Per mantenere l'alta disponibilità, Oracle consiglia di impostare determinati parametri di stringa di connessione quando ci si connette a Oracle Autonomous AI Database. - Configura opzioni client specifiche del driver
A seconda del client e del driver, è necessario assicurarsi che il client sia configurato in modo appropriato per utilizzare la continuità di applicazione quando si esegue la connessione ad Autonomous AI Database
Argomento padre: Utilizzare la continuità di applicazione su Autonomous AI Database
Configurare il servizio per abilitare la continuità dell'applicazione
Utilizzare DBMS_APP_CONT_ADMIN per abilitare la continuità di applicazione o la continuità di applicazione trasparente:
-
Application Continuity (AC): impostare questa opzione di failover utilizzando la procedura
DBMS_APP_CONT_ADMIN.ENABLE_AC. La proceduraENABLE_ACrichiede tre parametri:SERVICE NAMEè il nome del servizio da modificare,FAILOVER_RESTORE, impostato suLEVEL1per selezionare Application Continuity (AC) eREPLAY_INITIATION_TIMEOUTè il timeout di ripetizione che specifica quanti secondi dopo la sottomissione di una richiesta per consentire la ripetizione della richiesta.Ad esempio, come utente ADMIN, per abilitare la continuità di applicazione per il servizio
TPURGENT:execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600); -
Transparent Application Continuity (TAC): impostare questa opzione di failover utilizzando la procedura
DBMS_APP_CONT_ADMIN.ENABLE_TAC. La proceduraENABLE_TACrichiede tre parametri:SERVICE NAMEè il nome del servizio da modificare,FAILOVER_RESTORE, impostato suAUTOper selezionare Transparent Application Continuity (TAC) eREPLAY_INITIATION_TIMEOUTè il timeout di ripetizione che specifica quanti secondi dopo la sottomissione di una richiesta per consentire la ripetizione della richiesta.Ad esempio, come utente ADMIN, per abilitare Transparent Application Continuity per il servizio
TPcon il timeout di ripetizione impostato su 20 minuti:execute DBMS_APP_CONT_ADMIN.ENABLE_TAC( 'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200); -
Disabilitato: disabilitare il failover utilizzando la procedura
DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER().Ad esempio, come utente ADMIN, per disabilitare il failover per il servizio
TP:execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com');
Trova parametro nome servizio per continuità applicazione
A seconda del tipo di carico di lavoro, utilizzare un comando simile a quello riportato di seguito in SELECT da DBA_SERVICES nel database e identificare il servizio in cui si desidera abilitare la continuità di applicazione.
-
Lakehouse
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 -
Elaborazione delle transazioni o Database JSON
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
Si noti che FAILOVER_TYPE per il servizio high non ha alcun valore e indica che la continuità di applicazione è disabilitata.
Verifica che la continuità di applicazione sia abilitata per un servizio
A seconda del tipo di carico di lavoro, controllare l'output della query su DBA_SERVICES per verificare che la continuità di applicazione sia abilitata.
-
Lakehouse
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 -
Elaborazione delle transazioni o Database JSON
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
Il valore FAILOVER_TYPE del servizio high è ora AUTO, per indicare che la Transparent Application Continuity (TAC) è abilitata e il valore FAILOVER_TYPE per il servizio tpurgent è ora TRANSACTION, per indicare che la Application Continuity (AC) è abilitata.
Argomento padre: Configurare la continuità di applicazione su Autonomous AI Database
Usa FAN (Fast Application Notification)
Quando si connette ad Autonomous AI Database, il database Oracle configura automaticamente FAN. Per le distribuzioni di applicazioni con Autonomous AI Database, gli eventi FAN (Fast Application Notification) per indisponibilità non pianificate vengono indirizzati al Connection Manager (CMAN) e nessun passo di configurazione dell'applicazione client necessario per utilizzare FAN.
FAN viene gestito automaticamente dal driver client e da Autonomous AI Database Connection Manager (CMAN):
- Per gli eventi di manutenzione pianificati, FAN viene inviato in banda, direttamente ai driver. Ciò richiede che le applicazioni utilizzino i pool Oracle o il TAC per definire i limiti delle richieste o per utilizzare i test di connessione.
- I driver client Oracle Database e Oracle vengono rimossi dai test di connessione e, se richiesto, dai limiti.
Per ulteriori informazioni, consulta la configurazione client per la disponibilità continua su Autonomous AI Database.
Argomento padre: Configurare la continuità di applicazione su Autonomous AI Database
Configura stringa di connessione per High Availability
Per mantenere l'alta disponibilità, Oracle consiglia di impostare determinati parametri della stringa di connessione quando ci si connette a Oracle Autonomous AI Database.
Impostare i parametri CONNECT_TIMEOUT, RETRY_DELAY, RETRY_COUNT e TRANSPORT_CONNECT_TIMEOUT nella stringa di connessione quando ci si connette a Oracle Autonomous AI Database. Le stringhe di connessione incorporate nel file tnsnames.ora fornito da Oracle sono preconfigurate con i valori appropriati per la maggior parte delle applicazioni. In alcuni casi, a seconda delle esigenze delle applicazioni, potrebbe essere necessario modificare i valori preconfigurati per una stringa di connessione.
Utilizzare questo TNS per tutti i client Oracle versione 12.2 o successiva:
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)))
Utilizzare quanto riportato di seguito per le connessioni JDBC che utilizzano il driver Oracle versione 12.1 o precedente.
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)))
Note per le stringhe di connessione:
-
Per i client JDBC e ODP, il tempo di attesa della connessione al pool deve essere configurato in modo da essere più lungo del valore
CONNECT_TIMEOUTnella stringa di connessione. -
Non utilizzare Easy Connect Naming sul client perché tali connessioni non dispongono di funzionalità ad alta disponibilità.
Per informazioni sul file tnsnames.ora, vedere Download delle credenziali client (wallet).
Argomento padre: Configurare la continuità di applicazione su Autonomous AI Database
Configura opzioni client specifiche del driver
A seconda del client e del driver, è necessario assicurarsi che il client sia configurato correttamente per utilizzare la continuità di applicazione quando ci si connette a Autonomous AI Database
- Configura driver Thin JDBC
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous AI Database con un client utilizzando il driver Thin JDBC. - Configura driver Oracle Call Interface (OCI)
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous AI Database con un client utilizzando il driver Oracle Call Interface (OCI). - Configura driver provider non gestito ODP.NET
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous AI Database con un client utilizzando il driver provider non gestito ODP.NET.
Argomento padre: Configurare la continuità di applicazione su Autonomous AI Database
Configura driver thin JDBC
Mostra i dettagli per utilizzare la continuità dell'applicazione con Autonomous AI Database con un client utilizzando il driver Thin JDBC.
Se l'applicazione utilizza il driver Thin JDBC, attenersi alle procedure consigliate riportate di seguito.
-
Utilizzare la cache delle istruzioni JDBC per copertura e prestazioni.
Per una migliore copertura e prestazioni, utilizzare la cache delle istruzioni del driver JDBC al posto di una cache delle istruzioni di Application Server. Ciò consente al conducente di sapere che le istruzioni sono chiuse e che la memoria deve essere liberata al termine delle richieste.
Per utilizzare la cache delle istruzioni JDBC, utilizzare la proprietà di connessione
oracle.jdbc.implicitStatementCacheSize(OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE). La cache delle istruzioni è per connessione. Il valore della dimensione della cache corrisponde al numero diopen_cursors. Ad esempio:oracle.jdbc.implicitStatementCacheSize=nnn, dovennnè in genere compreso tra 10 e 100 ed è uguale al numero di cursori aperti gestiti dall'applicazione. -
Regola il Garbage Collector.
Per molte applicazioni è sufficiente l'ottimizzazione di Garbage Collector predefinita. Per le applicazioni che restituiscono e mantengono grandi quantità di dati, è possibile utilizzare valori più elevati, ad esempio 2 GB o più grandi. Ad esempio:
java -Xms3072m -Xmx3072m
Si consiglia di impostare l'allocazione di memoria per la dimensione heap Java iniziale (ms) e la dimensione heap massima (mx) sullo stesso valore. Ciò impedisce l'utilizzo delle risorse di sistema durante la crescita e la riduzione dell'heap di memoria.
-
Quando si utilizza Universal Connection Pool (UCP), disabilitare Fast Connection Failover. Ad esempio:
PoolDataSource.setFastConnectionFailoverEnabled(false)
Argomento padre: Configura opzioni client specifiche del driver
Configurare il driver Oracle Call Interface (OCI)
Mostra i dettagli per utilizzare la continuità dell'applicazione con Autonomous AI Database con un client utilizzando il driver Oracle Call Interface (OCI).
Se l'applicazione client utilizza il driver Oracle Call Interface (OCI), seguire questa procedura consigliata:
-
Sostituire
OCIStmtPrepareconOCIStmtPrepare2.OCIStmtPrepare()è obsoleto dalla versione 12.2. Tutte le applicazioni devono utilizzareOCIStmtPrepare2(). La continuità di applicazione trasparente (TAC, Transparent Application Continuity) e la continuità di applicazione (AC, Application Continuity) consentono l'utilizzo diOCIStmtPreparesenza riprodurre questa istruzione.
Non configurare i server ONS in oraaccess.xml:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>Inoltre, per Autonomous AI Database Serverless, non configurare la sezione <fan>:
<fan>
<!-- only possible values are "trace" or "error" -->
<subscription_failure_action>
</subscription_failure_action>
</fan>Argomento padre: Configura opzioni client specifiche del driver
Configura driver provider non gestito ODP.NET
Mostra i dettagli per utilizzare la continuità dell'applicazione con Autonomous AI Database con un client utilizzando il driver provider non gestito ODP.NET.
Il driver ODP.NET Unmanaged Provider utilizza automaticamente la continuità di applicazione quando la continuità di applicazione è abilitata nel servizio di database utilizzato dall'applicazione per connettersi a Autonomous AI Database.
Quando si connette un'applicazione ODP.NET a Autonomous AI Database Serverless, non configurare i server ONS in oraaccess.xml:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>Argomento padre: Configura opzioni client specifiche del driver