Maison > Article > base de données > Explication détaillée des compétences Oracle Classic RAC
Cet article vous apporte des connaissances pertinentes sur Oracle, qui présente principalement les problèmes liés à RAC. Oracle Real Application Cluster est utilisé pour réaliser une base de données partagée multi-machines dans un environnement de cluster afin de garantir une haute disponibilité des applications.
Tutoriel recommandé : "Tutoriel Oracle"
Pour faire face à l'augmentation du volume d'affaires, il existe généralement deux directions générales. L'une est l'expansion verticale, c'est-à-dire l'augmentation de la puissance de calcul du processeur, de la capacité de mémoire et de la capacité de mémoire. d'un seul serveur. Capacité de charge du disque, etc. ; l'autre est l'expansion horizontale, qui consiste à augmenter la puissance de traitement en augmentant le nombre de serveurs. Le premier présente de nombreux problèmes tels que l'interruption des activités et les limites d'expansion. En particulier, avec le développement rapide des services Internet, un seul serveur peut difficilement répondre aux exigences de charge de l'entreprise. Par conséquent, l'expansion horizontale est actuellement la méthode la plus populaire.
Oracle Real Application Cluster (RAC, cluster d'applications en temps réel) est utilisé pour réaliser une base de données partagée multi-machines dans un environnement de cluster afin de garantir la haute disponibilité des applications en même temps, il peut réaliser automatiquement un traitement et un chargement parallèles ; équilibrage, et peut réaliser l'échec de la base de données en cas de tolérance aux pannes et de récupération sans point d'arrêt. Il s'agit de la technologie de base de la base de données Oracle pour prendre en charge l'environnement informatique en réseau.
Dans cette architecture, plusieurs nœuds du cluster exécutent la même instance de base de données, les données sont complètement cohérentes et les données obtenues sont les mêmes quel que soit le nœud à partir duquel l'utilisateur accède. La figure ci-dessous est un diagramme schématique d'Oracle RAC. Un cluster est formé de 3 nœuds et ils partagent des données.
Les caractéristiques du RAC peuvent être résumées comme suit :
Comme indiqué ci-dessous, la principale différence est que RAC est une base de données en cluster et est gérée via un logiciel de cluster.
Afin de garantir la disponibilité de l'ensemble du cluster, Oracle RAC a de nombreuses exigences matérielles lors du déploiement. Au niveau du réseau, Oracle RAC dispose au total de trois systèmes réseau, à savoir le réseau d'accès externe, le réseau privé interne et le réseau de stockage.
L'accès externe au réseau va de soi, je crois que tout le monde le comprend. Le réseau privé interne est principalement utilisé pour l'usage interne du cluster Oracle, notamment la transmission de données, le battement de cœur et la gestion du cluster. Cette partie du réseau nécessite deux commutateurs et deux liaisons physiques pendant le déploiement pour garantir que les anomalies du cluster ne seront pas causées par des défaillances de liaison. Derrière se trouve le réseau de stockage, qui est utilisé par le cluster RAC pour accéder aux ressources de stockage. Cette partie est également redondante.
Un autre exemple est l'image ci-dessous, qui est un système RAC à deux nœuds. On peut voir que la redondance est mise en œuvre de l'hôte au commutateur. Quel que soit le périphérique en panne, l'entreprise ne sera pas affectée. Le stockage partagé est livré avec une redondance RAID.
Parmi eux, les hôtes sont appelés nœuds. Ils doivent avoir les mêmes CPU, mémoire et autres configurations. Chacun doit avoir au moins deux cartes réseau pour accéder aux réseaux internes et externes, et des cartes HBA pour se connecter au stockage partagé. mais la plupart d'entre eux sont connectés via des commutateurs FC à la matrice de stockage FC. Le stockage partagé est au cœur de l'architecture RAC. La plupart des fichiers se trouvent dans un stockage partagé et de nombreuses fonctions sont développées pour la sécurité du stockage partagé. Généralement, la fibre optique est connectée via l'interface FC et exécute le protocole SCSI.
Comme indiqué ci-dessous, il s'agit d'un système RAC à deux nœuds. Oracle RDBMS est le logiciel de base de données et Oracle Clusterware est le logiciel de cluster. Les pilotes sont principalement des cartes réseau, des cartes HBA, ASMLib, etc.
Chaque nœud doit avoir le même système d'exploitation et la version doit être cohérente, y compris les numéros de correctifs, etc. Par exemple, système d'exploitation : RHEL AS 4.8 64 bits, version du noyau Linux : 2.6.9-89.EL.
Afin de mieux comprendre Oracle RAC, examinons la composition de ses modules logiciels internes. Il n'y a pas beaucoup de différences au niveau de l'ensemble de la base de données. Les principaux ajouts sont les suivants : IP virtuelle (VIP), ASM, Clusterware et disque quorum. Ces nouveaux composants fonctionnent ensemble pour compléter la fonction de cluster multi-actif d'Oracle.
L'IP virtuelle est l'entrée permettant aux applications d'accéder à la base de données. Cette IP n'est liée à aucun serveur, mais peut dériver entre n'importe quel serveur du cluster. Grâce à cette fonctionnalité, lorsqu'une panne de serveur se produit, le cluster de bases de données peut garantir que les services sont fournis au monde extérieur via la même interface.
ASM et Clusterware implémentent des fonctions de gestion de cluster. ASM gère les disques pour éviter le risque d'incohérence des données provoqué par un accès simultané aux disques, tandis que Clusterware est utilisé pour gérer les processus logiciels et la planification des ressources des clusters Oracle.
Le disque quorum est utilisé pour déterminer l'anomalie des serveurs du cluster. Les nœuds du cluster marquent leur propre état de santé en mettant régulièrement à jour les données dans des zones spécifiques du disque quorum. D'autres nœuds peuvent déterminer si le nœud est en panne sur la base de ces données.
La figure suivante montre la structure logique d'Oracle RAC, et chaque composant à l'intérieur sera présenté tour à tour.
Chaque nœud a des droits égaux pour accéder aux données de stockage partagées. Oracle RAC utilise Distribute Lock Management (DLM) pour contrôler l'accès simultané entre plusieurs nœuds. Le gestionnaire de verrous distribués est chargé de coordonner la concurrence pour les ressources partagées entre les nœuds. Lorsqu'un nœud accède aux données, il doit d'abord s'appliquer via DLM et confirmer qu'il n'entrera pas en conflit avec d'autres nœuds avant de pouvoir être utilisé.
Amnesia : Si chaque nœud possède une copie des informations de configuration du cluster, alors une erreur se produira s'il n'y a pas de synchronisation après la modification de la configuration.
Ainsi, le cluster ne peut avoir qu'une seule information de configuration, partagée par tous les nœuds. Oracle RAC utilise des fichiers OCR Disk pour résoudre l'amnésie.
Le disque OCR ne peut être modifié que par le nœud maître. Chaque nœud a une copie dans la mémoire cache OCR. Lorsqu'un nœud souhaite modifier le disque OCR, il demande au nœud maître et le processus OCR sur ce nœud met à jour le contenu du cache OCR local et des autres nœuds. Le disque OCR est sauvegardé régulièrement toutes les quelques heures.
Split Brain : les nœuds du cluster utilisent la détection du rythme cardiaque pour savoir si l'autre partie est bonne. S'il y a un problème avec le rythme cardiaque, les deux nœuds penseront que l'autre partie a fait une erreur. , et ils demanderont l’utilisation exclusive des données. De cette façon, cela détruira la cohérence des données.
Le disque de vote est utilisé pour enregistrer le statut des membres entre les nœuds Lorsqu'un cerveau divisé se produit, celui avec le plus grand nombre de votes sera sélectionné pour prendre le contrôle et les autres nœuds seront expulsés.
Isolement IO : le nœud expulsé ne peut plus accéder aux données, une isolation IO est donc requise. Le mécanisme d'Oracle RAC consiste à redémarrer le nœud défaillant.
Les fichiers de base de données sont partagés et Cache Fusion Lock résout le partage de stockage et le contrôle d'accès simultané en dehors du niveau du cluster.
1.Réseau public : utilisez l'IP publique pour fournir des requêtes de données externes, la maintenance de la base de données et la maintenance du serveur.
2.Réseau virtuel : utilisez une adresse IP virtuelle pour fournir une connexion à l'application, et l'application utilise cette adresse IP.
Dans le protocole TCP/IP, l'en-tête TCP contient les ports source et de destination, l'en-tête IP contient les adresses IP source et de destination, et le moniteur de base de données de la couche application enregistre l'adresse IP et le port. Lorsque le délai TCP expire, il est connu. qu'il y a un problème avec la base de données ou le moniteur. Le délai d'expiration de la pile de protocole TCP/IP est déterminé par le système d'exploitation et chaque système d'exploitation a des définitions différentes. Pour réduire le délai de détection des erreurs, Oracle RAC utilise VIP. L'adresse IP virtuelle est flottante et n'est pas liée à la carte réseau physique. Si un nœud tombe en panne, le VIP sera déplacé vers un bon nœud. Cependant, le VIP ne peut pas être trouvé dans la surveillance du bon nœud. L'application détectera immédiatement le problème. et passez à D'autres VIP envoient des demandes de connexion.
3.Réseau privé : utilisez une adresse IP privée pour la détection du rythme cardiaque du RAC et le verrouillage de fusion du cache, qui nécessite une vitesse élevée.
4. Réseau de stockage : composé de périphériques de stockage, de cartes HBA et de réseaux FC.
Sur une seule machine, seul le système d'exploitation peut gérer les requêtes de couche supérieure, mais lorsqu'il y a plusieurs machines, le logiciel de gestion de cluster Oracle Clusterware interceptera les requêtes des autres nœuds avant le noyau du système d'exploitation et communiquera avec le Clusterware de d'autres nœuds pour compléter les demandes.
La couche application est constituée de plusieurs ressources CRS. Chaque ressource est un service complet composé de plusieurs processus. LMON (Lock Monitor) surveille les ressources CRS, redémarre et commute en cas d'anomalie pour garantir la haute disponibilité du service Oracle RAC.
Cache Fusion peut être compris littéralement : la fusion de cache gère en fait le cache de chaque nœud de manière unifiée, évitant ainsi d'avoir à faire fonctionner le disque pour chaque lecture et accélérant les performances d'E/S. Le réseau privé étant très rapide, il est plus rapide que la lecture du disque. Il est temps de lire des blocs de données provenant de différents emplacements :
Cache Fusion est géré via GCS (Global Cache Service), qui traite votre Cache comme un grand Cache. "Processus de lecture du cache" supérieur.
Est-ce une sélection aléatoire parmi plusieurs machines ? NON! C'est trop bas. RAC attribuera dynamiquement les tâches en fonction de l'état de chaque machine. Lorsque la base de données est en cours d'exécution, les informations de charge du nœud de processus en arrière-plan PMON sont enregistrées dans l'écouteur et mises à jour toutes les 1 à 10 minutes. L'écouteur de chaque nœud connaît l'état de charge de tous les nœuds et envoie les requêtes client au nœud le plus occupé.
Allocation par serviceL'allocation par utilisateur présente l'inconvénient de rendre Cache Fusion plus occupé. Étant donné que les données des nœuds RAC sont partagées, tout le monde synchronise les données via Cache Fusion. Les performances de RAC sont largement limitées par celles de Cache Fusion. Soit rendre le réseau privé plus puissant, par exemple en utilisant InfiniBand coûteux, soit réduire le trafic de Cache Fusion, ce qui réduit réellement la dépendance entre les instances de nœuds. Le mécanisme d'allocation selon les utilisateurs n'est pas propice aux solutions ultérieures.Ainsi, RAC prend en charge l'attribution de nœuds en fonction des services. Par exemple, différents nœuds sont utilisés pour la production et les ventes. Vos propres données se trouvent dans votre propre cache, vous n'avez donc pas besoin d'accéder à d'autres nœuds. Les performances sont améliorées.
Cluster d'équilibrage de charge : alloue les requêtes à différents membres selon un certain algorithme ;
Cluster haute fiabilité (HAC : High Available Cluster, Failover Cluster) : très bonne fiabilité, forte tolérance aux pannes du matériel et des logiciels, les clusters de bases de données à usage quotidien entrent dans cette catégorie .
Cluster haute fiabilitéLe patron et le deuxième frère ouvrent un magasin ensemble Habituellement, le patron vend principalement des petits pains cuits à la vapeur, et le deuxième frère vend principalement du lait de soja. , le deuxième frère revend des petits pains cuits à la vapeur, puis revend des petits pains cuits à la vapeur et du lait de soja, le deuxième enfant n'est plus bon, alors le patron vend des petits pains cuits à la vapeur et du lait de soja.
Baozi Soy Milk est constitué de données. Prendre soin les uns des autres s'appelle la détection du rythme cardiaque, et prendre en charge le travail de chacun s'appelle le basculement. Si deux frères deviennent soudainement aveugles et sourds, et qu'ils ne savent pas si l'autre travaille maintenant, et que tous deux pensent qu'ils doivent reprendre le travail de l'autre, cela s'appelle un cerveau divisé, et alors un tiers, comme leur père , est nécessaire pour résoudre le problème. C'est ce qu'on appelle voter, ou demander à leurs deux femmes de venir emmener l'une d'elles. C'est ce qu'on appelle l'isolement IO. Oracle RAC fait partie de cette catégorie, avec les meilleures performances et le système le plus complexe.
Tutoriel recommandé : "Tutoriel Oracle Learning
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!