PostgreSQL vs Oracle : l'écart se rétrécit

PostgreSQL vs Oracle : l'écart se rétrécit Au fil des versions, PostgreSQL est devenue l'alternative open source la plus crédible à Oracle Database. Le SGBDR de l'éditeur américain reste néanmoins incontournable pour gérer des bases volumineuses et critiques.

Le 29 septembre dernier, la version 9.6 de PostgreSQL était rendue publique, apportant son lot de nouvelles fonctionnalités. Depuis son lancement en 1995, le système de gestion de base de données relationnelle (SGBDR) open source s'est enrichi au fil des années. Il a fini par s'imposer comme le rival le plus sérieux à Oracle, qui domine depuis près de 40 ans le marché des bases de données. A l'heure du choix, quelles questions se poser ?

Que proposent les deux SGBDR en matière de sauvegarde et restauration ?

L'archivage et la récupération sont des éléments cruciaux en cas de défaillance du système. Jusqu'à un passé récent, Oracle présentait un avantage certain en matière de réplication de données grâce à son dispositif de sauvegarde incrémentale. "Depuis sa version 9, PostgreSQL a fait des progrès pour se rapprocher sur ce point de la solution Oracle Data Guard", observe Florent Siebert, consultant et responsable du pôle développement cosourcing chez Setra Conseil.

Depuis sa version 9, PostgreSQL a fait des progrès

La version 9.1 de PostgreSQL a introduit la réplication synchrone sur des bases de secours, et la 9.2 le stand-by en cascade - c'est-à-dire une réplication de la base primaire sur une base de stand-by qui va elle-même se répliquer sur une autre base de stand-by, et ainsi de suite. Avec la 9.4, arrive la réplication logique. En ne répliquant que certains jeux de données, le SGBDR simplifie et accélère les sauvegardes tout en économisant de la bande passante. Enfin avec la 9.6, PostgreSQL permet de gérer plusieurs bases stand-by en mode synchrone.

Qui l'emporte sur la gestion de gros volumes de données ?

La performance et la disponibilité d'une grosse base de données dépendent de la capacité du SGBDR à découper une table en plusieurs parties indépendantes. Ce qu'on appelle le partitionnement. PostgreSQL se fonde sur le principe d'héritage de tables. Un processus de clés spécifiques permet à une table d'acquérir les propriétés d'une autre table. Ce système nécessite toutefois un travail de mise œuvre à la fois complexe et manuel.

Un critère rédhibitoire pour Michel Salais, dirigeant du cabinet Msym et formateur chez Orsys. "Comment imaginer faire 2 000 partitions à la main dans PostgreSQL ? Ce n'est pas crédible", souligne-t-il. A l'inverse, une base de données Oracle peut accueillir un nombre très élevé de partitions. Depuis la version 11g de son serveur de données, le fournisseur américain a, aussi, introduit une option de partitionnement par intervalle qui permet de créer automatiquement des partitions selon un espace-temps préalablement défini.

Oracle, maître incontesté dans la gestion des gros volumes de données

Pour Michel Salais, "Oracle reste le maître incontesté dans la gestion des gros volumes de données, notamment en termes de pics de charge". Le système de partitionnement d'Oracle est toutefois une option payante que l'on retrouve uniquement dans son offre "Entreprise Edition", la plus haut de gamme.

Dans quels environnements les deux technologies évoluent-elles ?

Les deux SGBDR tournent sur les architectures et systèmes d'exploitation les plus courants (Windows, Linux, FreeBSD...). "Oracle va toutefois exiger davantage de ressources et d'espace de stockage alors que PostgreSQL peut tourner sur de petites machines et même sur un Raspberry Pi", signale Florent Siebert. De la même manière, PostgreSQL peut fonctionner sur des versions non entreprise de Windows et Linux.

Les deux solutions peuvent gérer des données hétérogènes et des objets complexes comme XML, Json ou Blob. A signaler qu'Oracle propose un langage propriétaire, PL/SQL, utilisé dans le cadre de bases de données relationnelles.

Des migrations initiées vers PostgreSQL pour des raisons de coûts

Selon une idée reçue, une solution open source serait par nature plus ardue à appréhender. Il n'en est rien selon nos deux experts. "La mise en œuvre de PostgreSQL ne nécessite pas de compétences spécifiques par rapport à Oracle", estime Michel Salais. "Il y a bien sûr des différences mais n'importe quel administrateur de base de données Oracle peut prendre la main sur PostgreSQL."

Quid du prix et du support ?

PostgreSQL est un outil libre – donc gratuit - disponible selon les termes d'une licence de type BSD. Cela veut dire qu'il peut être modifié et distribué sans restriction. Des éditeurs proposent des solutions basées sur le code de PostgreSQL, avec des fonctionnalités avancées. La distribution PostgreSQL la plus connue est celle d'EnterpriseDB. Splendid Data propose, elle, PostgresPURE, une version packagée intégrant PostgreSQL et d'autres outils open source. A noter qu'Oracle distribue aussi une solution gratuite, Oracle Express Edition, mais limitée en termes de volume de données.

Le support n'est pas en reste, de plus en plus de sociétés de services se spécialisant dans l'expertise PostgreSQL, à l'image de Dalibo en France. La solution open source dispose, en outre, du soutien d'une très importante communauté, notamment francophone. "Ce qui fait la richesse du produit et de sa documentation technique", applaudit Florent Siebert.

Une forte communauté dans les deux camps

Oracle fédère également une communauté d'administrateurs à travers des forums dédiés. Le fournisseur américain peut aussi mettre en avant la pérennité de la large gamme d'outils gravitant autour de sa base de données alors que l'évolutivité des extensions de PostgreSQL dépend de la bonne volonté de contributeurs.

A l'heure du verdict, qui emporte ?

Le constat des experts est unanime : PostgreSQL est l'alternative la plus crédible à Oracle dans la gestion d'une base de données relationnelle. Ils observent un mouvement de migration de l'un à l'autre, non pour des raisons techniques (les deux consultants saluent l'excellence jamais mise à défaut d'Oracle Database) mais de coûts. "Si je n'ai pas besoin de toute la puissance d'Oracle pourquoi payer ?", interroge Michel Salais. Pour autant, PostgreSQL ne couvre pas - comme on l'a vu - tout le spectre des besoins et Oracle sera privilégié pour les bases de données volumineuses et/ou critiques.

Parmi les pionniers français de PostgreSQL, on trouve les collectivités locales qui doivent gérer des données cartographiques au sein de système d'information géographique (SIG). La SNCF est aussi adepte de l'outil open source. Le responsable de la stratégie en logiciels libres à la DSI du transporteur ferroviaire vient d'ailleurs d'être nommé vice-président de l'association PostgreSQLFr.