sql >> Database >  >> RDS >> Sqlserver

SQL Server 2012 Service Pack 1 &Cumulatieve Update 1

Onlangs heeft Microsoft Service Pack 1 voor SQL Server 2012 gepusht, en al snel volgde Cumulatieve Update 1 voor Service Pack 1. De reden hiervoor is dat het servicepack - vanwege langere ontwikkelings- en regressietestcycli - geen van de fixes van RTM Cumulatieve Updates 3 &4. Aangezien veel mensen hebben gewacht - op basis van grotendeels speculatieve vooringenomenheid op dit moment - om zelfs SQL Server 2012 te testen totdat Service Pack 1 werd uitgebracht, dacht ik dat het misschien handig zou zijn om een ​​paar van de scenario's die u kunt tegenkomen. Dit is niet strikt een prestatiegerelateerd bericht, maar sommige informatie houdt wel serviceonderbrekingen in, die al dan niet van invloed kunnen zijn op uw bedrijf, SLA's, enz.

UPDATE – SQL Server 2012 Service Pack 1 cumulatieve update 2 (11.0.3339) is uitgebracht op 24-01-2013.

Als SQL Server 2012 nog niet is geïnstalleerd...

Wanneer u een nieuw exemplaar van SQL Server installeert, wilt u zo min mogelijk stappen uitvoeren. De installatie van SQL Server 2012 is veel beter voor het slipstreamen van zowel servicepacks als cumulatieve updates dan SQL Server 2008 / 2008 R2 (hier en hier beschreven door Peter Saddow). Deze methode is verouderd, maar wordt nog steeds ondersteund in SQL Server 2012. U kunt dus nog steeds de oude methode gebruiken als u dat wilt:

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

De nieuwe methode, die u zou moeten gebruiken, is veel eenvoudiger – en u hoeft de pakketten niet handmatig uit te pakken met de /x argument eerst:

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

U hoeft alleen alle relevante updates in dezelfde map te plaatsen. Merk op dat elke update die u krijgt met de bestandsnaam [...]_zip.exe , moet u uitpakken om het uitvoerbare kernbestand te krijgen. Als u bijvoorbeeld Service Pack 1 en Cumulatieve Update 1 voor het eerst downloadt, ziet de downloadmap er als volgt uit:

U moet 455715_intl_x64_zip.exe . uitpakken door erop te dubbelklikken en het uitvoerpad te kiezen (met behulp van /x op de opdrachtregel is geldig, maar wordt genegeerd). Als je klaar bent, zou de map er zo uit moeten zien. (Op dat moment kunt u de 455715... bestand - hoewel het "gecomprimeerd" is, moet ik me afvragen waarom ze dit pakket überhaupt in een zelfuitpakkend archief blijven plaatsen.)

Wanneer u nu de bovenstaande opdrachtregel uitvoert, wanneer u naar het scherm Productupdates in de installatie gaat, zou u moeten zien dat het zowel SP1 als CU1 bevat:

Bob Ward is erg goed in het beschrijven van dit scenario in veel meer detail hier:

CSS Blog :Installatie van SQL Server 2012 is nu nog slimmer geworden...

Houd er rekening mee dat u al uw Service Packs en Cumulatieve Updates in de loop van de tijd in dezelfde map kunt bewaren – als u de /UpdateSource gebruikt argument, SQL Server Setup is slim genoeg om de nieuwste SP en de nieuwste CU te kiezen, ongeacht wat er nog meer in die map staat.

Als SQL Server 2012 al is geïnstalleerd...

Nogmaals, al die informatie is van toepassing als u een nieuw exemplaar van SQL Server installeert. Aan de andere kant heb ik een aantal SQL Server 2012 RTM-instanties die ik wilde patchen - en aangezien ik geen van de fixes van Cumulatieve Updates 3 &4 wilde verliezen, wilde ik beide Service Pack 1 toepassen en cumulatieve update 1. Ik hoopte dat dezelfde slipstream-smarts in het uitvoerbare bestand van Service Pack 1 zouden worden ingebouwd, zodat het gewoon de CU1-updates zou kunnen bevatten. Ik heb het logische geprobeerd:

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

Maar dit leverde uiteindelijk de volgende fout op:

Voor de goedheid van zoekmachines:

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

(En ja, ik heb geprobeerd de uitgepakte CU1-updatemap op een andere locatie te plaatsen.)

Ik heb met Microsoft bevestigd dat, hoewel SP1 duidelijk een deel van de code en logica van de kern setup.exe bevat, het niet is gebouwd om de integratie van cumulatieve updates mogelijk te maken. Met andere woorden, je kunt niet slipstreamen bij het installeren van een servicepack, alleen bij het installeren van het kernproduct.

Dit betekent ook dat u de installatie in twee stappen moet uitvoeren . Ik heb een nieuwe Connect-suggestie geopend, aangezien slipstreaming aantoonbaar *meer* waardevol is tijdens onderhoud dan tijdens de eerste installatie:

Connect #774109:Sta /UpdateSource toe voor Service Pack-installatieprogramma's

Dus ben ik dit in twee stappen gaan doen. Ik heb Service Pack 1 geïnstalleerd en merkte op dat er geen bestanden in gebruik waren die mogelijk opnieuw moesten worden opgestart:

En toen SP1 eenmaal voltooid was, lanceerde ik het SP1 CU1-installatieprogramma. Ik kwam echter deze fout tegen:

Ik moest dus niet alleen twee stappen nemen om deze patches toe te passen, ik moest tussendoor ook opnieuw opstarten. Ik keek in de logbestanden voor elke installatie (Detail.txt ) en ik kan zien dat toen ik SP1 uitvoerde, er geen indicatie was dat Windows een herstart verwachtte:

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

Maar toen ik CU1 uitvoerde en de fout kreeg, slechts een paar minuten nadat SP1 voltooid was, zag ik in de nieuwe Detail.txt dat Windows *nu* een reboot verwachtte:

(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

Ik weet niet zeker wat er is gebeurd, aangezien ik zeker niet tussen de stappen Windows Update heb uitgevoerd.

UPDATE:dankzij Shau Phang van Microsoft ontdekten we in %SystemRoot%\WindowsUpdate.log dat een automatische Windows-update was gestart nadat SP1 was gestart en was voltooid voordat ik de CU-update startte. Ik neem aan dat dit komt omdat ik de computer wakker maakte en meteen begon met het installeren van het servicepack; de "must reboot"-controle moet tussendoor zijn geactiveerd. Ik zou hiervoor de volledige verantwoordelijkheid aanvaarden als ik zojuist Windows Update had ingeschakeld en de standaard had geaccepteerd; maar ik deed het niet. Dit zijn mijn instellingen:

Dus wees voorzichtig daarbuiten.

Conclusie

De moraal van het verhaal is, als je SQL Server 2012 nog niet hebt geïnstalleerd, slipstreamen om in één handeling bij de nieuwste update te komen - ongeacht wanneer je eraan toe bent en welke updates op dat moment beschikbaar zijn - gaat naar wees eenvoudig en pijnloos.

Als u al een instance hebt geïnstalleerd, in welk geval serviceonderbreking en downtime bijna altijd een belangrijker probleem zullen zijn dan tijdens een nieuwe installatie, moet u uw patchingmethodologie zorgvuldig benaderen en ervoor zorgen dat uw onderhoudsvenster dit toelaat. voor een herstart van de server, mocht dit nodig zijn. Dit betekent ook:let op uw Windows Update-instellingen en of er updates zijn geïnstalleerd sinds de laatste herstart.

Als u denkt dat dit een belangrijk probleem is, stem dan op deze Connect-items en, nog belangrijker, geef commentaar op hoe het huidige scenario uw bedrijf kan beïnvloeden.


  1. convert_tz retourneert null

  2. UNION-query met het actieve recordpatroon van codeigniter

  3. Hoe te sorteren in SQL

  4. Wat is het ideale gegevenstype om te gebruiken bij het opslaan van breedtegraad / lengtegraad in een MySQL-database?