Welche Funktionen von Oracle machen es zu einer attraktiven Wahl für kleine Projekte?


13

Angesichts der Handhabung der Oracle-Lizenzen [a] (und in geringerem Maße der Kosten) habe ich mich immer gefragt, welche Faktoren für die Wahl von Oracle anstelle von PostgreSQL oder MySQL ausschlaggebend wären.

Mein Unternehmen entscheidet sich fast immer für Oracle (XE, wo dies möglich ist), auch für kleine Projekte, bei denen nur ein einziger einfacher Windows-Server die Datenbank ohne dedizierte DB-Verwaltung ausführt. (Beachten Sie, dass kleine nicht nicht die Daten bedeuten passt immer die eher kleinen Größenbeschränkungen von Oracle XE.)

Ich habe diese Wahl immer in Frage gestellt, aber es hat den Vorteil, dass wir zumindest nur einem Datenbankprodukt ausgesetzt sind.

Noch ein neues Projekt gegeben, in dem Sie eine RDBMS benötigen, aber das Projekt und den Umfang der Datenbank ist ziemlich klein, basierend auf welche einzigartigen Funktionen von Oracle auf Lauf einfachen Windows - Server - Boxen (ohne zu viel dedizierte Verwaltung) würde wählen Sie Oracle über ein anderes RDBMS?

Zusätzlicher Kontext : Viele unserer Datenbankbereitstellungen werden bei Kunden im so genannten "Low-Administration" -Modus ausgeführt. Das heißt, die Datenbank wird einmal eingerichtet. Es werden erste Tests zum korrekten Verhalten und zur korrekten Leistung vor Ort durchgeführt. Danach läuft die Datenbank einfach weiter. Keine regelmäßige Verwaltung erfolgt. Nur wenn etwas kaputt geht, überprüft ein Techniker (kein dedizierter DBA) die Datenbank und versucht herauszufinden, was los ist. Die Sicherung erfolgt meistens als Offline-Sicherung. In einigen Projekten ist es den Kunden egal, ob es sich um ein RDBMS handelt. Sie sehen ihre App nur als Black Box, die funktioniert (oder nicht).

[a]: Wo ich arbeite, haben mehrere Projektmanager wiederholt Monate gebraucht, um eine ordnungsgemäße Lizenzierung für kleine Projekte zu erhalten, da die lokalen Oracle-Vertreter einfach nicht sehr daran interessiert sind, ihr Produkt zu verkaufen, wenn der Umsatz gering ist.


Wie wählen sie XE für Daten aus, die nicht "immer den eher geringen Größenbeschränkungen von XE entsprechen"?
Jack sagt, versuchen Sie topanswers.xyz

@ Jack: Wenn es passt, verwenden wir XE, wenn es nicht passt, tun wir es nicht :-)
Martin

Die 11.2 Express Edition befindet sich in der Beta-Phase und das Benutzerdatenlimit wurde von 4 GB auf 11 GB erweitert. Siehe oracle.com/technetwork/database/express-edition/…
Leigh Riffel,

Oracle hat PIVOT, MySQL und Postgres nicht. Das ist in manchen Situationen ein großes Plus.
Phil Lello

1
@ Phil Lello: PostgreSQL hat PIVOT, überprüfen Sie den Beitrag: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

Antworten:


12

Ich kann nur versuchen, für Oracle und Postgres zu antworten. Nachdem ich Oracle jahrelang exklusiv und Postgres erst in den letzten zwei Jahren verwendet habe, liebe ich Postgres. Es gibt so viele kleine Möglichkeiten, die bequemer als die von Oracle sind, und es gibt viele der entscheidenden Vorteile (wie MVCC). Es ist einfacher zu verwalten, zuverlässig, hat eine hervorragende Dokumentation und ist natürlich kostenlos.

Postgres ist Oracle jedoch in einigen Bereichen nicht gewachsen, wie zum Beispiel:

  • RAC - meines Wissens gibt es für keine Datenbank eine bessere Clustering-Technologie
  • RMAN - weitaus besser als die grundlegenden Sicherungs- und Wiederherstellungsfunktionen von postgres, insbesondere mit Blockänderungsverfolgung und inkrementellen Sicherungen (die Sie auf andere Sicherungen anwenden können, um eine vollständige Sicherung auf dem neuesten Stand zu halten)
  • Oracle-Support - vorhanden. Postgres-Unterstützung? Nicht so viel
  • viele andere Funktionen wie IOTs, 'Secure Files' und Komprimierungstechnologien, die es in der Welt nach dem Start nicht gibt

Interessanterweise fehlen fast alle dieser Funktionen in XE oder sind verkrüppelt. Ich denke, ich würde Postgres gegenüber XE wählen, alles andere ist gleich, aber ...

... keiner dieser Gründe spricht die zwei Hauptgründe für die Wahl von Oracle an:

  1. Sie setzen Oracle bereits ein und haben eine enorme Investition in Oracle (Datenbankunabhängigkeit ist ein alberner Mythos).
  2. Ihre Entwickler und Datenbankadministratoren kennen Oracle und nutzen seine Funktionen voll aus.

BEARBEITEN:

Die einzige Situation, in der ich jedes Mal Postgres anstelle von XE wählen würde, ist, wenn die Sicherheit ein Problem darstellt. Wenn Ihre Datenbank oder eine ihrer Anwendungen dem öffentlichen Internet ausgesetzt ist, bin ich mir nicht sicher, ob XE überhaupt eine gute Idee ist.


rgd. RMAN - Sie würden also sagen, dass die Backup-Funktionen von Oracle "besser" sind als die von Postgre? Würde dies in einer Umgebung mit geringem Verwaltungsaufwand funktionieren (siehe meine Q-Bearbeitung)?
Martin

@Martin - RMAN ist leistungsstark und sehr ausgereift. Ich vertraue darauf, dass es mich durch mehrere verschiedene Wiederherstellungssituationen geführt hat. Eine Sache, die es nicht ist, ist "einfach". Es hört sich so an, als würden Sie auf teure DBAs verzichten. Verwenden Sie RMAN derzeit für Ihre Offline-Backups? Wie versenden Sie Ihre (täglichen?) Backups mit mehreren GB von den Client-Standorten?
Jack sagt, versuchen Sie topanswers.xyz

Der SQL Server verfügt über ein HA-Clustering, das dem RAC von Oracle entspricht.
StanleyJohns

@stan the dba Nach dem, was ich über die Clustering-Optionen für SQL Server gelesen habe, sind sie überhaupt nicht wirklich mit RAC vergleichbar, die meisten sind Failover-Lösungen, keine echten Scale-Out-Lösungen wie rac.
Matthew Watson

Ihr zweiter Grund, sich für Oracle zu entscheiden, ist der gleiche wie der erste, IMO. Grundsätzlich bist du verpflichtet. - Was die Unterstützung anbelangt, so gibt es diese sicherlich auch für Postgres. Wenn Sie mit den hervorragenden Mailinglisten nicht zufrieden sind, lesen Sie in dieser Liste nach, welche Unternehmen in Ihrer Region kostenpflichtigen Support anbieten.
9.

9

Oracle Apex . Eine praktische, benutzerfreundliche Webanwendungsumgebung, die direkt in die Datenbank integriert ist. Ganz einfach, es macht es sehr einfach, "Single-Box" -Anwendungen mit der Web-Benutzeroberfläche / Anwendungslogik / Datenbank in einem einzigen integrierten Paket bereitzustellen.

PS. 11g XE (derzeit in der Beta) erweitert den Speicher auf über 10 GB.


+1 für APEX. Während es seine Probleme und Gremlins hat, LIEBE ich dies, um Anwendungen schnell und einfach in Betrieb zu nehmen. Ich denke, so viel RAD für Oracle wie möglich.
Kerri Shotts

5

Obwohl die anderen Flashback-Optionen von Oracle in der Express Edition nicht verfügbar sind, gilt dies für die Flashback-Abfrage . Nach der Frage darauf , hat keine andere Datenbank diese Funktion , die eine select - Anweisung , um die Abfragedaten ab einem bestimmten Zeitpunkt in der Vergangenheit ermöglicht. Flashback-Daten können mit aktuellen Daten verknüpft und in aktuelle Tabellen eingefügt werden. Dies ist nützlich, um Operationen rückgängig zu machen, temporäre Änderungen vorzunehmen und Änderungen, die von einer Methode vorgenommen wurden, an einer Stelle zu vergleichen.

Einige andere Dinge, die andere Datenbanken nicht haben, macht Oracle Express Edition.


5
postgres aktiviert die Kontrollkästchen "AuthID Current User vs. Definer", "Check Constraints", "Deferrable Constraints", "Date Addition and Subtraction", "Hierarchical Queries", Nicht-Schema-Trigger, die meisten "Analytic Functions", einige "Collection Functions". , 'XML-Funktionen', Clob bis zu 1 GB, 'Create or Replace' und 'Multi-Platform' Boxen auch (zumindest)
Jack sagt, versuchen Sie topanswers.xyz

@JackPDouglas Es ist schwierig, eine Pro-Liste zu erstellen, wenn der Wettbewerb "alles andere" ist. Danke für die Information.
Leigh Riffel

@Leigh - einverstanden, ich vermute, Ihre Liste ist eine hilfreiche Referenz für Martin. Sie erwähnen RMAN nicht, zumindest in der aktuellen (v10) XE ist es enthalten, obwohl es nicht standardmäßig verwendet wird. Nur ein Tipp: Wenn XE auf 4 oder 11 GB beschränkt ist, werden Clobs mit bis zu 128 TB nicht wirklich unterstützt :)
Jack sagt, versuchen Sie topanswers.xyz

@JackPDouglas Sie hatten RMAN bereits erwähnt und ich wollte Ihre Antwort (oder andere) nicht ersetzen.
Leigh Riffel

@ JackPDouglas Guter Fang auf dem Klumpen. Ich habe es auf der Liste belassen, weil kleinere Clobs in XE nützlich sein können. Wenn die Datenbank wächst, kann es nützlich sein, sich auf einer Plattform zu befinden, die extrem große Clobs unterstützt.
Leigh Riffel

4

Zunächst sollten Sie den Faktor nicht unterschätzen, dass bereits Oracle Know-how vorhanden ist, nicht jedoch für andere RDBMS. Das Aufbauen von Wissen für die anderen kostet Zeit und Geld und kann zu Beginn auch mit einigen Fehlern einhergehen.

Außerdem weiß man nie, ob ein kleines Projekt nicht irgendwann wachsen wird. Anschließend können Sie problemlos und schnell ein Upgrade von XE auf Standard Edition One auf Standard Edition auf Enterprise Edition durchführen. Eine Migration von einem anderen RDBMS wird wieder viel mehr Zeit und Geld in Anspruch nehmen. Fazit: Ich denke, Ihre Firma macht es richtig - ok, ich bin vielleicht ein bisschen voreingenommen :-)


Weeell. Ich würde sagen, das Oracle-Know-how hier ist ungefähr ... hmm ... ich würde wahrscheinlich 3 Stunden brauchen, um mit Postgre herumzuspielen und ein wenig zu googeln, um zu dem Punkt zu gelangen, an dem ich genauso viel damit anfangen könnte wie ich kann mit Oracle. (Mit Ausnahme von PL / SQL) Und ich denke gerne, dass ich einer der Oracle-Poweruser hier bin :-) - Aber Ihr Argument über einen Upgrade-Pfad ist zweifellos gültig.
Martin

@Martin: Das ist kein gutes Zeichen ... Ich verwende Postgres für eines unserer Projekte (als Teil einer gepackten Anwendung) seit ~ 2 Jahren, und ich kann es immer noch nicht dazu bringen, eine gute Leistung zu erbringen (teilweise weil Die Teile der Anwendung, die ich verwende, sind stark count()abhängig von (das scheint die Achillesferse von Postgres zu sein). Ich musste auf Stackoverflow fragen, wie man den Planer beeinflusst
Joe

2

Eine der netten Funktionen von Oracle sind solche wie Oracle Resource Manager, die die Konsolidierung von Anwendungen in einer Datenbank erheblich vereinfachen, anstatt für jede Anwendung eine eigene Datenbank zu haben. Es sieht so aus, als würde dies in Ihrer Organisation nicht verwendet. Ich habe in der Vergangenheit konsolidierte Datenbanken für Projekte entworfen, wie Sie es bereits erwähnt haben.

  • Jedes Projekt hatte seine eigene Hardware
  • Jedes Projekt hatte seine eigenen Lizenzen
  • Jedes Projekt hatte seinen eigenen Speicher

Dies führte dazu, dass selbst das einfachste aller Projekte Monate in Anspruch nahm und in einer Zeit, in der die Zeit bis zur Markteinführung äußerst wichtig ist, tödlich ist. Aus irgendeinem Grund wird dies von vielen übersehen, oft sogar aus politischen Gründen vernachlässigt.

Die Lösung hierfür ist recht einfach. Erstellen Sie eine seriöse Datenbank, geben Sie jedem Projekt / jeder Anwendung ein eigenes Schema und greifen Sie auf Benutzer zu. Die Ausführung erfolgt in Stunden anstatt in Monaten. Wenn Sie so etwas tun, kann es sich als vorteilhaft erweisen, Anwendungen mit ähnlichen Verfügbarkeitsanforderungen zu kombinieren. Oracle bietet immer mehr Online-Wartungsoptionen. Manchmal ist es jedoch viel einfacher, Ausfallzeiten von einigen Stunden zu erhalten. Durch die Festlegung von Zeitfenstern können viele Probleme vermieden werden. Sie werden einige Ausfallzeiten benötigen.

Lassen Sie nicht zu, dass Anwendungen eine Verbindung zur Datenbank herstellen, sondern stellen Sie mit ihren eigenen tns-Aliassen eine Verbindung zu Diensten her, die für die Anwendung reserviert sind. Auf diese Weise können Sie die Anwendung in eine andere Datenbank verschieben, ohne die Anwendung neu konfigurieren zu müssen.

Übrigens: Die Unternehmen, die diese Art der Konsolidierung angewendet haben, haben jährlich viel Geld gespart, mehr als die Lizenzen, die für den Start erforderlich sind.


Danke für diesen Input. Beachten Sie, dass in vielen Projekten die Datenbank beim Kunden ausgeführt wird, sodass eine Konsolidierung nicht wirklich sinnvoll ist. (Wenn ich Sie richtig verstehe, z. B. zur Konsolidierung.)
Martin

Es könnte immer noch empfohlen werden, es vom Kunden konsolidieren zu lassen, wo das Paket landet. Wenn es sich um eine eingebettete Datenbank handeln soll, ist dies möglicherweise etwas anders.
ik_zelf

Um es klar auszudrücken, verfügt Oracle XE nicht über die Resource Manager-Funktion. Dies ist daher nur für die Konsolidierung auf einem lizenzierten Server hilfreich. @ik_zelf Ich weiß, es war nicht deine Absicht, etwas anderes anzuzeigen.
Leigh Riffel

@Leigh Riffel Ja, ich ging davon aus, dass eine Oracle-Installation verfügbar ist. In einem solchen konsolidierten Szenario würde ich EE vorziehen. Die Frage schien eher nach einer eingebetteten Lösung zu suchen.
ik_zelf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.