Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2012 Service Pack 1 et mise à jour cumulative 1

Récemment, Microsoft a sorti le Service Pack 1 pour SQL Server 2012, et ils ont rapidement suivi avec la mise à jour cumulative 1 pour le Service Pack 1. La raison en est que le Service Pack - en raison de cycles de développement et de tests de régression plus longs - ne contenait aucun des correctifs des mises à jour cumulatives RTM 3 et 4. Étant donné que de nombreuses personnes ont attendu - en se basant principalement sur des préjugés spéculatifs à ce stade - pour même commencer à tester SQL Server 2012 jusqu'à la sortie du Service Pack 1, j'ai pensé qu'il pourrait être utile de couvrir quelques des scénarios que vous pourriez rencontrer. Il ne s'agit pas strictement d'un message lié aux performances, mais certaines des informations impliquent des interruptions de service, qui peuvent ou non affecter votre entreprise, vos SLA, etc.

MISE À JOUR – La mise à jour cumulative 2 de SQL Server 2012 Service Pack 1 (11.0.3339) a été publiée le 24/01/2013.

Si SQL Server 2012 n'est pas déjà installé…

Lorsque vous installez une nouvelle instance de SQL Server, vous souhaitez effectuer le moins d'étapes possible. La configuration de SQL Server 2012 est bien meilleure pour intégrer à la fois les service packs et les mises à jour cumulatives que SQL Server 2008/2008 R2 (décrit par Peter Saddow ici et ici). Cette méthode est obsolète, mais elle est toujours prise en charge dans SQL Server 2012. Ainsi, même si vous pouvez toujours utiliser l'ancienne méthode si vous le souhaitez :

D:\setup.exe /Action=Install /PCUSource=C:\SP1ExtractedFolder /CUSource=C:\CU1ExtractedFolder

La nouvelle méthode, que vous devriez utiliser, est beaucoup plus simple - et ne vous oblige pas à extraire manuellement les packages à l'aide de /x argument en premier :

D:\setup.exe /Action=Install /UpdateSource=C:\AllUpdatesFolder

Il vous suffit de mettre toutes les mises à jour pertinentes dans le même dossier. Notez que toute mise à jour que vous obtenez avec le nom de fichier [...]_zip.exe , vous devez extraire pour obtenir l'exécutable principal. Par exemple, lorsque vous téléchargez pour la première fois le Service Pack 1 et la mise à jour cumulative 1, le dossier de téléchargement ressemblera à ceci :

Vous devez extraire 455715_intl_x64_zip.exe en double-cliquant dessus et en choisissant le chemin de sortie (en utilisant /x sur la ligne de commande est valide, mais ignoré). Une fois cela fait, le dossier devrait ressembler à ceci. (À ce stade, vous pouvez supprimer le 455715... fichier - bien qu'étant donné à quel point il est "compressé", je dois me demander pourquoi ils continuent à placer ce paquet dans une archive auto-extractible en premier lieu.)

Maintenant, lorsque vous exécutez la ligne de commande ci-dessus, lorsque vous accédez à l'écran Mises à jour du produit dans la configuration, vous devriez voir qu'il a inclus à la fois SP1 et CU1 :

Bob Ward décrit très bien ce scénario de manière beaucoup plus détaillée ici :

Blog CSS :La configuration de SQL Server 2012 est devenue plus intelligente…

Notez que vous pouvez conserver tous vos Service Packs et mises à jour cumulatives au fil du temps dans le même dossier - si vous utilisez le /UpdateSource argument, le programme d'installation de SQL Server sera suffisamment intelligent pour choisir le dernier SP et son dernier CU, indépendamment de ce qui pourrait exister d'autre dans ce dossier.

Si SQL Server 2012 est déjà installé…

Encore une fois, toutes ces informations s'appliquent si vous installez une nouvelle instance de SQL Server. De mon côté, j'ai un tas d'instances SQL Server 2012 RTM que je voulais corriger - et comme je ne voulais perdre aucun des correctifs des mises à jour cumulatives 3 et 4, je voulais appliquer les deux Service Pack 1 et la mise à jour cumulative 1. J'espérais que la même intelligence de sillage serait intégrée à l'exécutable de configuration du Service Pack 1, afin qu'il puisse simplement inclure les mises à jour CU1. J'ai essayé la logique :

C:\AllUpdatesFolder\SQLServer2012-SP1-KB2674319-x64-ENU.exe /UpdateSource=C:\AllUpdatesFolder

Mais cela a finalement généré l'erreur suivante :

Pour la qualité des moteurs de recherche :

The setting 'UpdateSource' is not allowed when the value of setting 'ACTION' is 'Patch'.
Error code 0x84B40005.

(Et oui, j'ai essayé de placer le dossier de mise à jour CU1 extrait dans un autre emplacement.)

J'ai confirmé auprès de Microsoft que, bien que SP1 contienne évidemment une partie du code et de la logique du core setup.exe, il n'a pas été conçu pour permettre l'incorporation de mises à jour cumulatives. En d'autres termes, vous ne pouvez pas suivre l'installation d'un service pack, uniquement lors de l'installation du produit principal.

Cela signifie également que vous devrez effectuer l'installation en deux étapes . J'ai ouvert une nouvelle suggestion Connect, car le slipstreaming est sans doute *plus* précieux lors de l'entretien que lors de l'installation initiale :

Connect #774109 :Autoriser /UpdateSource pour les programmes d'installation du Service Pack

J'ai donc procédé à cette opération en deux étapes. J'ai installé le Service Pack 1 et constaté qu'aucun fichier en cours d'utilisation ne nécessiterait un redémarrage :

Et puis une fois le SP1 terminé, j'ai lancé le programme d'installation du SP1 CU1. Cependant, je suis tombé sur cette erreur :

Donc, non seulement j'ai dû suivre deux étapes pour appliquer ces correctifs, mais j'ai également dû redémarrer entre les deux. J'ai regardé dans les fichiers journaux de chaque installation (Detail.txt ) et je peux voir que lorsque j'ai exécuté le SP1, rien n'indiquait que Windows attendait un redémarrage :

(07) 2012-12-12 06:46:38 Slp: Rule 'RebootRequiredCheck' results: IsRebootNotRequired=True

Mais ensuite, lorsque j'ai exécuté CU1 et que j'ai eu l'erreur, quelques minutes seulement après la fin du SP1, j'ai vu dans le nouveau Detail.txt que maintenant Windows *attendait* un redémarrage :

(07) 2012-12-12 06:53:38 Slp: Windows Update requires a reboot
(07) 2012-12-12 06:53:38 Slp: Rule 'RebootRequiredCheck' results: IsRebootNotRequired=False

Je ne suis pas sûr de ce qui s'est passé, car je ne suis certainement pas allé exécuter Windows Update entre les étapes.

MISE À JOUR :Grâce à Shau Phang de Microsoft, nous avons découvert dans %SystemRoot%\WindowsUpdate.log qu'une mise à jour automatique de Windows avait démarré après le démarrage du SP1 et s'était terminée avant que je ne lance la mise à jour de la CU. Je suppose que c'est parce que j'ai réveillé l'ordinateur et plongé immédiatement dans le démarrage de l'installation du Service Pack. la vérification "doit redémarrer" doit avoir été déclenchée entre-temps. J'en accepterais l'entière responsabilité si je venais d'activer Windows Update et d'accepter la valeur par défaut. Mais je ne l'ai pas fait. Voici mes paramètres :

Alors, soyez prudent.

Conclusion

La morale de l'histoire est que, si vous n'avez pas encore installé SQL Server 2012, le slipstreaming pour accéder à la dernière mise à jour en une seule action - peu importe quand vous y arrivez et quelles mises à jour sont disponibles à ce moment-là - va être simple et indolore.

Si vous avez déjà installé une instance, auquel cas les interruptions de service et les temps d'arrêt seront presque toujours un problème plus critique que lors d'une nouvelle installation, vous devrez aborder votre méthodologie de correction avec soin et vous assurer que votre fenêtre de maintenance permettra pour un redémarrage du serveur, si nécessaire. Cela signifie également :soyez conscient de vos paramètres Windows Update et si des mises à jour ont été installées depuis le dernier redémarrage.

Si vous pensez qu'il s'agit d'un problème important, veuillez voter sur ces éléments Connect et, plus important encore, commentez la manière dont le scénario actuel pourrait affecter votre entreprise.