Best practice per le connessioni a bassa latenza con Autonomous Database

Le procedure per ridurre la latenza per le connessioni tra un'applicazione e Autonomous Database sono fondamentali se l'applicazione esegue molti roundtrip tra l'applicazione e il database.

Ad esempio, considera un'applicazione OLTP che si connette ad Autonomous Database e invia migliaia di istruzioni SQL al database singolarmente per eseguire un ordine di vendita. In questo caso, l'applicazione richiede migliaia di round-trip e la riduzione della latenza per ogni round-trip può accelerare notevolmente il processo degli ordini di vendita. Per tali applicazioni sono disponibili le procedure ottimali da seguire per ridurre la latenza per le connessioni al database.

Passi per ridurre la latenza per le connessioni al database

È possibile seguire questi suggerimenti per ridurre la latenza per le connessioni tra le applicazioni e il database.

Determinare innanzitutto il dominio di disponibilità del database. Per trovare il dominio di disponibilità di un'istanza di Autonomous Database, connettersi come ADMIN ed eseguire la query seguente:

SELECT json_value(cloud_identity, '$.AVAILABILITY_DOMAIN') AVAILABILITY_DOMAIN FROM v$pdbs;

Ad esempio:

SELECT json_value(cloud_identity, '$.AVAILABILITY_DOMAIN') AVAILABILITY_DOMAIN
             FROM v$pdbs;

AVAILABILITY_DOMAIN  
-------------------- 
SoSC:US-ASHBURN-AD-1

Puoi anche visualizzare le informazioni sul dominio di disponibilità nella console di Oracle Cloud Infrastructure. Per ulteriori informazioni, vedere Visualizza informazioni di rete in OCI Console.

Per ridurre la latenza, effettuare le operazioni riportate di seguito.

  1. Posizionare i client o i server di livello intermedio nello stesso dominio di disponibilità dell'istanza di Autonomous Database.

    Ad esempio, se l'applicazione viene eseguita su una VM di computazione Oracle Cloud Infrastructure, selezionare lo stesso dominio di disponibilità dell'istanza di Autonomous Database quando si crea l'istanza di computazione.

    Se l'applicazione viene eseguita in un altro cloud o in un data center on premise, utilizzare OCI FastConnect per ridurre la latenza per la connessione alla propria area OCI. Per ulteriori informazioni, vedere FastConnect Panoramica.

  2. Configurare il routing di rete.
    • Se si utilizza un'istanza di Autonomous Database in un endpoint pubblico, configurare l'instradamento di rete in modo che la connessione dal client al database venga eseguita tramite un gateway di servizi.

      Per ulteriori informazioni, vedere quanto riportato di seguito.

    • Se si utilizza un'istanza di Autonomous Database in un endpoint privato, è possibile connettersi al database utilizzando l'endpoint privato visibile nella rete, senza dover configurare un gateway di servizi.

  3. Utilizzare connessioni TLS unidirezionali senza un wallet.

    Come best practice per una latenza inferiore, configurare l'istanza di Autonomous Database in modo da consentire sia le connessioni mTLS che TLS e utilizzare le connessioni TLS per connettere l'applicazione al database.

    Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

  4. Utilizzare TCP Fast Open (TFO) per connettersi al database.

Passi per ridurre la latenza per le connessioni al database per i database con Autonomous Data Guard

Fornisce i passi da eseguire per configurare un ambiente di standby, client e livelli medi di Autonomous Data Guard e ridurre la latenza per le connessioni al database quando ci si connette dopo un failover o dopo uno switchover (quando lo standby diventa primario).

Riduci la latenza per le connessioni al database con Autonomous Data Guard locale

Attenersi alla procedura riportata di seguito per ridurre la latenza per le connessioni al database che si effettuano quando si utilizza Autonomous Data Guard e si esegue il failover o lo switchover in un database di standby locale.

Se disponi di un database in standby locale Autonomous Data Guard e ti trovi in un'area geografica con più domini di disponibilità, Autonomous Data Guard crea il database in standby locale in un dominio di disponibilità diverso. Quando si esegue il failover o lo switchover al database in standby, lo standby locale diventa il database primario. Per prepararsi a un failover o a uno switchover, si consiglia di avere client in standby e mid-tiers disponibili per l'abilitazione, in modo che dopo un errore o dopo uno switchover, le applicazioni possano continuare a funzionare in caso di errore del dominio di disponibilità.

In primo luogo, verificare che il tipo di disaster recovery per il peer locale sia Autonomous Data Guard. Per ulteriori informazioni, vedere Abilita Autonomous Data Guard.

Eseguire i task riportati di seguito per configurare i client di standby e i livelli medi per la bassa latenza quando si utilizza Autonomous Data Guard con un standby locale in un'area con più domini di disponibilità.

  1. Posizionare i client di standby o i livelli intermedi nello stesso dominio di disponibilità del database di standby locale (tutti i componenti devono essere configurati per utilizzare lo stesso dominio di disponibilità).

    Ad esempio, se la tua applicazione viene eseguita su una VM di computazione Oracle Cloud Infrastructure, quando crei l'istanza di computazione seleziona lo stesso dominio di disponibilità per la VM di computazione del database di standby. In questo modo, prepara la configurazione di disaster recovery in modo che il database di standby e la VM di computazione di standby utilizzino lo stesso dominio di disponibilità dopo un failover o uno switchover. Ciò ridurrà la latenza per le connessioni al database rispetto a una configurazione in cui i componenti utilizzano domini di disponibilità diversi.

    Per determinare il dominio di disponibilità del database di standby, connettersi al database primario come utente ADMIN ed eseguire la query seguente:

    SELECT availability_domain FROM v$pdbs,
         JSON_TABLE(
           cloud_identity,
           '$.AUTONOMOUS_DATA_GUARD[*]'
           COLUMNS (
             standby_type PATH '$.STANDBY_TYPE',
             availability_domain PATH '$.AVAILABILITY_DOMAIN'
           )
         ) jt
    WHERE jt.standby_type = 'local';

    Ad esempio, questo comando mostra il dominio di disponibilità per un database di standby locale:

    AVAILABILITY_DOMAIN 
    ------------------- 
    SoSC:US-ASHBURN-AD-3
  2. Non è necessario eseguire ulteriori operazioni di configurazione di rete o consentire connessioni TLS unidirezionali per il database di standby locale. Un database di standby locale ha la stessa configurazione di rete di impostazione del database primario.
  3. Configurare i client e i livelli intermedi per l'uso di TCP Fast Open.

Riduci la latenza per le connessioni al database con Autonomous Data Guard tra più aree

Attenersi alla procedura riportata di seguito per ridurre la latenza per le connessioni al database che si effettuano quando si utilizza Autonomous Data Guard e si esegue il failover o lo switchover a un database di standby tra più aree.

Se si aggiungono uno o più database di standby Autonomous Data Guard tra più aree, i database di standby tra più aree vengono aggiunti nelle aree selezionate quando si aggiunge un peer tra più aree. Quando si esegue il failover o lo switchover a un database di standby Autonomous Data Guard tra più aree, il database di standby tra più aree diventa il database primario. Per prepararsi a un failover o switchover regionale, si consiglia di avere client in standby e mid-tiers disponibili nell'area remota. In questo modo si preparano i client e il livello intermedio nell'area remota in modo che, in caso di errore o dopo uno switchover, le applicazioni possano continuare a funzionare.

In primo luogo, verificare che il disaster recovery includa almeno un database di standby Autonomous Data Guard tra più aree. Per ulteriori informazioni, vedere Aggiungere un database di standby tra più aree.

Attenersi alla procedura riportata di seguito per configurare i client e i livelli medi per una bassa latenza quando si utilizza Autonomous Data Guard con uno o più database di standby tra più aree.

  1. Posizionare i client di standby o i livelli intermedi nello stesso dominio di disponibilità dei database di standby tra più aree.

    Per determinare i domini di disponibilità per i database di standby Autonomous Data Guard tra più aree, connettersi al database primario come utente ADMIN ed eseguire la query seguente:

    SELECT availability_domain FROM v$pdbs,
         JSON_TABLE(
           cloud_identity,
           '$.AUTONOMOUS_DATA_GUARD[*]'
           COLUMNS (
             standby_type PATH '$.STANDBY_TYPE',
             availability_domain PATH '$.AVAILABILITY_DOMAIN'
           )
         ) jt
    WHERE jt.standby_type = 'cross-region';

    Ad esempio, quando si dispone di due database di standby tra più aree, l'esecuzione di questo comando mostra i domini di disponibilità per ogni database di standby tra più aree:

    AVAILABILITY_DOMAIN    
    ---------------------- 
    SoSC:PHX-AD-3          
    SoSC:US-SANJOSE-1-AD-1 
    1. Se si dispone di un database di standby tra più aree, la query mostra un singolo dominio di disponibilità. Posizionare i client di standby e i livelli medi nella stessa area e utilizzare lo stesso dominio di disponibilità del database di standby tra più aree.

      Ad esempio, se la tua applicazione viene eseguita su una VM di computazione Oracle Cloud Infrastructure, quando crei l'istanza di computazione seleziona lo stesso dominio di disponibilità per la VM di computazione del database di standby Autonomous Data Guard. Ciò garantisce che il database di standby tra più aree e la VM di computazione in standby si trovino nella stessa area geografica e utilizzino lo stesso dominio di disponibilità dopo un failover o uno switchover.

    2. Se si dispone di più standby tra più aree, in ogni area viene utilizzato il dominio di disponibilità appropriato che corrisponde all'area e al dominio di disponibilità per ogni database di standby corrispondente. Sarà necessario eseguire questa impostazione più volte (tutti i componenti di una singola area devono utilizzare lo stesso dominio di disponibilità del database di standby Autonomous Data Guard).

    Se l'applicazione viene eseguita in un altro cloud o in un data center on premise, utilizzare OCI FastConnect per ridurre la latenza per la connessione alla propria area OCI. Per ulteriori informazioni, vedere FastConnect Panoramica.

  2. Configurare l'instradamento della rete nell'area in cui si trova il database di standby. Eseguire questo passo più volte se si dispone di più database di standby tra più aree.
    1. Se il database di standby si trova in un endpoint pubblico, configurare l'instradamento di rete in modo che la connessione dai client nell'area in cui si trova il database di standby tra più aree avvenga tramite un gateway di servizi.

      Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

    2. Se il database di standby si trova in un endpoint privato, è possibile connettersi al database utilizzando l'endpoint privato visibile nella rete, senza dover configurare un gateway di servizio.
  3. Utilizzare connessioni TLS unidirezionali senza un wallet.

    Se è stato configurato un TLS unidirezionale per il database primario, il TLS in standby verrà già configurato. Non è necessario eseguire alcuna configurazione aggiuntiva sui database di standby tra più aree.

  4. Configurare i client e i livelli intermedi per l'uso di TCP Fast Open.

Diagramma di rete concettuale per connessioni al database a bassa latenza

Mostra il diagramma di rete concettuale per le connessioni a bassa latenza che utilizzano endpoint pubblici ed endpoint privati per il database.

Connessioni a bassa latenza mediante endpoint privato con applicazione in esecuzione all'interno dell'area OCI

Segue la descrizione di adb-private-low-latency.eps
Descrizione dell'immagine adb-private-low-latency.eps

Connessioni a bassa latenza mediante endpoint pubblico con applicazione in esecuzione all'interno dell'area OCI

Segue la descrizione di adb-public-low-latency.eps
Descrizione dell'immagine adb-public-low-latency.eps

Connessioni a bassa latenza mediante un endpoint privato con applicazione in esecuzione nel data center in locale connesso a OCI mediante FastConnect

Segue la descrizione di adb-fastconnect-private-low-latency.eps
Descrizione dell'immagine adb-fastconnect-private-low-latency.eps

Connessioni a bassa latenza mediante un endpoint pubblico con applicazione in esecuzione nel data center in locale connesso a OCI mediante FastConnect

Segue la descrizione di adb-fastconnect-public-low-latency.eps
Descrizione dell'immagine adb-fastconnect-public-low-latency.eps