mercredi 9 juillet 2008

KB948109 et OFFICESERVERS

Le contexte

Le tout commence avec une mise à jour Windows Update qui foire, la KB948109 précisement, mais cela pourrait arriver, je pense, pour tout un tas d'autres. Pour mon cas, non comptant d'échouer, cette mise à jour fait tomber l'instance SQL Server "OFFICESERVERS" qui héberge les Shared Services, bref...

La résolution ce problème passe par une installation correcte du correctif. Après examen, je découvre que l'instance Sql Server "OFFICESERVERS" est en version 9.0.3042 alors que les autres, qui ont pu appliquer le KB, était au départ en version 9.0.3054 .
Cette fameuse KB948109 devant nous faire arriver en version 9.0.3068 (gloups).

La manoeuvre va donc consister à télécharger le correctif KB934458 pour que "OFFICESERVERS" passe de la 3042 à la 3054 puis la KB948109 pour passer de la 3054 à la 3068.

Là, on se dit : cool, ya plus qu'à... et ben non!! Le problème c'est que, si on reflechit bien, pourquoi cette fameuse instance était-elle restée en 3042 ? Et bien tout simplement parce que le premier correctif n'avait pu s'installer correctement, et que l'on peut passer à côté de ça car les applications liées à cette instance fonctionnaient toujours correctement.
Cette Instance considère donc qu'une installation la concernant à été interrompue, et mettra en erreur tout autre installation à venir.

C'est à partir de là que ça devient amusant...

La résolution


  1. Dans "Ajout/Suppression de programmes" > "Microsoft SQL Server 2005" > "Modifier"
  2. Sélectionner l'instance "OFFICESERVERS", puis "Moteur de base de données"
  3. L'assistant d'installation de SQL Server se lance, il faut alors poursuivre jusqu'à ce que l'assistant propose quelque chose comme "Reprendre l'installation interrompue" (je ne me souviens plus de l'intitulé exact) ce qui prouve q'une mise à jour (par exemple) n'a pu se faire correctement (Sinon nous aurions "Changer les composants installés").
  4. A partir de là, deux possibilités :
    1. Vous disposez du programme d'installation initial, et là, pas de problème, il faut poursuivre jusqu'à la fin de la procédure.
    2. Vous ne disposez pas du programme intial et ,en conséquence, le programme vous demande le chemin pour le fichier "sqlrun_sql.msi" :
      1. Annuler l'assistant
      2. Télécharger la dernière version de SQL Server
      3. Lancer l'installation, et récupérer l'ensemble du dossier temporaire décompressé (moins le petit fichier temp qui bloque la copie)
      4. Annuler l'installation
      5. Vous voilà avec les fichiers d'installation de SQL Server et le fameux fichier "sqlrun_sql.msi"
      6. Recommencer à partir du "1".

        Tout cela car la maintenance ne peut se faire à partir d'une installation simple (a priori), je veux dire lancée à partir du setup.exe . Et que l'on ne peut avoir en même temps une opération de maintenance sur une installation existante (Ajout/Suppression) et une instance d'installation en cours (setup.exe)... ouf!
  5. Une fois cette procédure passée vous pouvez installer vos KB.
  6. Mais est-ce réellement terminé ?
  7. .... suspens....
  8. et bien non!!!!
  9. Surgit de nulle part, Le message suivant apparaît "L'erreur était [Microsoft] [SQL Native Client] [SQL Server] Syntaxe incorrecte vers '='"
  10. râhhhh!!!
  11. Direction http://support.microsoft.com/kb/935371/fr et le passage suivant :
Pour contourner ce problème, procédez comme suit :

Pour contourner ce problème, procédez comme suit :
1. Dans un éditeur de texte tel que le Bloc-notes, ouvrez le fichier Sysdbupg.sql. Ce fichier se trouve dans le dossier suivant:
InstallationPath\MSSQL.1\MSSQL\Install
Remarque : InstallationPath représente le chemin d'accès d'installation.
2. Recherchez la ligne suivante de code.

SELECT @certificate_name = QUOTENAME(@certificate_name, '''')

3. Remplacez la ligne de code que vous avez localisée à l'étape 2 à l'aide de la ligne suivante de code.

SELECT @certificate_name = '''' + REPLACE(@certificate_name, '''', '''''') + ''''

4. Enregistrez la modification, puis puis quittez l'Éditeur.
5. Dans la boîte de dialogue Message d'erreur, cliquez sur Réessayer .


Pour ma part, il existait 4 fichiers "Sysdbupg.sql" à modifier
  1. Recommençage
  2. Installage
  3. Réussisage!!
Voilà, c'était long, fastidieux mais je tenais tout de même à faire ce post :))