Configurare la continuità di applicazione su Autonomous Database
Per configurare la continuità di applicazione, è necessario abilitare la continuità di 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à.
- Configurare 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)
Durante 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 interruzioni non pianificate vengono indirizzati al Connection Manager (CMAN) e non sono necessari passi di configurazione delle applicazioni client per utilizzare FAN. - Configura stringa di connessione per High Availability
Per mantenere l'alta disponibilità, Oracle consiglia di impostare determinati parametri della stringa di connessione quando si esegue la connessione 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 si esegue la connessione ad Autonomous Database
Argomento padre: usa la continuità di applicazione su 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 la continuità di applicazione (AC) eREPLAY_INITIATION_TIMEOUT
, è il timeout di ripetizione che specifica quanti secondi dopo la sottomissione di una richiesta per consentire la ripetizione di tale 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 TAC (Transparent Application Continuity) eREPLAY_INITIATION_TIMEOUT
è il timeout di ripetizione che specifica quanti secondi dopo la sottomissione di una richiesta per consentire la ripetizione di tale richiesta.Ad esempio, come utente ADMIN, per abilitare la continuità di applicazione trasparente 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');
Trovare il parametro del nome del servizio per la continuità di applicazione
A seconda del tipo di carico di lavoro in uso, utilizzare un comando simile al seguente 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
Notare che il valore FAILOVER_TYPE
per il servizio high
non è valido 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 in uso, controllare l'output della query in 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
per il servizio high
è ora AUTO
, a indicare che è abilitata la TAC (Transparent Application Continuity) e che il valore FAILOVER_TYPE
per il servizio tpurgent
è ora TRANSACTION
, a indicare che è abilitata la continuità di applicazione (AC).
Argomento padre: Configura continuità di applicazione in Autonomous Database
Utilizzare FAN (Fast Application Notification)
Quando ci si connette ad Autonomous Database, il database Oracle si configura automaticamente FAN. Per le distribuzioni di applicazioni con Autonomous Database, gli eventi FAN (Fast Application Notification) per interruzioni non pianificate vengono indirizzati al Connection Manager (CMAN) e non sono necessari passi di configurazione delle applicazioni client per utilizzare FAN.
Il FAN viene gestito automaticamente dal driver client e da CMAN (Autonomous Database Connection Manager):
- Per gli eventi di manutenzione pianificati, FAN viene inviato in banda, direttamente ai conducenti. Ciò richiede che le applicazioni utilizzino i pool Oracle o TAC per i limiti delle richieste o per i test di connessione.
- I driver client Oracle Database e Oracle vengono utilizzati per i test di connessione e per i limiti delle richieste.
Per ulteriori informazioni, vedere 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 si esegue la connessione 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 di
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 Scarica 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 in uso, è necessario assicurarsi che il client sia configurato in modo appropriato per utilizzare la continuità di applicazione quando si esegue la connessione ad Autonomous Database.
- Configura driver thin JDBC
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous Database con un client che utilizza 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 ODP.NET Driver provider non gestito
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous Database con un client che utilizza il driver del 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à di 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 ottenere copertura e prestazioni ottimali, utilizzare la cache delle istruzioni del driver JDBC al posto della cache delle istruzioni di Application Server. Ciò consente al conducente di sapere che le istruzioni sono chiuse e che la memoria deve essere liberata alla fine 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. -
Ottimizzare il Garbage Collector.
Per molte applicazioni è sufficiente il tuning Garbage Collector predefinito. Per le applicazioni che restituiscono e conservano 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 della memoria per la dimensione heap Java iniziale (ms) e la dimensione heap massima (mx) sullo stesso valore. Ciò impedisce di utilizzare le risorse di sistema per aumentare e ridurre l'heap di memoria.
-
Quando si utilizza l'Universal Connection Pool (UCP), disabilitare Fast Connection Failover. Ad esempio:
PoolDataSource.setFastConnectionFailoverEnabled(false)
Argomento padre: Configura opzioni client specifiche del driver
Configurare il driver OCI (Oracle Call Interface)
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), attenersi alla procedura consigliata riportata di seguito.
-
Sostituire
OCIStmtPrepare
conOCIStmtPrepare2
.OCIStmtPrepare()
non è più valido dalla versione 12.2. Tutte le applicazioni devono utilizzareOCIStmtPrepare2()
. La continuità di applicazione trasparente (TAC) e la continuità di applicazione (AC) consentonoOCIStmtPrepare
ma non ripetono 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
Configurare il driver del provider non gestito ODP.NET
Mostra i dettagli per utilizzare la continuità di applicazione con Autonomous Database con un client utilizzando il driver del provider non gestito ODP.NET.
Il driver del provider non gestito ODP.NET 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 al serverless di Autonomous Database, 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