Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle, das hauptsächlich RAC-bezogene Probleme vorstellt. Oracle Real Application Cluster wird verwendet, um eine gemeinsame Datenbank mit mehreren Computern in einer Clusterumgebung zu realisieren, um eine hohe Verfügbarkeit von Anwendungen sicherzustellen.
Empfohlenes Tutorial: „Oracle Tutorial“
Um dem steigenden Geschäftsvolumen gerecht zu werden, gibt es normalerweise zwei allgemeine Richtungen, nämlich die Erhöhung der CPU-Rechenleistung, der Speicherkapazität und der Speicherkapazität eines einzelnen Servers usw.; die andere ist die horizontale Erweiterung, die darin besteht, die Verarbeitungsleistung durch Erhöhung der Anzahl der Server zu erhöhen. Ersteres weist viele Probleme wie Betriebsunterbrechungen und Erweiterungsbeschränkungen auf. Insbesondere bei der schnellen Entwicklung von Internetdiensten kann ein einzelner Server die Anforderungen an die Geschäftslast kaum erfüllen. Daher ist die horizontale Erweiterung derzeit die beliebteste Methode.
Oracle Real Application Cluster (RAC, Echtzeit-Anwendungscluster) wird verwendet, um eine gemeinsam genutzte Datenbank mit mehreren Maschinen in einer Clusterumgebung zu realisieren, um gleichzeitig die hohe Verfügbarkeit von Anwendungen sicherzustellen und gleichzeitig parallele Verarbeitung und Last zu realisieren Ausgleich und kann den Datenbankausfall bei Fehlertoleranz und haltepunktfreier Wiederherstellung realisieren. Es handelt sich um die Kerntechnologie der Oracle-Datenbank zur Unterstützung der Netzwerk-Computing-Umgebung.
In dieser Architektur führen mehrere Knoten im Cluster dieselbe Datenbankinstanz aus, die Daten sind vollständig konsistent und die erhaltenen Daten sind dieselben, unabhängig davon, von welchem Knoten aus der Benutzer zugreift. Die folgende Abbildung ist ein schematisches Diagramm von Oracle RAC. Ein Cluster besteht aus drei Knoten, die Daten gemeinsam nutzen.
Die Eigenschaften von RAC können wie folgt zusammengefasst werden:
Der Unterschied zwischen Oracle RAC und einem einzelnen Datenbankserver
Wie unten gezeigt, besteht der Hauptunterschied darin, dass RAC eine Cluster-Datenbank ist und über Cluster-Software verwaltet wird.
Oracle RAC-Hardwarearchitektur
Um die Verfügbarkeit des gesamten Clusters sicherzustellen, stellt Oracle RAC während der Bereitstellung viele Anforderungen an die Hardware. Auf Netzwerkebene verfügt Oracle RAC über insgesamt drei Netzwerksysteme, nämlich das externe Zugangsnetzwerk, das interne private Netzwerk und das Speichernetzwerk.
Ein weiteres Beispiel ist das Bild unten, bei dem es sich um ein RAC-System mit zwei Knoten handelt. Es ist ersichtlich, dass die Redundanz vom Host bis zum Switch implementiert ist, das Geschäft wird nicht beeinträchtigt. Gemeinsamer Speicher verfügt über RAID-Redundanz.
Oracle RAC-Softwarearchitektur
Wie unten gezeigt, handelt es sich um ein RAC-System mit zwei Knoten. Oracle RDBMS ist die Datenbanksoftware und Oracle Clusterware ist die Clustersoftware. Bei den Treibern handelt es sich hauptsächlich um Netzwerkkarten, HBA-Karten, ASMLib usw.
Jeder Knoten muss über das gleiche Betriebssystem verfügen und die Version muss konsistent sein, einschließlich Patch-Nummern usw. Beispiel: Betriebssystem: RHEL AS 4.8 64bit, Linux-Kernelversion: 2.6.9-89.EL.
Um Oracle RAC besser zu verstehen, werfen wir einen Blick auf die Zusammensetzung seiner internen Softwaremodule. Auf der gesamten Datenbankebene gibt es nicht viele Unterschiede. Die wichtigsten Ergänzungen sind die folgenden: virtuelle IP (VIP), ASM, Clusterware und Quorum-Disk. Diese neuen Komponenten arbeiten zusammen, um die Multi-Active-Cluster-Funktion von Oracle zu vervollständigen.
Virtuelle IP ist der Zugang für Anwendungen zum Zugriff auf die Datenbank. Diese IP ist an keinen Server gebunden, sondern kann zwischen allen Servern im Cluster wechseln. Dank dieser Funktion kann der Datenbankcluster bei einem Serverabsturz sicherstellen, dass Dienste über dieselbe Schnittstelle für die Außenwelt bereitgestellt werden.
ASM und Clusterware implementieren Clusterverwaltungsfunktionen, um das Risiko von Dateninkonsistenzen durch gleichzeitigen Festplattenzugriff zu vermeiden, während Clusterware zur Verwaltung der Softwareprozesse und Ressourcenplanung von Oracle-Clustern verwendet wird.
Die Quorum-Festplatte wird verwendet, um die Anomalie der Server im Cluster zu ermitteln. Die Knoten im Cluster markieren ihren eigenen Gesundheitsstatus, indem sie die Daten in bestimmten Bereichen der Quorum-Festplatte regelmäßig aktualisieren. Andere Knoten können anhand dieser Daten feststellen, ob der Knoten ausgefallen ist.
Die folgende Abbildung zeigt die logische Struktur von Oracle RAC, und jede darin enthaltene Komponente wird nacheinander vorgestellt.
Jeder Knoten hat gleiche Rechte für den Zugriff auf gemeinsam genutzte Speicherdaten. Oracle RAC verwendet Distribute Lock Management (DLM), um den gleichzeitigen Zugriff zwischen mehreren Knoten zu steuern. Der verteilte Sperrmanager ist für die Koordinierung des Wettbewerbs um gemeinsam genutzte Ressourcen zwischen Knoten verantwortlich. Wenn ein Knoten auf Daten zugreift, muss er sich zunächst über DLM bewerben und bestätigen, dass es nicht zu Konflikten mit anderen Knoten kommt, bevor diese verwendet werden können.
Amnesie: Wenn jeder Knoten über eine Kopie der Cluster-Konfigurationsinformationen verfügt, tritt ein Fehler auf, wenn nach der Änderung der Konfiguration keine Synchronisierung erfolgt.
Der Cluster kann also nur eine Konfigurationsinformation haben, die von allen Knoten gemeinsam genutzt wird. Oracle RAC verwendet OCR-Disk-Dateien, um Amnesie zu lösen.
OCR-Datenträger können nur vom Master-Knoten geändert werden. Jeder Knoten hat eine Kopie im OCR-Cache-Speicher. Wenn ein Knoten die OCR-Festplatte ändern möchte, fordert er den Master-Knoten an, und der OCR-Prozess auf diesem Knoten aktualisiert den lokalen und anderen Knoten-OCR-Cache-Inhalt. OCR Disk wird regelmäßig alle paar Stunden gesichert.
Split Brain: Die Knoten im Cluster nutzen die Heartbeat-Erkennung, um zu erkennen, ob die andere Partei gut funktioniert. Wenn es ein Problem mit dem Heartbeat gibt, gehen beide Knoten davon aus, dass die andere Partei einen Fehler gemacht hat , und sie werden um die ausschließliche Nutzung der Daten bitten. Dadurch wird die Datenkonsistenz zerstört.
Voting Disk wird verwendet, um den Status von Mitgliedern zwischen Knoten aufzuzeichnen. Wenn ein Split-Brain auftritt, wird derjenige mit der höchsten Stimmenzahl ausgewählt, um die Kontrolle zu erlangen, und andere Knoten werden rausgeschmissen.
IO-Isolation: Der rausgeschmissene Knoten kann nicht mehr auf Daten zugreifen, daher ist eine IO-Isolation erforderlich. Der Mechanismus von Oracle RAC besteht darin, den ausgefallenen Knoten neu zu starten.
Datenbankdateien werden gemeinsam genutzt, und Cache Fusion Lock löst die Speicherfreigabe und gleichzeitige Zugriffskontrolle außerhalb der Clusterebene.
1.Öffentliches Netzwerk: Verwenden Sie öffentliche IP, um externe Datenabfragen, Datenbankwartung und Serverwartung bereitzustellen.
2.Virtuelles Netzwerk: Verwenden Sie virtuelle IP, um eine Anwendungsverbindung bereitzustellen, und die Anwendung verwendet diese IP.
Im TCP/IP-Protokoll enthält der TCP-Header die Quell- und Ziel-Ports, der IP-Header enthält die Quell- und Ziel-IPs und der Datenbankmonitor der Anwendungsschicht zeichnet die IP und den Port auf. Wenn das TCP-Timeout abläuft, ist dies bekannt dass ein Problem mit der Datenbank oder dem Monitor vorliegt. Die Zeitüberschreitung des TCP/IP-Protokollstapels wird vom Betriebssystem bestimmt und jedes Betriebssystem hat unterschiedliche Definitionen. Um die Zeit zum Erkennen von Fehlern zu verkürzen, verwendet Oracle RAC VIP. Die virtuelle IP ist schwebend und nicht an die physische Netzwerkkarte gebunden. Wenn ein Knoten ausfällt, wird die VIP in der Überwachung des guten Knotens nicht gefunden und wechseln Sie zu „Andere VIPs senden Verbindungsanfragen“.
3.Privates Netzwerk: Verwenden Sie private IP für die RAC-Heartbeat-Erkennung und Cache Fusion Lock, was eine hohe Geschwindigkeit erfordert.
4. Speichernetzwerk: bestehend aus Speichergeräten, HBA-Karten und FC-Netzwerken.
Auf einem einzelnen Computer kann nur das Betriebssystem Anforderungen der oberen Ebene verarbeiten. Wenn jedoch mehrere Computer vorhanden sind, fängt die Clusterverwaltungssoftware Oracle Clusterware Anforderungen für andere Knoten vor dem Betriebssystemkern ab und kommuniziert mit dem Clusterware von andere Knoten, um die Anforderungen abzuschließen.
Die Anwendungsschicht besteht aus mehreren CRS-Ressourcen. Jede Ressource ist ein vollständiger Dienst, der aus mehreren Prozessen besteht. LMON (Lock Monitor) überwacht die CRS-Ressource und startet neu und schaltet um, wenn eine Anomalie auftritt, um die hohe Verfügbarkeit des Oracle RAC-Dienstes sicherzustellen.
Cache Fusion kann wörtlich verstanden werden – Cache Fusion verwaltet tatsächlich den Cache jedes Knotens auf einheitliche Weise, wodurch vermieden wird, dass die Festplatte jedes Mal bedient werden muss, wenn sie gelesen wird, und die E/A-Leistung beschleunigt wird. Da das private Netzwerk sehr schnell ist, ist es schneller als das Lesen der Festplatte. Zeit, Datenblöcke von verschiedenen Orten zu lesen:
Cache Fusion wird über GCS (Global Cache Service) verwaltet, der Ihren Cache als einen großen Cache behandelt.
Wenn Benutzer verschiedene Anforderungen wie RAC initiieren, ist der Lastausgleich dafür verantwortlich, die Aufgaben gleichmäßig auf verschiedene Maschinen zu verteilen Vorgesetzter.
Ist es eine zufällige Auswahl aus mehreren Maschinen? NEIN! Das ist zu niedrig. RAC weist Aufgaben dynamisch basierend auf dem Status jeder Maschine zu. Wenn die Datenbank ausgeführt wird, werden die Ladeinformationen des PMON-Hintergrundprozessknotens beim Listener registriert und alle 1–10 Minuten aktualisiert. Der Listener jedes Knotens kennt den Auslastungsstatus aller Knoten und sendet Client-Anfragen an den am stärksten ausgelasteten Knoten.
Die Zuweisung nach Benutzer hat den Nachteil, dass Cache Fusion dadurch möglicherweise ausgelastet ist. Da RAC-Knotendaten gemeinsam genutzt werden, synchronisiert jeder die Daten über Cache Fusion. Die Leistung von RAC wird weitgehend durch die Leistung von Cache Fusion begrenzt. Entweder wird das private Netzwerk leistungsfähiger gemacht, beispielsweise durch die Verwendung von teurem InfiniBand, oder die andere Möglichkeit besteht darin, den Datenverkehr von Cache Fusion zu reduzieren, wodurch tatsächlich die Abhängigkeit zwischen Knoteninstanzen verringert wird. Der Mechanismus der Zuordnung nach Nutzern ist für die nachfolgenden Lösungen nicht förderlich.
Daher unterstützt RAC die Zuordnung von Knoten nach Diensten. Beispielsweise werden unterschiedliche Knoten für Produktion und Vertrieb verwendet. Ihre eigenen Daten befinden sich in Ihrem eigenen Cache, sodass Sie nicht auf andere Knoten zugreifen müssen. Die Leistung wird verbessert.
Dual-Machine-Hot-Standby
Normalerweise ist einer von ihnen im Leerlauf und im Standby-Modus. Wenn der funktionierende Cluster ausfällt, übernimmt der andere.
Dual-Machine-Backup
Normalerweise erledigen beide Maschinen ihre eigene Arbeit, es müssen jedoch einige Ressourcen reserviert werden, denn wenn einer ausfällt, muss der andere die Arbeit von zwei Personen erledigen.
Doppelmaschinen-Duplex
Zum Beispiel:
Der Chef verkauft normalerweise gemeinsam ein Geschäft, und der zweite Bruder verkauft hauptsächlich Sojamilch , der zweite Bruder verkauft wieder Dampfbrötchen und dann wieder Dampfbrötchen Sojamilch, dem zweiten Kind geht es nicht mehr, also verkauft der Chef Dampfbrötchen und Sojamilch.
Baozi-Sojamilch besteht aus Daten, die sich umeinander kümmern, nennt man Heartbeat-Erkennung, und die Übernahme der Arbeit des anderen nennt man Failover. Wenn zwei Brüder plötzlich blind und taub sind und nicht wissen, ob der andere gerade arbeitet, und beide denken, sie müssten die Arbeit des anderen übernehmen, spricht man von Split Brain und dann einem Dritten, etwa dem Vater , ist erforderlich, um das Problem zu lösen, oder ihre beiden Frauen zu bitten, eine von ihnen mitzunehmen. Dies wird als IO-Isolation bezeichnet. Oracle RAC gehört zu dieser Kategorie mit der besten Leistung und dem komplexesten System.
Empfohlenes Tutorial: „Oracle Learning Tutorial“
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der klassischen Oracle-Fähigkeiten RAC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!