Oracle a publié un correctif pour le bug du SCN lors des sauvegardes avant que l'équipe d'InfoWorld commence à enquêter sur cette histoire. Le bug de sauvegarde est répertorié comme le 12371955 : «  croissance élevée du SCN ALTER DATABASE BEGIN BACKUP dans 11g. » Si vous n'avez pas déjà installé ce patch, Oracle recommande une installation immédiate.

Jusqu'à récemment, en dehors de la correction du bug de sauvegarde, la seule réponse d'Oracle à la question de la limite du SCN - pour autant que nous avons été en mesure de déterminer - a été de publier un patch qui étend le calcul de SCN à 32 768 fois le nombre de secondes depuis le 01/01/1988, doublant ainsi la taille de la limite. Oracle a même rendu modifiable cette limite, les administrateurs peuvent encore augmenter le multiplicateur. Si ce patch est appliqué à une instance d'Oracle, il va alléger le problème du SCN. Toutefois, il introduit aussi de nouvelles variables.

Impossible de patcher tous les serveurs en même temps

Une partie du problème est que vous ne pouvez pas mettre à jour tous les systèmes en même temps. De plus, si vous avez un système patché avec une limite d'élévation - basé sur un multiplicateur de, disons, 65 536 - le SCN sur ce système pourrait être plus élevé que le SCN sur un système non patché utilisant le multiplicateur de 16 384 d'origine. Le système non patché pourrait  donc refuser la connexion. Il y a aussi la question des serveurs exécutant d'anciennes versions d'Oracle qui ne bénéficieront pas de correctif.

Par ailleurs, si ce patch est inclus par défaut dans la prochaine version d'Oracle Database, les administrateurs vont peut-être soudainement découvrir que leurs anciens serveurs sont incapables de communiquer avec les serveurs dotés de la version bénéficiant d'une méthode de calcul plus élevée pour le SCN. Pire, ils pourraient s'aligner sur les nombres du nouveau système de calcul, mais en gardant leur limite d'origine. Comme mentionné précédemment, le risque d'un tel scénario est très faible, sauf dans les environnements hautement interconnectés où un SCN élevé peut plomber un serveur à la manière d'un virus. Et une fois le serveur infecté, il n'y a aucun retour en arrière possible. Aussi, si le SCN est incrémenté arbitrairement - ou manuellement, avec une intention malveillante - alors la limite des 48 bits ne sera pas aussi astronomique qu'on le pensait au début de ce papier.

Un point préoccupant pour les utilisateurs

La rédaction d'InfoWorld a contacté des utilisateurs américains de la base de données d'Oracle pour parler de ce problème. Plusieurs de ces interlocuteurs n'étaient pas familiers avec le sujet; d'autres ont indiqué que les accords de licences Oracle les empêchent de faire des commentaires sur tout aspect de leur utilisation des produits de l'éditeur. Le chef de l'Independent Oracle User Group (IOUG), Andy Flower, a simplement indiqué au sujet de ce dossier: « Ce bug avec les numéros du SCN est évidemment un point qui préoccupe nos membres. Je suis sûr que ce sera un sujet que certains de nos membres les plus importants aborderont. Ils vont se réunir et en discuter. »

Parmi les experts Oracle, nos confrères d'Inforworld ont rencontré Shirish Ojha, senior DBA Oracle pour Logicworks, un fournisseur de services en ligne de type cloud. Il était bien sûr informé des problèmes du SCN, et notamment du bug  de la numérotation. Il reconnaît que quelques environnements Oracle sont susceptibles de rencontrer le problème, et que les conséquences peuvent être graves. « S'il y a un bond spectaculaire dans les SCN en raison d'un bug Oracle, il y a une probabilité minimale de rupture si ce nombre devient anormalement  élevé », a déclaré M. Ojha, qui a obtenu le très convoité titre d'Oracle Certified Master. « Si cela se produit pendant des transactions intensives sur une grande architecture interconnectée, cela va rendre toutes les bases de données interconnectées Oracle inutiles dans un laps de temps très court. »

M. Ojha poursuit : « Si cela se produit, même si la probabilité reste faible, le potentiel de perte [financière] ... est très élevé. » Par définition, dit-il, le problème peut potentiellement uniquement affecter tous les grands clients d'Oracle. Mais « une fois la limite SCN atteinte, il n'existe pas d'autre moyen de sortir du problème, que de fermer toutes les bases de données et de les reconstruire à partir de zéro. »