jeudi 23 septembre 2010

OOW 2010 – Database Track – Jour 4…le dernier!

C'est peut-être le dernier jour mais non le moindre en fait de contenu. Aujourd'hui, j'ai eu droit à des conférences sur l'optimisation avec les outils ASH et AWR et, une autre à propos d'Oracle Active Data Guard. Comme toutes les autres sessions, elles furent très intéressantes et remplies d'informations pertinentes.

La première conférence était présentée par nul autre que Thomas Kyte. Disons que ça commence bien la journée! Comme d'habitude, il a su me captiver dès la première seconde et ce, jusqu'à la toute dernière.

Ce que j'ai particulièrement aimé (et que j'aimerai probablement toujours), c'est les façons d'effectuer de l'optimisation à partir de simples lignes de commandes avec un outil tel que SQL*Plus. Les raisons sont bien simples car en mandat nous n'avons pas toujours recours à des outils graphiques et, aussi, j'aime voir les commandes exécutées et les résultats. Je ne suis pas trop fervent des boites noirs par lesquels une multitude de commandes sont exécutées sans que nous ne sachions ce qui est accomplis.

Alors, voici quelques faits à propos d'ASH ainsi qu'AWR :

ASH
  • ASH = Active Session History
  • ASH est toujours actifs, donc, lorsqu'un problème survient, on peut directement s'y référer puis comparer les valeurs actuelles avec celles précédant le problème.
  • Simplifie l'investigation car autrement un problème peut être difficilement reproduit
  • Ce mécanisme accède directement à la structure du noyau de la base de données
  • Ne contient pas tous les énoncés SQL qui ont été exécutés. On y retrouve seulement ceux qui ont été actifs et qui sont plus " gourmands "
  • Un échantillon d'énoncé SQL actif est collecté à chaque seconde en mémoire. Le processus " MMON Lite (MMNL) " s'occupe d'accomplir cette tâche.
  • L'échantillon est conservé dans une cache (buffer) circulaire dans le SGA. Par défaut, il a la dimension de 2 MB par CPU (consulter la vue V$SGASTAT pour la taille totale utilisée)
  • Les données d'ASH sont principalement consultées via la vue V$ACTIVE_SESSION_HISTORY
  • Une partie de l'échantillon utilisé par ASH alimente l'AWR
  • Permet d'effectuer une analyse basée sur le temps de traitement sur la base de données (DB Time)
  • Les données proviennent principalement des vues V$SESSION et V$SESSION_WAIT
  • Si nous effectuons la somme des secondes d'ASH, nous obtiendrons le " DB Time "
  • La page " Top Activity " dans Oracle EM est basée sur les données d'ASH. Le pourcentage d'activité correspondant à un énoncé SQL correspond au pourcentage du " DB Time "
  • Il ne faut pas utiliser des fonctions telles que MIN, MAX et AVG avec les données provenant d'ASH car les résultats seront biaisés. Les données proviennent d'échantillon et les longs traitements fausseront les résultats.
  • Le contenu d'ASH peut être exporté puis chargé dans une table ou un chiffrier
  • ASH n'est pas un résultat de trace mais plutôt de l'échantillonnage

AWR
  • AWR = Automatic Workload Repository
  • AWR est présent dans toutes les éditions de base de données
  • Il est constitué de statistiques de base (ex. physical reads), de statistiques sur les énoncés SQL (disk read par SQL), mesures (physical reads/seconde) et d'information (échantillon) provenant d'ASH.
  • Un cliché (snapshot) provient d'un processus qui extrait les données de la mémoire puis qui les écrient sur disque.
  • Ne jamais comparer deux clichés dont un redémarrage de base de données a eu lieu durant la période couverte par les clichés
  • Le package DBMS_WORKLOAD_REPOSITORY permet de gérer l'AWR
  • La rétention par défaut est de 7 jours, Oracle supprime automatiquement les données plus anciennes. Il est recommandé (bonne pratique) de conserver un minimum d'un mois.

En conclusion, Oracle Open World fut une expérience formidable. J'ai grandement apprécié les conférences. Je fus très impressionné par l'ampleur de l'événement. Bravo à Oracle et je leur dit : " Two Thumbs Up "

mercredi 22 septembre 2010

OOW 2010 - Jour 3

Trop souvent les entreprises négligent complètement la prise de copie de sécurité et, ceux qui en prennent, négligent les essais de recouvrement. Pourquoi les gens aiment tant jouer avec le risque ? Personnellement, ça me renverse! Jamais je ne pourrais avoir la conscience tranquille tant et aussi longtemps que je n'aurais pas effectué des copies de sécurité et réaliser des scénarios de recouvrement. Ceci devrait être la ou l'une des premières règles qu'un DBA devrait suivre. D'autant plus, pouvez-vous bien me dire pourquoi qu'il y a tant d'entreprises qui n'utilisent pas RMAN ? Cet utilitaire a fait ses preuves depuis plusieurs années et aucun autre utilitaire ne peut être aussi fiable que lui.

Je vous parle de sauvegarde et de recouvrement car aujourd'hui, j'ai eu l'opportunité d'assister à des conférences au sujet de " Recovery Manager ". Le premier conférencier nous à présenter une multitude de scénarios de recouvrement. Certains dont je classifierais de classique et d'autres plutôt tordus qui ne sont pas supporté par Oracle. Ces derniers sont plutôt pratiques quand nous n'avons vraiment pas le choix et qu'il faut ressusciter une base de données. Voici ce qui peut être utile pour effectuer un recouvrement incomplet et forcer l'ouverture de la base de données :
  • _ALLOW_RESETLOGS_CORRUPTION=TRUE
  • _CORRUPTED_ROLLBACK_SEGMENTS=(RBS1,RBS2,..)
  • UNDO_MANAGEMENT=MANUAL
  • EVENT = "10015 TRACE NAME ADJUST_SCN LEVEL 1"

Quand il n'y a vraiment plus de possibilité alors vous pouvez vous en remettre au support d'Oracle puis utiliser " Data Unloader (DUL) ". Cet utilitaire permet de lire les données directement dans les fichiers de données sans passer par le noyau d'Oracle.

Autres points d'intérêt abordés lors des conférences :

  • Il est possible de recréer un fichier de paramètre (pfile) à partir de la mémoire. Il suffit d'exécuter la commande " CREATE PFILE " et spécifier à la toute fin " FROM MEMORY ".
  • DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER() retourne le SCN en cours de la base de données.
  • Il est possible de restaurer un fichier de données lors de la perte de celui-ci et que vous n'avez pas de sauvegarde de ce fichier. Si le fichier de données est inscrit dans le fichier de contrôle, la commande RESTORE créée le fichier de données dans l'emplacement d'origine et la commande RECOVER applique les journaux nécessaires pour le fichier de données.
  • Si vous soupçonnez une corruption de blocs de données, DBVERIFY est un utilitaire qui effectue une vérification de l'intégrité de la structure des données physiques sur une base de données.
  • La commande BLOCKRECOVER peut restaurer et récupérer des blocs individuels au sein d'un fichier de données. Cette procédure est utile quand seulement un petit nombre de blocs sont corrompus.
  • Le package DBMS_BACKUP_RESTORE est utilisé comme une interface PL/SQL en ligne de commande pour le remplacement des commandes natives RMAN.

Oracle ORION

Oracle ORION est un outil pour vérifier les performances de type I/O pour les systèmes de stockage qui sont destinés à être utilisés pour les bases de données Oracle. Les résultats obtenus sont utiles pour comprendre les capacités de performance d'un système de stockage, soit pour découvrir les causes qui pourraient influer sur le rendement d'une base de données Oracle. ORION est un outil autonome, on n'a pas à créer et d'exécuter une base de données Oracle pour l'utiliser.


Pour le plaisirs, je vous invite à regarder les vidéos suivants sur youtube.com :

OOW 2010 - Jour 2


Aujourd'hui ce fut encore une fois une journée bien remplie. J'ai eu droit à plusieurs conférences sur des nouveautés et quelques unes à propos de l'optimisation.

Depuis que je suis ici, il y a un mot qui revient sans cesse. Que se soit Oracle, les partenaires, les exposants, etc... ils l'utilisent à profusion. C'est sans contredit, la tendance. Le mot en question est " cloud ". Donc, je ne pense pas me tromper en prédisant que la prochaine version de la base de données, qui sera la version 12, sera suivi de la lettre " c " au lieu de la lettre " g ". Alors, préparez-vous à voir " Oracle 12C " très bientôt ! :)

Avis à ceux qui font une collection de t-shirts, OOW est LA place. Tous les exposants font des pieds et des mains pour nous offrir des t-shirts gratuitement. Il vous suffit de remplir un mini sondage et voilà !

Il y a un conférencier qui à dit ce qui suit et je suis particulièrement d'accord avec lui :
" Trop souvent les gens (DBA, développeurs, etc...) n'exploitent pas les fonctionnalités offertes par les nouvelles versions. Les gens sont souvent trop conservateurs. Il faut laisser place aux nouveautés puis prendre le temps de les découvrir ".


Edition Based Redefinition (EBR)

Cette nouvelle fonctionnalité permet de mettre en place sur une même base de données différentes versions d'objets d'un schéma appartenant à une application tels que les procédures, fonctions, packages, triggers, vues et synonymes. Elle permet de mettre à jour une application sans interruption. En d'autres mots, c'est une solution de haute disponibilité pour le PL/SQL. Voici d'autres points d'intérêt :
  • C'est gratuit (je suis sérieux!) et inclut avec toutes les éditions d'Oracle
  • Les éditions sont complètement indépendantes l'une de l'autre et ils coexistent, donc le retour arrière est simple et rapide.
  • L'édition par défaut s'appelle : ORA$BASE
  • Nouveau privilège : ENABLE EDITION
  • Trois nouveaux objets : Edition, Editioning view et Crossedition trigger
  • Plusieurs nouvelles vues du dictionnaire ont été créées pour répondre au mode Edition. Par exemple, il faut consulter les vues avec le suffixe " _AE ", qui signifie " All Edition " pour voir tous les objets de toutes les éditions.
  • Pour simplifier la gestion des éditions pour une application, il suffit de créer une vue par table ayant le même nom. Préalablement, les tables doivent toutes être renommées. Donc, vous comprendrez que l'application accèdera maintenant aux vues au lieu des tables.
  • Lors de la création d'une édition (CREATE EDITION), tous les objets de l'application sont créés automatiquement dans la nouvelle édition.
  • Les triggers de type " crossedition " sont optionnels et peuvent être utilisés pour de la conversion de données.
  • Les services de bases de données peuvent être reliés à une édition particulière.
  • La fonction SYS_CONTEXT permet d'afficher l'édition en cours
  • La commande ALTER SESSION permet de passer d'une édition à une autre.
Avec un peu de recul, je me dis que cette merveilleuse fonctionnalité va être un cauchemar pour les DBA car nous risquons d'assister à une explosion d'objets. Je crois qu'un contrôle rigoureux devra être effectué puis des règles d'épuration seront nécessaires suite à la création de nouvelles éditions.

Je vous invite à consulter le site suivant pour plus de détails : www.morganslibrary.org. Sur ce site, vous y trouverez des scripts très utiles pour la création d'une édition.

Et pour terminer, voici les principales étapes à une approche à la résolution de problème :

  • Ne pas chercher seulement sur la base de données, mais sur l'ensemble des composantes qui sont impliqués
  • Effectuer un changement (correction) à la fois
  • Utiliser les bons outils pour diagnostiquer et corriger
  • Documenter les changements et les impacts
  • 2 étapes de résolution :
  • Correction rapide : La résolution du problème n'élimine pas nécessairement toujours le problème. On pourrait appeller cela une solution de contournement
  • Correction définitive : Chercher à régler le problème une fois pour toute
  • Prendre le temps de comprendre pourquoi le problème est survenu
  • Accepter que la cause du problème ne soit pas toujours trouvée

mardi 21 septembre 2010

En direct d'OOW 2010


Vu ma présence à Oracle Open World à San Francisco, j'ai décidé de vous faire profiter des informations que j'ai reçues. Je n'irai certainement pas dans les détails car ça serait très fastidieux et, de plus, je n'ai assurément pas toutes les informations. Par contre, j'espère que cela vous informera suffisamment pour que vous soyez en mesure de rechercher plus de détails sur les sujets que j'aborde.


Weblogic Suite

  • La suite Weblogic ne cesse de s'améliorer de version en version. Et, c'est bien réel car le produit est de plus en plus complet et stable.
  • Weblogic Server pour développeurs sera supporté sous MAC OS X
  • JRockit Virtual Edition (VE) est utilisé au lieu d'un " guest OS ". En plus d'être beaucoup plus simple et sécuritaire, il est 30% plus performant.
  • Oracle Virtual Assembly builder tool est un nouvel outil permettant de cataloguer toutes les VM utilisées. Cet outil permettra de concevoir des graphiques, comme de la modélisation, pour répertorier les VM utilisées dans votre infrastructure tout en précisant diverses propriétés générales ainsi que des informations concernant le déploiement.
  • Glassfish, vous connaissez? C'est un logiciel " open source " très populaire. Ce dernier est très léger et c'est la référence en termes d'implantation Java EE 6 ainsi que Java EE 7. La version 3.1 reviendra avec le clustering qui avait été délaissé avec la version précédente.


Performance

Fermé les curseurs!!! Souvent, les développeurs conçoivent des unités de traitements sans tenir compte que ceux-ci restent ouverts et qu'ils ne sont plus utilisés. Savez-vous que le nombre de curseurs pouvant être ouvert est configurable via un paramètre sur une base de données et que ceux-ci consomment de la mémoire. Et, bien, maintenant, vous le savez ;)

Il ne faut pas négliger l'utilisation du partitionnement, de la compression, du parallélisme, des différents types de jointure, des types de tri, etc… Ces sont des fonctionnalités qui doivent être exploitées afin d'optimiser tous les traitements des applications que vous utilisez. Par exemple le partitionnement permet de regrouper les données selon une clé particulière telle que le temps ou une région. Lors de l'accès de ceux-ci, vous en bénéficierez car il y aura moins de temps d'attente et surement moins de lecture sur disques. De plus, on n'est pas obligé d'appliquer le partitionnement sur une méga grosse table.

Autres points à propos des types de jointures, pour ceux qui ne sont plus sous Oracle 9i, sachez que le " hash join " est bien souvent plus performant que le " sur utilisé " Nested Loop ". Ceci s'applique principalement lorsque plusieurs données de deux tables doivent être mise en jointure.

Lors de l'optimisation de requête, on devrait vérifier le nombre de données qui devra être obtenu indirectement pour que la requête soit complétée au lieu du nombre de rangées que la ou les tables contiennent dans l'énoncé SQL que nous tentons d'optimiser.


Exalogic Elastic Cloud

Voici le nouveau terme que vous entendrez parler dans les prochains jours à venir. Larry Ellison en a fait son sujet lors de l'ouverture d'Oracle Open World. Selon l'annonce qu'il a fait, ce sera le " Data Center " du 21ème siècle. C'est une solution complète impliquant les logiciels (software) et le matériel (hardware) qui ont été conçu pour travailler ensemble. Si vous fouillé le Web, je suis persuadé que bien des infos doivent courir entre autres sur Tweeter.


SQL Performance Analyser (SPA)

Cette fonctionnalité fait partie de " Real Application Testing ". Il n'est pas gratuit mais il procure une réelle assurance lorsque vient le temps d'appliquer des changements sur un environnement de production. SQL Performance Analyser peut être utilisé avec Oracle Dataguard. Cela vient de donner une valeur ajoutée à Dataguard.

SPA devrait être utilisé peu importe la nature du changement comme lors d'un changement de plateforme, de serveur, de type de stockage (ASM), nouvelle collecte de statistiques, migration vers une nouvelle version, et bien d'autres.

Nous avons eu droit à des cas vécus de " DirectTV " et " Bank of America ". Leurs expériences ont démontrés que l'utilisation de SPA fut très bénéfique. Celui-ci a permit d'identifier les impacts de la migration sur leurs applications et d'appliquer les changements qui s'imposaient. Les points qui ont ressortis sont :
  • Limitation sur les " bind variables "
  • Analyse des requêtes rapides et efficaces
  • Un minime changement peut avoir un impact majeur
  • Extraction des requêtes les plus fréquentes
  • Comparaison par la statistique " buffers get " et le nombre d'exécution
  • Conversion de trace SQL en SQL Tuning Sets (STS)

jeudi 16 septembre 2010

Recouvrement suite à une copie en mode "begin backup"

Pour répliquer rapidement un environnement complet, nous utilisons le logiciel "ShadowImage". Cette opération permet de créer une image complet d'un serveur pour ensuite diagnostiquer des problèmes majeurs survenu sur cet environnement.

L'environnement répliqué consiste à un serveur Sun Solaris 10 sur lequel réside une base de données 10gR2 Enterprise Edition.

Pour que la cpoie répliquée de la base de données soit fonctionnelle, nous mettons celle-ci en mode "begin backup" avant de démarrer le processus de copie. Malgré cela, une fois que le processus est terminé, nous rencontrons des problèmes avec la base de données copiée. Voici les problèmes rencontrées avec leurs solutions :

Recouvrement du tablespace SYSTEM
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/uprodz2-obd001_u02/oradata/P059/system01.dbf'


Mettre la base de données en mode "mount" :

sqlplus / as sysdba
shutdown immediate
startup mount

2 scénarios possibles :

1. Recouvrement à partir d'un copie de sécurité des controlfiles

1.1 Récupérer des anciens CONTROLFILE qui furent générés par la commande :

alter database backup controlfile

to '/u01/home/dba/oracle/admin/ORCL/udump/control.2010-09-16-09:00.bkp';

prendre un copie du controlfile puis copier le backup controlfile aux 2 endroits

1.2 Recouvrer la base de données à l'aide des controlfiles récupérés

Recover database until time '2010-10-15 09:00:00' using backup controlfile;
OU
Recover database using backup controlfile until cancel;

Si nécessaire, ne pas hésiter à proposer les redofiles non archivés comme fichier d'archive afin de compléter le recouvrement

1.3 Ouvrir la base de données

alter database open resetlogs;

il est fortement conseillé de prendre une copie de sécurité de toute la base de données avant d'exécuter une ouverture de la base de données avec l'option "RESETLOGS".

2. Recouvrement à partir des controlfiles courants (actuels)

2.1 Recouvrer la base de données avec la commande suivante à partir des controlfiles actuels

Recover database until time '2010-10-15 09:00:00' using backup controlfile;

Si nécessaire, ne pas hésiter à proposer les redofiles non archivés comme fichier d'archive afin de compléter le recouvrement

2.2 Ouvrir la base de données

alter database open resetlogs;

il est fortement conseillé de prendre une copie de sécurité de toute la base de données avant d'exécuter une ouverture de la base de données avec l'option "RESETLOGS".


Corruption du tablespace UNDO

Lors du démarrage de la base de données, si celle-ci tarde beaucoup à démarrer ou que le démarrage renvoi une erreur ORA-600 avec l'argument [4194], c'est probablement occasionné par une corruption dans les segments du tablespace " undo ".

Avant de procéder tel qu'indiqué, assurez-vous que le fichier " alert_ORCL.log " contient bel et bien des lignes affichant le code d'erreur mentionné précédemment.

Compte tenu que le contenu du tablespace " undo " sert à conserver les transactions non sauvegardées (non commit), on peut détruire ces données sans danger. Voici les étapes pour recréer le tablespace " undo " :

sqlplus / as sysdba

Alter database open;

create undo tablespace undo2
datafile '/u05/oradata/ORCL/undo02.dbf' size 50 m
autoextend on;

alter system set undo_tablespace = undo2 ;

drop tablespace undo including contents and datafiles ;

create undo tablespace undo
datafile '/u05/oradata/ORCL/undo01.dbf' size 1000 m
autoextend on ;

alter system set undo_tablespace = undo ;

drop tablespace undo2 including contents and datafiles ;


Pour réaliser les commandes précédentes, il se peut que vous soyez dans l'obligation de désactiver la gestion automatique des segments " undo " :

sqlplus / as sysdba
startup mount
create pfile from spfile;

Modifier le paramètre suivant dans le fichier " initORCL.ora " :
undo_management = MANUAL

shutdown immediate
startup pfile=initORCL.ora

Une fois l'intervention terminée, n'oubliez pas de revenir en mode "spfile".


Il y a un autre cas, que l'un de mes collègues a rencontré. Il a eu à recréer les controlfiles pour ressusciter la base de données.

mardi 14 septembre 2010

Machine Virtuelle pré-installée avec la suite SOA et BPM 11g

Tout dont vous avez besoin est d'installer Oracle VirtualBox sur votre ordinateur et importer l'application SOA/BPM et vous êtes prêts à essayer SOA 11g incluant BPM 11g récemment sortie. Aucune installation et configuration particulière. Simple n'est-ce pas !

http://www.oracle.com/technetwork/middleware/soasuite/learnmore/vmsoa-172279.html

vendredi 10 septembre 2010

Add-on intéressant pour Microsoft Excel

J'ai mis la main sur un "add-on" qui s'installe en tant que macro complémentaire dans Microsoft Excel.

Cet "add-on" s'appelle "Query Editor". Il permet de configurer d'une façon simple un accès à une source de données externes telle qu'une base de données Oracle.

Tout est plus intuitif. Par un simple clic-droit de la souris, nous accédons à l'éditeur de requêtes. Cette fenêtre contient toutes les paramètres et les champs nécessaires pour réaliser une requête.


Pour ceux qui utilise Excel pour réaliser des rapports, je vous le recommande. Vous l'aimerez !

Concepteur : Rob van Gelder (rob@vangelder.co.nz)
Site Web : http://vangelder.orconhosting.net.nz/excel/queryeditor.html

Recompilation de packages PL/SQL sous Oracle RAC 11gR2

Suite à la mise en place d'une nouvelle version d'un package PL/SQL, certaines applications obtenaient l'erreur suivante :

ERROR at line 1:
ORA-04068: existing state of packages has been discarded
ORA-04065: not executed, altered or dropped stored procedure "ABC.PKG_CALC_PAMNT"
ORA-06508: PL/SQL: could not find program unit being called: "ABC.PKG_CALC_PAMNT"
ORA-06512: at "ABC.PKG_FACTRN", line 4


Habituellement, cette erreur disparait dès le prochain accès au package. C'est le cas pour la session active sauf que, lorsqu'il y avait une nouvelle connexion avec le même compte Oracle, l'erreur réapparaissait.

Étrangement, cette erreur ne se produisait pas pour certaines applications... pourquoi? Et bien, c'est surement parce que nous utilisons les services Oracle pour la répartition de la charge sur les différents noeuds hébergeant les instances du Cluster RAC 11gR2. Compte tenu que cette erreur était, disons-le, absurde, j'ai commencé à douter de la "fraîcheur" des caches en mémoire. Après quelques essais, je me suis rendu compte que le problème survenait sur une instance et non sur les autres. J'ai alors décidé de forcer une réinitialisation du "shared pool" pour que la nouvelle définition de l'objet y soit stockée. Pour ce faire, j'ai exécuté la commande : "Alter system flush shared_pool;" et, effectivement, l'erreur n'a par réapparu.

vendredi 3 septembre 2010

Actualisation d'une vue matérialisée avec l'option "parallel"

En tentant de mettre en place une tâche via Oracle Scheduler qui effectue le rafraichissement d'un groupe de vues matérialisées, j'obtenais une erreur qui sentait le "service request" à plein nez !

ORA-07445: exception encountered: core dump [_memcpy()+264] [SIGSEGV] [ADDR:0x0] [PC:0xFFFFFFFF7C500908] [Address not mapped to object] []

Ce genre d'erreur n'augure jamais bien. Après avoir fouillé et effectué un ensemble de tests, j'ai réussi à identifier la vue matérialisée qui causait l'erreur. Elle comportait des colonnes dont le type de données est SDO_GEOMETRY (Oracle Spatial) et la source de celle-ci se trouve sur une base de données distante. Voilà, des particularités intéressantes...

Après avoir googolisé le Net de bout en bout, je me suis souvenu que la manipulation des données spatiales sont souvent capricieuses. J'ai alors réalisé qu'en enlevant les colonnes de la vue, je pouvais actualiser (refresh) la vue matérialisée avec succès.

Avec un peu de recul, je me suis dit : "Utilisons une commande simple qui n'utilisera pas des fonctionnalités qui pourrait augmenter les chances de provoquer des erreurs". La commande CREATE MATERIALIZED VIEW utilisait le parallélisme.... Hmmm... Spatial et parallélisme... Une autre belle particularité ! Essayons NOPARALLEL, juste pour voir. Eh bien, devinez quoi? L'actualisation de la vue matérialisée a fonctionné.

Dans mon cas, le parallélisme n'est vraiment pas obligatoire donc, je peut m'en passer sans problème. Par contre, comme je le disait plus tôt, il y a sûrement place à créer un SR chez Oracle pour identifier la cause.