PostgreSQL vs. Oracle Hochverfügbarkeitslösungen?

8

PostgreSQL verfügt über eine Matrix verschiedener Hochverfügbarkeitsoptionen, die viele verschiedene Möglichkeiten zum Erstellen der Replikation in ein RDBMS darstellen.

Hier finden Sie die PostgreSQL-Matrix für Hochverfügbarkeit, Lastausgleich und Replikationsfunktionen

Fragen

  • Welche Ansätze in der PostgreSQL-Hochverfügbarkeitsmatrix werden von Oracle unterstützt?
  • Ist Oracle mit Techniken, die mit PostgreSQL nicht verfügbar sind, hochverfügbar?
ams
quelle

Antworten:

7

Die Data Guard-Replikation von Oracle ähnelt der "Hot / Warm Standby Using PITR" von PostgreSQL, die ab PostgreSQL 9.0 in die Datenbank integriert ist. Version 9.1 fügt auch die synchrone Replikation hinzu. Ein Vorteil von PostgreSQL gegenüber Oracle besteht darin, dass Sync Rep pro Transaktion gesteuert werden kann. Sie können ein vollständig synchrones "Wichtig!" Transaktion gefolgt von einem asynchronen "OK, um zu verlieren" in Postgres.

Der RAC von Oracle ähnelt dem, was PostgreSQL in diesem Raster als "Shared Disk Failover" bezeichnet. Der Hauptunterschied besteht darin, dass RAC vollständig in das Oracle-Produkt integriert ist, während "Shared Disk Failover" nur eine Methode beschreibt, mit der etwas getan werden kann. Sie müssen die erforderliche Clusterware-Software für PostgreSQL zusammenstellen, und es gibt eine Vielzahl fortschrittlicher Dinge, die RAC in PostgreSQL nur schwer duplizieren kann. Ich höre regelmäßig, dass die meisten dieser Dinge so kompliziert einzurichten sind, dass auch nur wenige Oracle-Installationen sie richtig machen - nur weil RAC integriert ist, heißt das nicht, dass es sich automatisch einrichtet.

Das Wichtigste, was Sie in Oracle tun können, das auch in PostgreSQL sehr schwer zu duplizieren ist, ist die Multi-Master-Replikation. In PostgreSQL ist Multi-Master möglich, jedoch nur mit Zusatzsoftware wie Bucardo. Und alle diese Programme haben immer noch mehr Einschränkungen, was Sie damit tun können, als die Multi-Master-Oracle-Installationen bieten.

Greg Smith
quelle
Greg Ich habe dein Video "Synchrone Replikation und Optimierung der Haltbarkeit Greg Smith" sehr geschätzt. Habe es letzte Nacht gesehen! Es hat mir wirklich geholfen, die verschiedenen Optionen zu verstehen. Ich habe nichts gegen alle Replikationsoptionen in Postgres. Es dauert nur eine Weile, um herauszufinden, welche für meine App die richtige ist.
Ams
Es ist erwähnenswert, dass Multi-Master manchmal eine Lösung ist, die nach einem erfolgreichen Oracle-Verkaufsgespräch nach einem Problem sucht.
Robert Grant
4

Ich bin nicht sicher, ob ich den Teil "von Oracle unterstützt" in Ihrer Frage verstehe. Postgres wird von Oracle in keiner Weise "unterstützt".

Der physische StandBy von Oracle entspricht der PostgreSQL-Streaming-Replikation.

Bei Verwendung der Streaming-Replikation entspricht die asynchrone Replikation von PostgreSQL dem Standby-Modus von Oracle im Modus "Maximale Leistung", während die synchrone Replikation von PostgreSQL (seit 9.1) dem Standby-Modus von Oracle im Modus "Maximale Verfügbarkeit" entspricht.

Oracle hat eine weitere Option namens Real Application Cluster (RAC), die in Postgres nicht verfügbar ist (sie führt auch einen Lastausgleich und eine automatische Umleitung der Sitzung auf einen anderen Knoten durch, falls einer ausfällt).

ein Pferd ohne Name
quelle
Ich verstehe voll und ganz, dass Postgres von Oracle nicht unterstützt wird. Ich möchte herausfinden, welche Replikationsansätze von beiden Produkten implementiert werden. Ich denke, wenn ein Replikationsansatz für Oracle gut genug ist, ist er wahrscheinlich einer der besseren Replikationsansätze.
Ams
2
Der Grund dafür, dass es so viele Replikationsoptionen gibt, ist, dass jede für einen anderen Anwendungstyp geeignet ist. Die Idee, dass einige "gut genug" sind und andere nicht, ist nicht wahr. Beispielsweise ist der Trigger-basierte Replikationsansatz für Oracle nicht beliebt. Aber es ist in PostgreSQL und MySQL, weil es für Arten von Anwendungen geeignet ist, auf die Oracle nicht abzielt.
Greg Smith
1

Unter Oracle haben Sie grundsätzlich die Wahl zwischen einem Hot Standby und der Verwendung von RAC .

Das Hauptziel der Hochverfügbarkeit besteht darin, einzelne Fehlerquellen zu beseitigen. RAC tut dies auf Serverebene und ermöglicht den Ausfall eines Servers ohne Dienstunterbrechung. Sie müssen auf Speicherseite mit ASM , Spiegelung und zwei oder mehr physisch unabhängigen Speicherpools (oder einem SAN) etwas Ähnliches erreichen .

Die Verwendung eines Hot-Standby-Modus bedeutet eine Unterbrechung des Dienstes im Falle eines Fehlers, ist jedoch einfacher und hat weniger "technische Kompromisse".

Gute Hardware ist ebenfalls wichtig, z. B. SAS nicht SATA, redundante Netzteile, USVs usw.

Es gibt auch andere Aspekte der Hochverfügbarkeit, die Sie möglicherweise berücksichtigen müssen (z. B. menschliches Versagen) - in diesem Whitepaper von Oracle werden diese ausführlicher erläutert.

Jack sagt, versuchen Sie es mit topanswers.xyz
quelle