Best practice per le connessioni a bassa latenza con Autonomous Database

L'adozione di misure per ridurre la latenza per le connessioni tra un'applicazione e Autonomous Database è fondamentale se l'applicazione esegue molti round-trip tra l'applicazione e il database.

Ad esempio, prendi in considerazione 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 ridurre la latenza per ogni round-trip può accelerare notevolmente il processo di ordinazione di vendita. Per tali applicazioni esistono procedure ottimali che è possibile seguire per ridurre la latenza per le connessioni al database.

Passi per ridurre la latenza per le connessioni ai database

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

Prima determinare 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, procedere come indicato 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, utilizza OCI FastConnect per ridurre la latenza per la connessione alla tua area OCI. Per ulteriori informazioni, vedere FastConnect Overview.

  2. Configurare il routing di rete.
    • Se si utilizza un'istanza di Autonomous Database su 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 su un endpoint privato, ci si connette al database utilizzando l'endpoint privato visibile nella rete, senza dover configurare un gateway di servizi.

  3. Utilizzare connessioni TLS unidirezionali senza wallet.

    Come best practice per una latenza inferiore, configura l'istanza di Autonomous Database per consentire sia le connessioni mTLS che TLS e utilizza 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 Autonomous Data Guard, client e livelli intermedi, per ridurre la latenza per le connessioni al database quando ci si connette dopo un failover o dopo uno switchover (quando lo standby diventa il primario).

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

Seguire questi passi per ridurre la latenza per le connessioni al database effettuate quando si utilizza Autonomous Data Guard e si esegue il failover o lo switchover in un database di standby locale.

Se disponi di un standby locale Autonomous Data Guard e ti trovi in un'area con più domini di disponibilità, Autonomous Data Guard crea il database di 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 livelli intermedi 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 intermedi 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 in standby o i livelli intermedi nello stesso dominio di disponibilità del database in standby locale (tutti i componenti devono essere configurati per utilizzare lo stesso dominio di disponibilità).

    Ad esempio, se l'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 si 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 in 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 in standby locale:

    AVAILABILITY_DOMAIN 
    ------------------- 
    SoSC:US-ASHBURN-AD-3
  2. Non è necessario eseguire una configurazione di rete aggiuntiva 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 utilizzare TCP Fast Open.

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

Seguire questi passi per ridurre la latenza per le connessioni al database effettuate quando si utilizza Autonomous Data Guard e si esegue il failover o lo switchover in un database di standby tra più aree.

Se aggiungi 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 aggiungi un peer tra più aree. Quando esegui il failover o lo switchover in un database di standby Autonomous Data Guard tra più aree, lo standby tra più aree diventa il database primario. Per prepararsi a un failover o a uno switchover regionale, si consiglia di disporre di client in standby e di livello intermedio nell'area remota. Questo prepara i client e il livello intermedio nell'area remota in modo che in caso di guasto o dopo uno switchover, le applicazioni possano continuare a funzionare.

Innanzitutto, verifica che il disaster recovery includa almeno uno standby Autonomous Data Guard tra più aree. Per ulteriori informazioni, vedere Aggiungere un database in standby tra più aree.

Seguire questi passi per configurare i client e i livelli intermedi per una bassa latenza quando si utilizza Autonomous Data Guard con uno o più database di standby tra più aree.

  1. Posizionare i client in standby o i livelli intermedi nello stesso dominio di disponibilità dei database in 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 disponi di un database in standby tra più aree, la query mostra un singolo dominio di disponibilità. Posiziona i client di standby e i livelli intermedi nella stessa area e utilizza lo stesso dominio di disponibilità del database di standby tra più aree.

      Ad esempio, se l'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. In questo modo, il database di standby tra più aree e la VM di computazione in standby si trovano nella stessa area e utilizzano lo stesso dominio di disponibilità dopo un failover o uno switchover.

    2. Se hai più di un database in standby tra più aree, in ogni region utilizza il dominio di disponibilità appropriato che corrisponde all'area e al dominio di disponibilità per ogni database in standby corrispondente. Dovrai 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, utilizza OCI FastConnect per ridurre la latenza per la connessione alla tua area OCI. Per ulteriori informazioni, vedere FastConnect Overview.

  2. Configurare l'instradamento di rete nell'area in cui risiede il database in 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 su 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 passi attraverso un gateway di servizi.

      Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

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

    Se è stato configurato TLS unidirezionale per il database primario, nei database di standby verrà già configurato TLS on-way. Non è necessario eseguire alcuna configurazione aggiuntiva nei database di standby tra più aree.

  4. Configurare i client e i livelli intermedi per utilizzare TCP Fast Open.

Diagramma di rete concettuale per le connessioni al database a bassa latenza

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

Connessioni a bassa latenza che utilizzano endpoint privati con applicazioni in esecuzione all'interno dell'area OCI

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

Connessioni a bassa latenza che utilizzano endpoint pubblici con applicazioni in esecuzione all'interno dell'area OCI

Segue la descrizione dell'immagine adb-public-low-latency.eps
Descrizione dell'illustrazione 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 dell'immagine adb-fastconnect-private-low-latency.eps
Descrizione dell'illustrazione 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 dell'immagine adb-fastconnect-public-low-latency.eps
Descrizione dell'illustrazione adb-fastconnect-public-low-latency.eps