
Wir suchen nach einem Ersatz für unseren MySQL-Cluster – Oracle oder pgsql. Ich habe das gesamte Dokument über HA im Oracle 11-Datenbanksystem gelesen, aber ich konnte es nicht wirklich verstehen. Was ich verstanden habe, ist, dass es RAC ist, das HA durchführt. Steckt dahinter ein Proxy wie ein MySQL-Proxy? Oder ändert der Cluster die IP-Adresse mit einer Heartbeat-ähnlichen Software? Oder müssen Anwendungen in der Verbindungszeichenfolge ein anderes Ziel haben, falls das primäre ausfällt? Ich brauche das, damit ich beurteilen kann, wie viel Aufwand für die Neucodierung der Kernanwendungen erforderlich ist.
Antwort1
Die Funktionsweise von Oracle RAC ist etwas kompliziert. Vereinfacht lässt sie sich wie folgt darstellen:
Der Oracle RAC besteht aus Oracle-Datenbankknoten. Jeder Knoten hat einen lokalen Listener und der gesamte Cluster hat einen oder mehrere SCAN-Listener (Single Client Access Name). Jeder Listener hat seine eigene virtuelle IP-Adresse. Wenn ein Host ausfällt, wird die Listener-Adresse des ausgefallenen Hosts von einem anderen Host übernommen. Die Hosts sollten über eine dedizierte Verbindungsschnittstelle verfügen, über die der Heartbeat fließt und die Synchronisierung zwischen den Servern erfolgt.
Ein Client muss sich nur mit einem SCAN-Listener verbinden, dessen IP-Adresse konstant ist (wenn der Cluster mehrere SCANs hat, sollte der DNS einen Namen zu diesen Adressen auflösen, sodass die Clients sich per Round-Robin mit den SCANs verbinden). Wenn sich ein Client verbindet, leitet der Cluster den Client zum besten lokalen Listener um, aber dafür braucht der Client keine weitere Einrichtung.
Oracle verfügt über eine recht gute Dokumentation zu RACs, aber die Implementierung und Verwaltung eines solchen ist (gelinde gesagt) nicht ganz einfach. Sie sollten den Rat von pfo beherzigen und einen Fachmann beauftragen, wenn Sie RAC verwenden möchten.
Antwort2
RAC ist RAC / es ist so ziemlich eine Blackbox. Alle HA-Sachen werden auf RAC- und Treiberebene gehandhabt. Eine Anwendungsneukodierung ist nur erforderlich, da Oracle nicht MySql ist.