Distribuisci database Oracle partizionati scalabili linearmente distribuiti tra Oracle Cloud, Microsoft Azure e Amazon Web Services
Oracle Sharding abilita database convergenti distribuiti a livello globale e di iperscala. Supporta applicazioni che richiedono scalabilità lineare, elasticità, isolamento dei guasti e distribuzione geografica dei dati per la sovranità dei dati. Lo fa distribuendo chunk di un data set in database Oracle indipendenti (partizioni). È possibile distribuire partizioni nel cloud o on-premise senza bisogno di hardware o software specializzati. Le partizioni non comunicano tra loro in fase di esecuzione in questa architettura condivisa, che non consente di distribuire partizioni in un cloud mentre altre partizioni si trovano in un cloud o in locale diverso.
Architettura
L'architettura riportata di seguito mostra una topologia Oracle Database 19c con errori tollerante e partizionato. Le partizioni primarie vengono distribuite nelle aree di Oracle Cloud, Microsoft Azure e Amazon Web Services. Per ogni partizione primaria, viene eseguito il provisioning di una partizione in standby all'interno della stessa area.
L'architettura dispone di risorse ridondanti in ogni layer (shard director, catalogo e partizioni) in ogni provider cloud, per garantire la massima disponibilità del database con partizionamento orizzontale.
Il seguente diagramma illustra questa architettura di riferimento.

Descrizione dell'immagine sharded-db-oci-azure-aws.png
L'architettura ha i seguenti componenti:
- Gateway Internet
Il gateway Internet consente il traffico tra le subnet pubbliche e internet pubblico. Ogni provider cloud è connesso a Internet pubblico.
- Director partizioni
Un shard director (chiamato anche global service manager) è un listener di rete che consente l'instradamento delle connessioni ad alte prestazioni alle partizioni di database appropriate in base alle chiavi di partizionamento orizzontale.
È possibile specificare il numero di directory partizioni richieste. Le directory partizioni vengono distribuite su singole istanze di calcolo in ogni provider cloud. È possibile scegliere la forma delle istanze di calcolo da utilizzare per le directory partizioni.
- Cataloghi partizioni primarie e in standby
Un catalogo partizioni è un'istanza Oracle Database specifica che supporta la distribuzione automatizzata delle partizioni, la gestione centralizzata di un database partizionato e le query multipartizioni.
Questa architettura contiene una coppia primario-standby di database di catalogo, ciascuno in un sistema di database con un solo codice. È possibile scegliere la forma del database e la capacità di memorizzazione disponibile per i database del catalogo. In ogni provider cloud viene distribuita una coppia primaria di database di catalogo.
- Partizioni di database
Ogni partizione di database è un sistema di database con un solo codice. Le partizioni primarie vengono distribuite in Oracle Cloud, Microsoft Azure e Amazon Web Services. Ogni partizione primaria ha una partizione in standby associata.
Suggerimenti
- Dimensione e numero di partizioniDurante la distribuzione dello stack, è possibile specificare la forma del database da utilizzare e il numero di partizioni.
- Scegliere una forma appropriata in base ai requisiti del carico di lavoro. La forma specificata viene utilizzata per tutte le partizioni.
Dopo la distribuzione, è possibile modificare la forma delle singole partizioni per adattarsi alle modifiche del carico di lavoro. La partizione per la quale si modifica la forma viene arrestata e riavviata utilizzando la nuova forma.
- In generale, un gran numero di piccole partizioni fornisce una migliore tolleranza complessiva agli errori rispetto a un piccolo numero di grandi partizioni. Per ridimensionare la topologia o migliorare la tolleranza agli errori, è possibile aggiungere partizioni in qualsiasi momento senza influire sulla disponibilità delle partizioni esistenti. Se necessario, è possibile eseguire lo scale nel database con partizionamento orizzontale; l'ultima partizione creata viene rimossa prima dopo aver spostato i dati nelle altre partizioni.
- Scegliere una forma appropriata in base ai requisiti del carico di lavoro. La forma specificata viene utilizzata per tutte le partizioni.
- Disponibilità delle partizioni
Per garantire l'elevata disponibilità delle partizioni, eseguire il provisioning delle partizioni in standby e utilizzare Oracle Data Guard per la sincronizzazione primare-standby e per il failover.
- Disponibilità catalogo partizioni
Per un'elevata disponibilità del catalogo partizioni, eseguire il provisioning di un catalogo in standby e utilizzare Oracle Data Guard per la sincronizzazione e il failover. Tenere presente che la disponibilità del catalogo partizioni non influisce sulla disponibilità del database con partizionamento orizzontale. Un'interruzione del catalogo partizioni influisce solo sulla capacità di eseguire operazioni di manutenzione o query multipartizioni durante il failover nel catalogo in standby. Le transazioni OLTP continuano ad essere instradate alle partizioni.
- Disponibilità director partizioni
Per un'elevata disponibilità del layer shard director, distribuire più directory partizioni. È possibile distribuire fino a cinque directory partizioni in un'area. Oracle consiglia di distribuire almeno due directory partizioni. In Oracle Cloud, Oracle consiglia di isolare le directory partizioni in domini di disponibilità o domini di errore separati.
- Memoria
Scegliere una capacità di memorizzazione appropriata per il carico di lavoro. Ad esempio, a ogni partizione di database viene allegata una memoria locale o un volume a blocchi di una dimensione specificata.
È possibile scalare la memoria in qualsiasi momento senza influire sulla disponibilità del database in base alla capacità dei provider di storage cloud. Per le partizioni situate in Oracle Cloud, vedere la documentazione di Oracle Cloud Infrastructure Database per ulteriori informazioni sulla memorizzazione in Oracle Cloud.
Considerazioni
- Progettazione applicazione
Qualsiasi applicazione che dispone di una strategia di distribuzione dati ben definita e accede ai dati principalmente utilizzando una chiave di partizionamento orizzontale (ad esempio ID cliente, numero di conto e così via) è adatta per i database con partizionamento orizzontale.
- Scalabilità
Dopo aver distribuito il database con partizionamento orizzontale, è possibile aumentare o diminuire il numero di partizioni modificando lo stack e applicando le modifiche. A seconda del fattore di replica specificato durante la distribuzione dello stack, vengono scalate anche le partizioni in standby.
È possibile scalare anche il numero di amministratori partizioni.
- Sicurezza
Durante la distribuzione del database con partizionamento orizzontale, specificare una chiave pubblica SSH per abilitare connessioni SSH sicure ai database server.
Utilizzare firewall e proxy, a seconda dei casi, in base ai casi d'uso specifici e ai requisiti di sicurezza.
- Isolamento della rete
Per garantire l'isolamento della rete, si consiglia di distribuire il database con partizionamento orizzontale in una subnet privata. Le soluzioni di instradamento e firewall dovranno essere determinate in base alla progettazione e alle esigenze delle applicazioni.
Visualizza altro
Esaminare le architetture di riferimento aggiuntive e i playbook delle soluzioni riportate di seguito.
- Distribuisci database Oracle scalabili in modo lineare, con errori e partizionamento orizzontale su Oracle Cloud Infrastructure
- Informazioni sull'interconnessione di Oracle Cloud con Microsoft Azure
Utilizzo di Oracle Sharding (documentazione Oracle Database 19C)