La Corp
À propos d’Oracle-l’entreprise, cela fait longtemps que j’ai dit tout le bien mal que j’en pensais. Support plus pressé de fermer un appel que de le résoudre, prix délirants, mentalité de vampires conscients que la clientèle a peu de choix croit ne pas avoir le choix, technique de prédation plutôt que de concurrence (il n’y a qu’à voir le nombre d’entreprises concurrentes rachetées en peu de temps : Siebel, Peoplesoft/JDEdwards, Sunopsis...), délocalisations massives en Inde…
Même Microsoft est plus sympathique, et même Bill Gates est moins mégalo que Larry Ellison.
Les softs
Oracle-le middleware est une collection impressionnante de logiciels sur un peu tous les thèmes informatiques : deux ETL (Warehouse Builder, le boulet maison et Sunopsis, renommé Data Integrator[1]), un serveur web (Apache en fait), un serveur d’application, une distribution de Linux (piquée à RedHat), des solutions de sécurité (douteuses, vu le passif pire que microsoftien de l’entreprise sur le sujet), un requêteur (SQLDeveloper, lourd mais pas mal ; il est juste arrivé une décennie trop tard pendant laquelle il a fallu se limiter au néolithique SQL*Plus ou investir dans l’excellent et dispendieux Toad), un outil de développement graphique qu’ils ont oublié de maintenir depuis le siècle dernier (Forms), etc.
Le pire côtoie des bijoux, et la tendance générale est au « ça marche mais qu’est-ce que c’est lourd ! », « c’est quoi cette limite débile ? », « tiens, ils l’ont réécrit en Java, c’est dix fois plus moche qu’avant », « quelle ergonomie de merde [2] »
Le joyau de la couronne
Oracle-la base était jusque là préservée de mon mépris. Depuis des années que je la matraque, je l’ai rarement prise en défaut. Il y a bien le bug occasionnel qui fait rire et douter de sa proverbiale solidité (j’ai littéralement tué une base un jour avec un TRUNCATE TABLE
suivi d’un Ctrl-C
- Dieu merci ce n’était pas en production), ou les optimiseurs de performance qui pètent facilement un câble quand le nombre de jointures devient « intéressant », ou encore le langage maison (le PL/SQL) qui est par certains côtés un peu limité mais n’est pas mal pensé…
Globalement il n’y a pas de quoi se plaindre. Surtout par contraste avec SAP.
À mon nouveau poste, la maintenance d’une base Oracle déjà installée et paramétrée depuis six mois ne s’était pas non plus révélée trop pénible. Enterprise Manager, l’interface graphique d’administration de la version 9i, a le mérite d’exister, contrairement à il y a quelques années, et si elle n’est pas un modèle d’ergonomie, elle permet de faire son travail. Certes, certaines options un peu avancées (du genre compactage de tablespaces pour récupérer quelques gigaoctets de disque) ne sont pas disponibles sans invoquer un outil non installé par défaut, mais je me suis amusé à générer en PL/SQL les ordres du genre ALTER DATABASE
nécessaires. Il est bon de savoir mettre les mains dans le cambouis de temps à autre…
De toutes façons, EM a disparu en version 10g, remplacé par une interface web beaucoup plus lourde et anti-ergonomique.
Installation
L’installation d’une base, même moderne (version 10g), c’est parfois autre chose. Certes, je complique les choses, il y avait déjà sur le serveur une autre instance (9i) que je ne tiens pas à détruire, et il y avait une autre installation 10g, bancale.
D’entrée, la base Oracle ne veut pas être réinstallée sous le même répertoire (ORACLE_HOME
) qu’une précédente installation. Cette ancienne instance peut être dans la corbeille depuis longtemps, la corbeille vidée, tous les fichiers de config connus purgés[3], et la base de registres de Windows nettoyée, Oracle refuse de réutiliser le nom et l’emplacement. Quelque part dans le .XML maintenu par le programme d’installation universel d’Oracle[4], il y a la mention de l’ancienne instance. Il faut donc relancer le programme d’installation pour désinstaller ce qui n’existe plus. Bref.
Je m’étais déjà pris le second écueil en pleine face à l’époque où je testais la version Mac OS X d’Oracle 10g (immonde bouse dont aucun script n’était adapté au dialecte maison d’Unix courant des Mac ; c’était une bêta mais tout de même...) : il lui faut une IP fixe ! Il se contrefiche que ce soit une fausse IP, qu’on lui enlève ensuite, mais pour installer, désolé, faut pas de DHCP. Sublime. La magouille pour contourner est documentée, mais ça sent quand même le bricolage (avec forcément un effet de bord par-ci ou par-là quand on fait joujou avec le DNS).
Finalement on arrive au cœur du problème système, et on est libre de nommer, dimensionner, paramétrer, sa toute nouvelle base et de se poser des questions sur la nécessité d’avoir l’option OLAP, sur comment répartir la mémoire entre SGA et PGA, etc. grâce à plusieurs assistants qui s’enchaînent les uns les autres.
Il y eut juste un petit hoquet pendant la mise en place de la base (elle était DÉJÀ dans le
TNSNAMES.ORA
, oh insulte suprême !). Problème qui n’en était pas un, vite corrigé. La suite se passe correctement. Mais l’installateur (celui qui a lancé l’assistant de configuration de base précédemment perturbé), lui, repère une ligne dans un log d’erreur (Oracle adore laisser des fichiers de logs partout, comme mon fils laisse traîner ses dessins dans tout l’appartement).
Il se plaint qu’il y a eu un problème, que je dois relancer l’assistant fautif. Puis tout se fige. Je n’ai jamais repris la main.
Quant à relancer le programme d’installation pour reprendre cette main et compléter, impossible :
le ORACLE_HOME
est en mémoire, il est hors de question d’installer par dessus. Désinstallation
du truc mal installé d’abord obligatoire... :-( Et c’est long, une installation de 10g...[5]
C’est bien simple : j’ai eu le temps de taper tout ce que vous lisez ci-dessus depuis que j’ai cliqué sur Enlever pour désinstaller un Oracle 10g. Le CPU est à 100% depuis le début (et la barre de progression à 99% depuis presque aussi longtemps), je n’ai aucune idée de ce qu’il fait réellement, mais toutes les minutes il indique supprimer un morceau différent. Je suspecte qu’il sous-traite en Inde par Internet pour être aussi lent, c’est pas possible autrement. Même la désinstallation de Norton sur le portable tout neuf de ma voisine a été plus courte.
Bien sûr, un programme de désinstallation figé supprimé ne peut pas forcément être relancé : apparemment il se supprime lui-même avant la fin de la désinstallation. Comment désinstallé-je sans programme de désinstallation ? (Ouf, il était encore sur le CD).
Moralité : pour désinstaller un
ORACLE_HOME
, le plus rapide est :
- de le détruire par l’explorateur,
- de lancer l’installateur universel et de lui faire supprimer la référence à ce Home.
Il faut savoir être bourrin parfois.
PS : Ah, j’ai cru être plus finaud que lui en repartant de zéro, en créant
l’instance d’abord, et en créant la base de données dans un deuxième temps.
Au premier abord (longtemps après, c’est dingue le temps qu’il lui faut
pour créer une base vide), cela fonctionne. Au deuxième abord on s’aperçoit
qu’il n’y a ni listener actif, ni TNSNAMES.ORA
renseigné. Trop compliqué à
rajouter spontanément je suppose. Les docs de formation confirment que c’est à bibi de se taper le boulot. Bravo !
Finalement, après avoir joué un temps avec les TNSNAMES.ORA
et les LISTENER.ORA
, le $PATH
et toutes ces sortes de choses, fouillé sur le web, j’ai mes bases fonctionnelles, et utilisables depuis les deux versions (9i et 10g) de SQL*Plus. Même l’interface web d’administration fonctionne. Par contre, iSQL*Plus refuse de s’installer, il plante en demandant d’envoyer au support une poignée de fichiers vides. On fera sans.
PS bis : Depuis que j’ai brouillonné les lignes ci-dessus, j’ai également dépanné un collègue pas très porté sur la technique à se dépêtrer de son installation. J’ai découvert qu’une 9i installée après désinstallation (sauvage ?) d’une 8 utilisait les fichiers de configuration (TNSNAMES.ORA
et LISTENER.ORA
) laissés par ladite 8, mais installait quand mêmes les siens. C’est toujours sympa les fichiers en double. SQL*Plus fonctionnait très bien, mais impossible de lancer la console d’administration. Ce n’est pas la cause qui m’a fait braire (un SERVICE_NAME
au lieu d’un SID
), mais le message d’erreur totalement absent. Il est rare qu’une application ne réagisse pas du tout après un clic sur OK
.
Quand je pense qu’il paraît que le libre à la réputation d’être compliqué et difficile à installer...
Notes
[1] Du même nom que le concurrent détenu racheté par Business Objects, rien que pour tenter de lui ravir la première place sur Google.
[2] À propos d’ergonomie : depuis que je connais Oracle, SAP et Business Objects, je peste beaucoup moins contre les outils Microsoft. C’est pas Apple certes.
[3] Pour ceux qui ne connaissent pas, Oracle est un grand amateur de très nombreux fichiers de configuration répartis un peu partout sur le disque dur : config du listener, config des services réseaux, fichiers de contrôle de la base, fichier d’initialisation d’icelle, fichier binaire de configuration... Une véritable orgie née du louable mais ici débile souci de ne surtout pas changer les habitudes des anciens DBA maison au prix de la santé mentale de milliers de clients.
[4] Vous avez vu ? Encore un programme qui croit qu’il fait mieux que les outils d’administration du système d’exploitation et qu’une norme simple et stricte à partir du système de fichiers pour gérer ce qui est installé sur une machine.
[5] Moins que Business Objects version XI, mais celui-là est hors concours.
5 réactions
1 De Kokliko - 19/02/2008, 14:42
+1000
oh oui que c'est une bouse cet Oracle, ses installations de m*$ù*, son Oracle_home que je n'ai toujours pas compris, son tnsnames.ora, etc... !
2 De Casimir - 03/03/2009, 14:57
Super, le mec qui n’a suivi aucune formation Oracle, n’ pas pris la peine de se documenter sur la méthode d’installation, etc., qui espère réussir une installation “au feeling”, qui bien entendu se plante et au final nous sort “Oracle c’est une bouse”. C’est étonnant, mais moi qui ai suivi une seule formation Oracle et ai pris la peine de me documenter, j’ai réussi à faire cohabiter Oracle 9i, 10g et 11g sur une même machine, sans aucun souci.
Parfois, le problème n’est pas dans le logiciel, mais plutôt entre la chaise et le clavier…
3 De Le webmestre - 03/03/2009, 20:25
@Casimir-le-troll : Si tu crois que c’était la première base que j’ai installé à l’époque… Suivre l’assistant pour installer des bases vierges, tout le monde peut le faire. Et oui, j’ai eu les formations, et oui j’ai lu les docs (comme tu ne l’as pas lu ci-dessus). Mais les vraies merdes n’arrivent que dans les configs bizarres, avec de l’historique, et c’est là qu’on voit la *vraie* solidité des softs d’installation - et de désinstallation. En l’occurence, c’est la cata : la machine qui fige, les fichiers de config éparpillés ou les messages d’erreurs absents, c’est dans le soft, pas ailleurs.
4 De fred - 13/05/2009, 11:48
DBA, c’est un métier…
Je gére 200 bases 9i/10g sur une quizaine de serveurs (windows/aix). J’utilise Oracle Entreprise Manager (GRID) pour la supervision de tout ça, en deux ans et demi, je n’ai pas vu une instance tomber.
Une fois la première base 10g créée, je recommande d’utiliser des copies de la base et la retailler (ou garder une instance minimale vide en backup), plutôt que d’utiliser l’assistant de création de base est pénible…
Il y a des bases avec des config tordues, :
- une base avec 400.000 partitions (c’est énorme…), elle pose des pb pour la collecte des statistiques, obliger de desasembler des vues systèmes et de lancer le calcul en parallèle sur 8 processeurs dans des jobs qui se repartissent les tables à analyser pour avoir des perfs interessantes…
- des bases répliquées (dataguard), facile à mettre en oeuvre en 9i, très compliqué à faire évoluer vers 10g sur aix, grosse galère, même avec le support gold 24/24… Mais après 3 semaines de galère, plus aucun problème avec et une doc de 80 pages pour tout expliquer et documenter toutes les erreurs rencontrées…. Maintenant, on l’oublie et tout se déroule sans problème en switch over ou failover
- une base qui grossit de 1% par jour (4 à 5Go par jour) qui finallement tourne bien après quelques soucis de migration de 9i vers 10g : le moteur générait quelques millions de requêtes internes par seconde sur la base… (le petit IBM P570 avec une DS8000, 8 procs et ses 45Go de RAM dépote pas mal…)
- l’accès contrôlés par ligne d’une base partagée par plusieurs clients qui n’ont pas le droits de voir ou modifier les données des autres, via le Virtual Private Database (VPD, FGA), pas de soucis, les docs sont bien faites.
- évidemment il vaut mieux Oracle sous Unix que sous Windows parce que l’OS est pourri et faire des devs propres sur un système pourri c’est un peu comme construire des tours jumelles sur un marécage (au moindre avion qui passe, ça tombe). Les reinstall succesivent peuvent pourrir les assistants, surtout si elles n’aboutissent pas, sous Unix, 0 soucis.
- dommage qu’Oracle a écrit les agents en Java, parce que c’est vraiment une daube ce langage au niveau perf et utilisation de ressources. Avec une quarantaines d’instances sur le serveur, on passe son temps à superviser et ne rien faire… heureusement WLM est là pour limiter les ressources utilisées par les processus.
En CCL, avec de la pratique et en trainant sur les bons forums, on peut s’en sortir haut la main. Enfin, choisir Oracle, c’est choisir la Rolls, au prix ou ça coute, faut pas l’utiliser pour des bases qui tiennent dans la poche.
Si vous avez des soucis avec, je peux aider :-)
5 De Le webmestre - 13/05/2009, 19:05
@fred : Merci pour la proposition d’aide mais ça va mieux maintenant. Oracle, ce n’est pas moi qui l’ait choisi pour mes projets actuels, il est souvent là « par défaut », et il n’y a que les techniques qui voient le coût en administration.
Pour moi, le max de confort était atteint avec Oracle 9i. Base légère pour les machines actuelles, avec les fonctionnalités qui vont bien pour ce que j’en fait, PostgreSQL voire MySQL suffirait tout autant. OEM perfectible mais acceptable.
Tandis que la 10g, si on ne décide pas d’en faire son métier et d’investir en temps (et on l’impute sur quoi ?) et en matos (mon Dieu que ça mange !), on peut salement morfler. Quant à l’interface d’admin web, elle a le mérite d’exister mais quelle lourdeur…