Kürzlich hat Microsoft Service Pack 1 für SQL Server 2012 herausgebracht, und sie haben schnell mit dem kumulativen Update 1 für Service Pack 1 nachgelegt. Der Grund dafür ist, dass das Service Pack – aufgrund längerer Entwicklungs- und Regressionstestzyklen – keine enthielt der Fixes aus den kumulativen RTM-Updates 3 und 4. Da viele Leute – basierend auf größtenteils spekulativen Vorurteilen zu diesem Zeitpunkt – damit gewartet haben, SQL Server 2012 überhaupt zu testen, bis Service Pack 1 veröffentlicht wurde, dachte ich, dass es nützlich sein könnte, ein paar davon zu behandeln der Szenarien, auf die Sie stoßen könnten. Dies ist kein rein leistungsbezogener Beitrag, aber einige der Informationen beziehen sich auf Dienstunterbrechungen, die sich auf Ihr Geschäft, Ihre SLAs usw. auswirken können oder nicht.
AKTUALISIEREN – Kumulatives Update 2 für SQL Server 2012 Service Pack 1 (11.0.3339) wurde am 24.01.2013 veröffentlicht.
Wenn SQL Server 2012 noch nicht installiert ist…
Wenn Sie eine neue Instanz von SQL Server installieren, sollten Sie so wenige Schritte wie möglich ausführen. Das Setup von SQL Server 2012 ist viel besser im Slipstreaming von Service Packs und kumulativen Updates als SQL Server 2008 / 2008 R2 (beschrieben von Peter Saddow hier und hier). Diese Methode ist veraltet, wird aber weiterhin in SQL Server 2012 unterstützt. Sie können also weiterhin die alte Methode verwenden, wenn Sie möchten:
D:\setup.exe /Action=Install /PCUSource=C:\SP1ExtractedFolder /CUSource=C:\CU1ExtractedFolder
Die neue Methode, die Sie verwenden sollten, ist viel einfacher – und erfordert nicht, dass Sie die Pakete manuell mit /x
extrahieren Argument zuerst:
D:\setup.exe /Action=Install /UpdateSource=C:\AllUpdatesFolder
Sie müssen nur alle relevanten Updates in denselben Ordner legen. Beachten Sie, dass jedes Update, das Sie erhalten, den Dateinamen [...]_zip.exe
hat , müssen Sie extrahieren, um die ausführbare Kerndatei zu erhalten. Wenn Sie beispielsweise Service Pack 1 und das kumulative Update 1 zum ersten Mal herunterladen, sieht der Download-Ordner wie folgt aus:
Sie müssen 455715_intl_x64_zip.exe
extrahieren indem Sie darauf doppelklicken und den Ausgabepfad wählen (mit /x
auf der Kommandozeile ist gültig, wird aber ignoriert). Danach sollte der Ordner so aussehen. (An diesem Punkt können Sie den 455715...
löschen Datei – obwohl angesichts dessen, wie "komprimiert" sie ist, muss ich mich fragen, warum sie dieses Paket überhaupt weiterhin in einem selbstextrahierenden Archiv ablegen.)
Wenn Sie nun die obige Befehlszeile ausführen und zum Bildschirm „Produktaktualisierungen“ im Setup gelangen, sollten Sie sehen, dass sowohl SP1 als auch CU1 enthalten sind:
Bob Ward beschreibt dieses Szenario sehr gut und ausführlicher hier:
CSS-Blog :Das Setup von SQL Server 2012 ist jetzt noch intelligenter…
Beachten Sie, dass Sie alle Ihre Service Packs und kumulativen Updates im Laufe der Zeit im selben Ordner aufbewahren können – wenn Sie /UpdateSource
verwenden Argument, SQL Server Setup wird intelligent genug sein, um den neuesten SP und sein neuestes CU auszuwählen, unabhängig davon, was sonst noch in diesem Ordner vorhanden sein könnte.
Wenn SQL Server 2012 bereits installiert ist…
Auch hier gelten alle diese Informationen, wenn Sie eine neue Instanz von SQL Server installieren. Ich hingegen habe eine Reihe von SQL Server 2012 RTM-Instanzen, die ich patchen wollte – und da ich keine der Fixes aus den kumulativen Updates 3 und 4 verlieren wollte, wollte ich beide Service Pack 1 anwenden und das kumulative Update 1. Ich hatte gehofft, dass die gleichen Slipstream-Smarts in die ausführbare Setup-Datei von Service Pack 1 eingebaut würden, sodass sie einfach die CU1-Updates enthalten könnte. Ich habe es logisch versucht:
C:\AllUpdatesFolder\SQLServer2012-SP1-KB2674319-x64-ENU.exe /UpdateSource=C:\AllUpdatesFolder
Dies führte jedoch schließlich zu folgendem Fehler:
Für Suchmaschinengüte:
The setting 'UpdateSource' is not allowed when the value of setting 'ACTION' is 'Patch'. Error code 0x84B40005.
(Und ja, ich habe versucht, den extrahierten CU1-Update-Ordner an einem anderen Ort abzulegen.)
Ich habe gegenüber Microsoft bestätigt, dass SP1 zwar offensichtlich einen Teil des Codes und der Logik des Kerns „setup.exe“ enthält, aber nicht für die Integration kumulativer Updates entwickelt wurde. Mit anderen Worten, Sie können bei der Installation eines Service Packs keinen Slipstream ausführen, sondern nur bei der Installation des Kernprodukts.
Das bedeutet auch, dass Sie die Installation in zwei Schritten durchführen müssen . Ich habe einen neuen Connect-Vorschlag geöffnet, da Slipstreaming während der Wartung wohl *mehr* wertvoll ist als während der Erstinstallation:
Connect #774109 :/UpdateSource für Service Pack-Installer zulassen
Also ging ich in zwei Schritten vor. Ich habe Service Pack 1 installiert und festgestellt, dass keine Dateien verwendet werden, die einen Neustart erfordern könnten:
Und als SP1 fertig war, startete ich das SP1 CU1-Installationsprogramm. Allerdings bin ich auf diesen Fehler gestoßen:
Ich musste also nicht nur zwei Schritte unternehmen, um diese Patches anzuwenden, ich musste zwischendurch auch neu starten. Ich habe in den Protokolldateien für jede Installation nachgesehen (Detail.txt
) und ich kann sehen, dass es beim Ausführen von SP1 keinen Hinweis darauf gab, dass Windows einen Neustart erwartete:
(07) 2012-12-12 06:46:38 Slp: Rule 'RebootRequiredCheck' results: IsRebootNotRequired=True
Aber dann, als ich CU1 ausführte und den Fehler bekam, sah ich nur wenige Minuten, nachdem SP1 fertig war, die neue Detail.txt
dass Windows jetzt einen Neustart erwartete:
(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
Ich bin mir nicht sicher, was passiert ist, da ich sicher nicht zwischen den Schritten Windows Update ausgeführt habe.
UPDATE:Dank Shau Phang bei Microsoft haben wir in %SystemRoot%\WindowsUpdate.log
entdeckt dass ein automatisches Windows-Update gestartet wurde, nachdem SP1 gestartet wurde, und beendet wurde, bevor ich das CU-Update startete. Ich nehme an, das liegt daran, dass ich den Computer aufgeweckt und sofort mit der Installation des Service Packs begonnen habe. der "must reboot"-Check muss zwischendurch ausgelöst worden sein. Ich würde die volle Verantwortung dafür übernehmen, wenn ich gerade Windows Update aktiviert und die Standardeinstellung akzeptiert hätte; aber ich habe es nicht getan. Hier sind meine Einstellungen:
Seien Sie also vorsichtig da draußen.
Schlussfolgerung
Die Moral von der Geschichte ist, dass, wenn Sie SQL Server 2012 noch nicht installiert haben, der Windschatten, um in einer Aktion zum neuesten Update zu gelangen – unabhängig davon, wann Sie dazu kommen und welche Updates zu diesem Zeitpunkt verfügbar sind – es wird einfach und schmerzlos sein.
Wenn Sie bereits eine Instanz installiert haben, in diesem Fall sind Dienstunterbrechungen und Ausfallzeiten fast immer ein kritischeres Problem als bei einer Neuinstallation, müssen Sie Ihre Patching-Methodik sorgfältig angehen und sicherstellen, dass Ihr Wartungsfenster dies zulässt für einen Neustart des Servers, falls dies erforderlich sein sollte. Das bedeutet auch:Achten Sie auf Ihre Windows Update-Einstellungen und ob seit dem letzten Neustart Updates installiert wurden.
Wenn Sie der Meinung sind, dass dies ein wichtiges Thema ist, stimmen Sie bitte über diese Connect-Elemente ab und, was noch wichtiger ist, kommentieren Sie, wie sich das aktuelle Szenario auf Ihr Unternehmen auswirken könnte.