Déployer des bases de données Oracle distribuées et distribuées à l’échelle linéaire sur Oracle Cloud, Microsoft Azure et Amazon Web Services
Oracle Sharding permet des bases de données convergées, à très grande échelle et distribuées globalement. Elle prend en charge des applications nécessitant une évolutivité linéaire, une élasticité, un isolement des pannes et une répartition géographique des données pour la souveraineté des données. Pour ce faire, il répartit les blocs d'un jeu de données entre des bases de données Oracle indépendantes (shards). Vous pouvez déployer des shards dans le cloud ou sur site sans avoir besoin de matériel ou de logiciel spécialisé. Les shards ne communiquent pas entre eux lors de l'exécution dans cette architecture shared-nothing, qui vous permet de déployer des shards dans un cloud alors que d'autres shards se trouvent dans un cloud ou sur site différent.
Architecture
L'architecture suivante présente une topologie Oracle Database 19c distribuée avec tolérance aux pannes. Les shards principaux sont répartis entre les régions d'Oracle Cloud, de Microsoft Azure et d'Amazon Web Services. Pour chaque shard principal, un shard de secours est provisionné dans la même région.
L'architecture dispose de ressources redondantes dans chaque couche (directeur, catalogue et shards) de chaque fournisseur cloud, afin de garantir une disponibilité maximale de la base de données distribuée.
Le diagramme suivant illustre cette architecture de référence.

Description de l'illustration sharded-db-oci-azure-aws.png
L'architecture comporte les composants suivants :
- passerelle Internet
La passerelle Internet autorise le trafic entre les sous-réseaux publics et le réseau Internet public. Chaque fournisseur de Cloud est connecté au réseau Internet public.
- Directeurs de shards
Un directeur de shard (également appelé gestionnaire de services globaux) est un processus d'écoute réseau qui permet d'acheminer des connexions hautes performances vers les shards de base de données appropriés en fonction des clés de sharding.
Vous pouvez indiquer le nombre de directeurs de shard requis. Les directeurs de shard sont déployés sur des instances de calcul individuelles dans chaque fournisseur de cloud. Vous pouvez choisir la forme des instances de calcul à utiliser pour les directeurs de shard.
- Catalogues de shard principal et de secours
Un catalogue de shard est une instance Oracle Database spéciale qui prend en charge le déploiement automatisé de shard, la gestion centralisée d'une base de données distribuée et les requêtes multishard.
Cette architecture contient une paire de bases de données de catalogue principale-de secours, chacune dans un système de base de données à noeud unique. Vous pouvez choisir la forme de base de données et la capacité de stockage disponible pour les bases de données du catalogue. Une paire de bases de données de catalogue principale-de secours est déployée dans chaque fournisseur de cloud.
- Shards de base de données
Chaque shard de base de données est un système de base de données à noeud unique. Les principaux shards sont distribués sur Oracle Cloud, Microsoft Azure et Amazon Web Services. Chaque shard principal est associé à un shard de secours.
Recommandations
- Taille et nombre de shardsLors du déploiement de la pile, vous pouvez indiquer la forme de base de données à utiliser et le nombre de shards.
- Choisissez une forme appropriée en fonction de vos besoins en charge de travail. La forme que vous spécifiez est utilisée pour tous les shards.
Après le déploiement, vous pouvez modifier la forme des shards individuels pour vous adapter aux changements de charge globale. Le shard pour lequel vous modifiez la forme est arrêté, puis redémarré à l'aide de la nouvelle forme.
- En général, un grand nombre de petites shards offre une meilleure tolérance de panne globale qu'un petit nombre de grandes shards. Pour mettre à l'échelle la topologie ou améliorer la tolérance aux pannes, vous pouvez ajouter des shards à tout moment sans affecter la disponibilité des shards existants. Si nécessaire, vous pouvez redimensionner la base de données distribuée. Le dernier shard créé est supprimé en premier après avoir déplacé les données vers les autres shards.
- Choisissez une forme appropriée en fonction de vos besoins en charge de travail. La forme que vous spécifiez est utilisée pour tous les shards.
- Disponibilité des shards
Pour garantir la haute disponibilité des shards, provisionnez les shards de secours et utilisez Oracle Data Guard pour la synchronisation de la base principale à la base de secours et pour le basculement.
- Disponibilité du catalogue de shards
Pour la haute disponibilité du catalogue de shard, provisionnez un catalogue de secours et utilisez Oracle Data Guard pour la synchronisation et le basculement. Notez que la disponibilité du catalogue de shard n'a aucune incidence sur la disponibilité de la base de données distribuée. Une panne du catalogue de shard affecte uniquement la possibilité d'effectuer des opérations de maintenance ou des requêtes multishard lors du basculement vers le catalogue de secours. Les transactions OLTP continuent d'être acheminées vers les shards.
- Disponibilité du directeur de shards
Pour une haute disponibilité de la couche de directeur de shard, déployez plusieurs directeurs de shard. Vous pouvez déployer jusqu'à cinq directeurs de shard dans une région. Oracle recommande de déployer au moins deux directeurs de shard. Dans Oracle Cloud, Oracle recommande d'isoler les directeurs de shard dans des domaines de disponibilité ou des domaines de pannes distincts.
- Stockage
Choisissez une capacité de stockage adaptée à votre charge de travail. Par exemple, un stockage local ou un volume de blocs d'une taille spécifiée est associé à chaque shard de base de données.
Vous pouvez augmenter le stockage à tout moment sans affecter la disponibilité de la base de données en fonction des fournisseurs de stockage cloud. Pour les shards situés dans Oracle Cloud, reportez-vous à la documentation Oracle Cloud Infrastructure Database pour plus d'informations sur le stockage dans Oracle Cloud.
Remarques
- Conception d'application
Toute application disposant d'une stratégie de distribution de données bien définie et accédant aux données principalement à l'aide d'une clé de sharding (ID client, numéro de compte, etc.) est adaptée aux bases de données distribuées.
- Evolutivité
Après avoir déployé la base de données distribuée, vous pouvez augmenter ou réduire le nombre de shards en modifiant la pile et en appliquant les modifications. Selon le facteur de réplication que vous indiquez lors du déploiement de la pile, les shards de secours sont également mis à l'échelle.
Vous pouvez également augmenter le nombre de directeurs de shard.
- Sécurité
Lors du déploiement de la base de données distribuée, indiquez une clé publique SSH pour activer les connexions SSH sécurisées aux serveurs de base de données.
Utilisez des pare-feu et des proxies, selon vos besoins, en fonction de vos cas d’utilisation et de vos exigences de sécurité.
- Isolation du réseau
Pour garantir l'isolement du réseau, il est recommandé de déployer la base de données distribuée dans un sous-réseau privé. Les solutions de routage et de pare-feu doivent être déterminées en fonction de la conception et des exigences de votre application.
Voir plus
Examinez les architectures de référence et les livres de jeux de solution supplémentaires suivants :
- Déployer des bases de données Oracle distribuées, linéairement évolutives, tolérantes aux pannes sur Oracle Cloud Infrastructure
- En savoir plus sur l’interconnexion d’Oracle Cloud avec Microsoft Azure
Utilisation d'Oracle Sharding (documentation d'Oracle Database 19c)