Quelles fonctionnalités d'Oracle en font un choix attrayant pour les petits projets?

13

Étant donné la gestion des licences d'Oracle [a] (et, dans une moindre mesure, le coût), je me suis toujours demandé quels seraient les facteurs décisifs pour choisir Oracle plutôt que PostgreSQL ou MySQL.

Mon entreprise choisit presque toujours Oracle (XE dans la mesure du possible), même pour les petits projets où il n'y a qu'un seul serveur Windows simple exécutant la base de données sans aucune administration de base de données dédiée. (Notez que petit ne signifie pas que les données s'adapteront toujours aux contraintes de taille plutôt petites d'Oracle XE.)

J'ai toujours remis en question ce choix, mais il a l'avantage que nous sommes au moins exposés à un seul produit de base de données.

Pourtant, étant donné un nouveau projet, où vous avez besoin d'un SGBDR, mais le projet et la portée de la base de données sont assez petits, en fonction des fonctionnalités uniques d'Oracle s'exécutant sur de simples serveurs Windows (sans trop d'administration dédiée), choisiriez-vous Oracle un autre SGBDR?

Contexte supplémentaire : Un grand nombre de nos déploiements de bases de données s'exécutent sur les sites des clients dans un, appelons cela, le mode «à faible administration». Autrement dit, la base de données est configurée une fois. Il existe des tests initiaux sur son comportement et ses performances sur site. Après cela, la base de données fonctionne simplement. Aucune administration régulière effectuée. Ce n'est qu'en cas de panne qu'un technicien (pas un DBA dédié) vérifiera la base de données, essayant de comprendre ce qui se passe. La sauvegarde se fait principalement en tant que sauvegarde hors ligne. Dans certains projets, les clients ne se soucient même pas de la présence d'un SGBDR. Ils voient simplement leur application comme une boîte noire qui fonctionne (ou non).

[a]: Là où je travaille, il a fallu plusieurs mois à plusieurs chefs de projet pour obtenir les licences appropriées pour les petits projets, car les représentants locaux d'Oracle ne sont tout simplement pas très intéressés par la vente de leur produit si les revenus sont modestes.

Martin
la source
Comment choisissent-ils XE pour des données qui "ne correspondent pas toujours aux contraintes de taille plutôt petites de XE"?
Jack dit d'essayer topanswers.xyz
@Jack: si cela convient, nous utilisons XE, si ce n'est pas le cas ... eh bien nous ne le faisons pas :-)
Martin
L'édition 11.2 Express est en version bêta et la limite de données utilisateur a été étendue de 4 Go à 11 Go. Voir oracle.com/technetwork/database/express-edition/…
Leigh Riffel
Oracle a PIVOT, MySQL et Postgres n'en ont pas. C'est un gros plus dans certaines situations.
Phil Lello
1
@ Phil Lello: PostgreSQL a PIVOT, vérifiez la contrib: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

Réponses:

12

Je ne peux qu'essayer de répondre pour Oracle et postgres. Après avoir utilisé Oracle exclusivement pendant des années et des postgres seulement pendant les deux dernières années, j'aime les postgres. Il y a tellement de petits moyens qu'il est plus pratique à utiliser qu'Oracle, et il partage bon nombre des avantages cruciaux (tels que MVCC). Il est plus facile à administrer, fiable, a une excellente documentation, et bien sûr, il est gratuit.

Cependant, postgres ne correspond pas à Oracle dans certains domaines, tels que:

  • RAC - pour autant que je sache, il n'y a pas de meilleure technologie de clustering pour aucune base de données
  • RMAN - bien supérieur aux fonctionnalités de sauvegarde et de restauration de base de postgres, en particulier avec le suivi des modifications de bloc et les sauvegardes incrémentielles (que vous pouvez appliquer à d'autres sauvegardes pour conserver une sauvegarde complète à jour)
  • Prise en charge Oracle - existe. support postgres? Pas tellement
  • de nombreuses autres fonctionnalités telles que les IOT, les fichiers sécurisés et la technologie de compression qui n'ont pas d'analogue dans le monde postgres

Fait intéressant, presque toutes ces fonctionnalités sont absentes ou paralysées dans XE. Je pense que je choisirais les postgres plutôt que XE, toutes choses étant égales par ailleurs, mais ...

... rien de tout cela ne résout les deux principales raisons de choisir Oracle:

  1. Vous utilisez déjà Oracle et vous y investissez énormément (l'indépendance de la base de données est un mythe stupide)
  2. Vos développeurs et administrateurs de bases de données connaissent Oracle et utilisent pleinement ses fonctionnalités (pourquoi ne le serait-il pas, l'indépendance de la base de données étant un mythe idiot de toute façon?)

ÉDITER:

La seule situation où je choisirais Postgres plutôt que XE à chaque fois est celle de la sécurité. Si votre base de données ou l'une de ses applications est exposée à l'Internet public, je ne suis pas sûr que XE soit une bonne idée.

Jack dit d'essayer topanswers.xyz
la source
rgd. RMAN - Vous diriez donc que les fonctionnalités de sauvegarde d'Oracle sont "meilleures" que celles de Postgre? Serait-ce valable dans un environnement à faible administration (voir ma modification Q)?
Martin
@Martin - RMAN est puissant et très mature, je lui fais confiance car il m'a vu à travers plusieurs situations de récupération différentes. Une chose n'est pas «simple». Il semble que vous vous débrouilliez sans DBA coûteux, utilisez-vous RMAN pour vos sauvegardes hors ligne en ce moment? Comment expédiez-vous vos sauvegardes multiples (quotidiennes?) Hors des sites clients?
Jack dit d'essayer topanswers.xyz
Le serveur SQL a un cluster HA qui serait l'équivalent du RAC d'Oracle.
StanleyJohns
@stan the dba D'après ce que j'ai lu sur les options de clustering pour SQL Server, elles ne sont pas du tout comparables à RAC, la plupart étant des solutions de basculement, pas de véritables solutions évolutives comme rac.
Matthew Watson
Votre deuxième raison de choisir Oracle est à peu près la même que la première, l'OMI. Fondamentalement, vous êtes engagé. - Quant au support, cela existe certainement aussi pour Postgres. Si vous n'êtes pas satisfait des excellentes listes de diffusion, consultez cette liste pour les entreprises offrant une assistance payante dans votre région.
eevar
9

Oracle Apex . Un environnement d'application Web pratique et facile à utiliser intégré à la base de données. Tout simplement, il est très simple de déployer des applications «à boîtier unique» avec l'interface utilisateur Web / la logique d'application / la base de données dans un seul package intégré.

PS. 11g XE (actuellement en version bêta) étend le stockage à plus de 10 Go.

Gary
la source
+1 pour APEX. Bien qu'il ait ses problèmes et ses problèmes, j'adore cela pour faire décoller les applications rapidement et facilement. Comme RAD pour Oracle que l'on peut obtenir, je pense.
Kerri Shotts
5

Bien que les autres options de flashback d'Oracle ne soient pas disponibles dans Express Edition, Flashback Query l' est. Selon la question , aucune autre base de données ne dispose de cette fonctionnalité qui permet à une instruction select d'interroger des données à un moment donné dans le passé. Les données Flashback peuvent être jointes aux données actuelles et insérées dans les tables actuelles, ce qui les rend utiles pour les opérations de type d'annulation, les modifications temporaires et la comparaison des modifications apportées par une méthode en un seul endroit.

Certaines autres choses que certaines autres bases de données n'ont pas qu'Oracle Express Edition.

Leigh Riffel
la source
5
postgres coche 'AuthID Current User vs. Definer', 'Check Constraints', 'Deferrable Constraints', 'Date addition and subtraction', 'Hierarchical Queries', non-schema triggers, most 'Analytic Functions', some 'Collection Functions' , "Fonctions XML", clob jusqu'à 1 Go, boîtes "Créer ou remplacer" et "
Multiplateforme
@JackPDouglas Il est difficile de créer une liste de pros lorsque la compétition est "tout le reste". Merci pour l'info.
Leigh Riffel
@Leigh - d'accord, je suppose que votre liste est une référence utile pour Martin. Vous ne mentionnez pas RMAN, au moins dans la version actuelle (v10) XE, il est inclus bien qu'il ne soit pas utilisé par défaut. Un seul choix: si XE est limité à 4 ou 11 Go, les Clobs jusqu'à 128 To ne sont pas vraiment pris en charge :)
Jack dit d'essayer topanswers.xyz
@JackPDouglas Vous aviez déjà mentionné RMAN et je n'avais pas l'intention de supplanter votre réponse (ou toute autre).
Leigh Riffel
@JackPDouglas Bonne prise sur le clob. Je l'ai laissé sur la liste parce que les petits clobs peuvent être utiles dans XE et si la base de données se développe, être sur une plate-forme qui prend en charge des clobs extrêmement grands peut être utile.
Leigh Riffel
4

Tout d'abord, je pense que vous ne devriez pas sous-estimer le fait qu'il existe déjà Oracle Know-How mais pas pour les autres SGBDR. Construire des connaissances pour les autres prend du temps et de l'argent et peut aussi être accompagné de quelques erreurs au début.

De plus, on ne sait jamais si un petit projet ne se développera pas quelque part. Ensuite, vous pouvez passer très facilement et rapidement de XE à Standard Edition One à Standard Edition à Enterprise Edition. Une migration à partir d'un autre SGBDR prendra encore beaucoup plus de temps et d'argent. Conclusion: je pense que votre entreprise le fait correctement - ok, je suis peut-être un peu biaisé :-)

Uwe Hesse
la source
Weeell. Je dirais que l'Oracle sait ce qu'il en est ici ... hmm ... J'aurais probablement besoin de 3 heures à jouer avec Postgre plus un peu de google pour arriver au point où je pourrais en faire autant que moi peut avec Oracle. (Sauf pour PL / SQL) Et j'aime à penser que je suis l'un des utilisateurs avancés d'Oracle ici :-) - Mais votre argument sur un chemin de mise à niveau est certainement valide.
Martin
@Martin: ce n'est pas bon signe ... J'utilise postgres pour l'un de nos projets (dans le cadre d'une application packagée) depuis environ 2 ans, et je n'arrive toujours pas à le faire fonctionner correctement (en partie parce que les parties de l'application que j'utilise dépendent beaucoup count(), ce qui semble être le talon d'Achille de Postgres). J'ai dû demander sur stackoverflow comment influencer le planificateur
Joe
2

L'une des fonctionnalités intéressantes d'Oracle sont celles comme Oracle Resource Manager qui rendent la consolidation des applications dans une base de données beaucoup plus facile que d'avoir une base de données distincte pour chaque application. Il semble que cela ne soit pas utilisé dans votre organisation. Dans le passé, j'ai conçu des bases de données consolidées pour des projets comme vous le mentionnez.

  • Chaque projet avait son propre matériel
  • Chaque projet avait ses propres licences
  • Chaque projet avait son propre stockage

Cela a fait que même le plus simple de tous les projets a mis des mois à démarrer et à une époque où le temps de mise sur le marché est extrêmement important, cela tue. Pour une raison quelconque, cela manque à beaucoup, souvent même à des fins politiques.

La solution pour cela est assez simple. Créez une base de données sérieuse, donnez à chaque projet / application leurs propres schémas et accès aux utilisateurs et lancez-vous en quelques heures au lieu de plusieurs mois. Si vous allez faire quelque chose comme ça, il pourrait être avantageux de combiner des applications qui ont des exigences de disponibilité similaires. Oracle dispose de plus en plus d'options de maintenance en ligne, mais parfois, il est beaucoup plus facile d'obtenir quelques heures d'arrêt. Avoir des fenêtres temporelles pour cela défini à l'avance pourrait éviter beaucoup de problèmes. Vous allez avoir besoin de temps d'arrêt.

Ne laissez pas les applications se connecter à la base de données, faites-les se connecter aux services dédiés à l'application en utilisant leurs propres alias tns. Cela vous permet de déplacer l'application vers une autre base de données, sans avoir à reconfigurer l'application.

BTW: les entreprises qui ont utilisé ce mode de consolidation ont économisé beaucoup d'argent chaque année, plus que les licences nécessaires pour commencer à rouler.

ik_zelf
la source
Merci pour cette contribution. Notez que la plupart des projets ont la base de données en cours d'exécution sur le (s) site (s) client, il n'est donc pas vraiment logique de les consolider. (Si je vous comprends bien par rapport à la consolidation.)
Martin
Il pourrait toujours être conseillé de le faire consolider par le client où le colis se termine. S'il est censé être une base de données intégrée, cela pourrait être un peu différent.
ik_zelf
Pour être clair, Oracle XE ne dispose pas de la fonction Resource Manager, donc cela ne serait utile que pour la consolidation dans un serveur sous licence. @ik_zelf Je sais que vous n'aviez pas l'intention d'indiquer le contraire.
Leigh Riffel
@Leigh Riffel oui, je supposais qu'il y avait une installation Oracle disponible, dans un tel scénario consolidé, je préférerais EE. La question semble viser davantage une solution intégrée.
ik_zelf