mercredi 31 octobre 2012

Incapable d'émettre un droit malgré la clause "With Grant Option"


Après avoir octroyer le droit d'exécution sur le package UTL_HTTP à un schéma particulier avec la clause "With Grant Option", ce dernier n'a pas été en mesure d'émettre à son tour, ce même droit à un autre schéma malgré la présence de la clause. Lors de l'émission du privilège, l'erreur "ORA-01031 INSUFFICIENT PRIVILEGES" est soulevé. Ce qui ne fait aucun sens.

Après quelques recherches, j'ai alors remarqué que ce comportement est un bug répertorié chez Oracle et il a été observé sur la version 11.2.0.3 de la base de données. (Bug 13036331 : ORA-01031 INSUFFICIENT PRIVILEGES WHEN GRANTING EXECUTE ON DBMS PACKAGES)

Étrangement, mais heureusement, il y a une solution de contournement. Dans mon cas, il a suffit d'effectuer un "Alter system flush shared_pool;" puis d'émettre à nouveau le privilège initial qui comportait la clause "With Grant Option" et ensuite, d'octroyer de nouveau le privilège à l'autre schéma dont il était impossible de faire. Cette fois-ci, ça l'a réussi.

mercredi 10 octobre 2012

Erreur de connexion à la base de données sous Microsoft Windows


La majeure partie du temps, je travaille sur les plate-formes Unix et Linux et, dernièrement, j'ai eu à installer et configurer une nouvelle base de données sous Oracle Fail Safe sous Microsoft Windows.

L'installation s'est très bien déroulé. Lorsque rendu à l'étape d'ajouter la base de données au groupe de ressources du cluster, nous avions rencontré des erreurs qui mentionnaient qu'il était incapable de se connecter à la base de données. Afin de diagnostiquer le problème, j'ai alors démarré un invite de commandes puis démarré SQL*Plus. J'étais aucunement capable de me connecter à celle-ci, que se soit avec "/ as sysdba" ou avec une chaîne de connexion.

Avec "/ as sysdba", j'obtenais l'erreur "ORA-12560:TNS:protocol adapter error" tandis que lorsque je mentionnais une chaîne de connexion définie dans le "tnsnames.ora", je recevais l'erreur "ORA-12518 Tns: Listener could not hand off client connection".

Après avoir vérifié le statut du "listener", la configuration dans les fichiers listener.ora, tnsnames.ora, sqlnet.ora, etc.. j'ai alors pensé que, dans le merveilleux monde de Windows, il y a des services pour la base de données Oracle... En ouvrant le gestionnaire de services, j'ai remarqué aussitôt que le service "OracleInstanceORCL" n'était pas démarré. Je l'ai tout simplement démarré puis j'ai été en mesure de me connecter avec SQL*Plus des deux façons mentionnées précédemment.

L'envergure du problème n'est pas toujours proportionnel aux efforts déployés à le résoudre.

De grands changements à l'architecture d'Oracle Database



Oracle a annoncé au cours de l'événement Oracle Open World 2012 qu’il se lançait plus que jamais vers le « cloud computing » et, que la prochaine version de la base de données, en l’occurrence 12c sera « multi-tenant ». 

Pour bien comprendre la signification de « multi-tenant », il faut savoir que le mot anglais « tenant » signifie « locataire » en français et que « tenancy » signifie « location ». Dans le monde des technologies de l’information, le «  Multitenancy »  est un principe architectural où une seule instance du logiciel est utilisée pour exécuter un service pour plusieurs clients. Vous ne serez pas surpris de savoir que le principe « Multitenancy » est considéré comme l'un des attributs essentiels de l'informatique en nuage (cloud computing).

Lors des quatre dernières années, Oracle a révisé l’architecture logicielle pour permettre la gestion d’une multitude de bases de données (plusieurs locataires) à partir d’une seule installation tout en contrôlant de façon distincte les ressources matérielles telle que la mémoire, les processus, la sécurité,  et bien d’autres aspects forts utiles dans un environnement partagé de type « cloud ». Ce n’est pas par hasard que la future version portera dorénavant un « c » pour « cloud » au lieu d’un « g ».

Sachez que ce principe n'est pas universellement accepté et soutenue dans l'industrie du logiciel, ce qui peut être une source de différenciation parmi les diverses solutions offertes. Il faut s’attendre que chacun des fournisseurs tireront sur leur bout de couverture pour s’approprier les mérites de ce principe et se vanteront que leur solution est la meilleure.

Il a aussi été mentionné qu’une nouvelle fonctionnalité permettra à la base de données Oracle 12c de surveiller à quelle fréquence les données sont accédées et par quelles types d’opérations (SELECT / INSERT / UPDATE / DELETE). En obtenant ces informations, on peut facilement imaginer qu’elles permettront d’identifier les données qui sont rarement consultées et qu’elles pourraient être archivées.