Configurare la continuità dell'applicazione su Autonomous 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_ADMIN
per abilitare la continuità di applicazione o la continuità di applicazione trasparente: - Usa FAN (Fast Application Notification)
Quando ci si connette ad Autonomous Database, il database Oracle configura automaticamente FAN. Per le distribuzioni di applicazioni con Autonomous Database, gli eventi FAN (Fast Application Notification) per indisponibilità non pianificate vengono indirizzati al Connection Manager (CMAN) e non è necessario alcun passo di configurazione dell'applicazione client 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 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 ad Autonomous Database
Argomento padre: Usa la continuità di applicazione in Autonomous 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_AC
richiede tre parametri:SERVICE NAME
è il nome del servizio da modificare,FAILOVER_RESTORE
, impostato suLEVEL1
per 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_TAC
richiede tre parametri:SERVICE NAME
è il nome del servizio da modificare,FAILOVER_RESTORE
, impostato suAUTO
per 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
TP
con 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.
-
Data warehouse
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.
-
Data warehouse
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: Configura continuità di applicazione in Autonomous Database
Uso di FAN (Fast Application Notification)
Quando si esegue la connessione ad Autonomous Database, il database Oracle configura automaticamente FAN. Per le distribuzioni di applicazioni con Autonomous Database, gli eventi FAN (Fast Application Notification) per indisponibilità non pianificate vengono indirizzati al Connection Manager (CMAN) e non è necessario alcun passo di configurazione dell'applicazione client per utilizzare FAN.
FAN viene gestito automaticamente dal driver client e da Autonomous 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 sezione relativa alla configurazione client per la disponibilità continua su Autonomous Database.
Argomento padre: Configura continuità di applicazione in Autonomous 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 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 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_TIMEOUT
nella 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: Configura continuità di applicazione in Autonomous 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 ad Autonomous Database
- Configura driver Thin JDBC
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous 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 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 Database con un client utilizzando il driver provider non gestito ODP.NET.
Argomento padre: Configura continuità di applicazione in Autonomous Database
Configura driver thin JDBC
Mostra i dettagli per utilizzare la continuità dell'applicazione con Autonomous 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
Configura driver Oracle Call Interface (OCI)
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous 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
OCIStmtPrepare
conOCIStmtPrepare2
.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 diOCIStmtPrepare
senza riprodurre questa istruzione.
Non configurare i server ONS in oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Inoltre, per Autonomous 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à di applicazione con Autonomous 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 ad Autonomous Database.
Quando si connette un'applicazione ODP.NET ad Autonomous 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