Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2012 Service Pack 1 e aggiornamento cumulativo 1

Di recente, Microsoft ha rilasciato il Service Pack 1 per SQL Server 2012 e ha rapidamente seguito l'aggiornamento cumulativo 1 per il Service Pack 1. Il motivo è che il service pack, a causa dei cicli di sviluppo e test di regressione più lunghi, non ne conteneva delle correzioni degli aggiornamenti cumulativi RTM 3 e 4. Poiché molte persone hanno aspettato, sulla base di pregiudizi per lo più speculativi a questo punto, persino di iniziare a testare SQL Server 2012 fino al rilascio del Service Pack 1, ho pensato che potesse essere utile coprirne un paio degli scenari che potresti incontrare. Questo non è un post strettamente correlato alle prestazioni, ma alcune delle informazioni implicano interruzioni del servizio, che possono o meno influire sulla tua attività, sugli SLA, ecc.

AGGIORNAMENTO – L'aggiornamento cumulativo 2 del Service Pack 1 di SQL Server 2012 (11.0.3339) è stato rilasciato il 24-01-2013.

Se SQL Server 2012 non è già installato...

Quando si installa una nuova istanza di SQL Server, si desidera eseguire il minor numero di passaggi possibile. L'installazione di SQL Server 2012 è molto migliore per quanto riguarda lo slipstreaming sia dei service pack che degli aggiornamenti cumulativi rispetto a SQL Server 2008/2008 R2 (descritto da Peter Saddow qui e qui). Questo metodo è deprecato, ma è ancora supportato in SQL Server 2012. Quindi, mentre puoi ancora utilizzare il vecchio metodo se lo desideri:

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

Il nuovo metodo, che dovresti usare, è molto più semplice e non richiede di estrarre manualmente i pacchetti usando /x prima l'argomento:

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

Devi solo mettere tutti gli aggiornamenti rilevanti nella stessa cartella. Nota che qualsiasi aggiornamento che ottieni con il nome file [...]_zip.exe , è necessario estrarre per ottenere l'eseguibile principale. Ad esempio, quando scarichi per la prima volta il Service Pack 1 e l'aggiornamento cumulativo 1, la cartella di download sarà simile a questa:

Devi estrarre 455715_intl_x64_zip.exe facendo doppio clic su di esso e scegliendo il percorso di output (usando /x alla riga di comando è valido, ma ignorato). Una volta terminato, la cartella dovrebbe apparire così. (A quel punto, puoi eliminare il 455715... file – anche se visto quanto è "compresso", mi chiedo perché continuano a mettere questo pacchetto in un archivio autoestraente in primo luogo.)

Ora, quando esegui la riga di comando sopra, quando arrivi alla schermata Aggiornamenti prodotto durante l'installazione, dovresti vedere che include sia SP1 che CU1:

Bob Ward fa un ottimo lavoro nel descrivere questo scenario in modo molto più dettagliato qui:

Blog CSS:l'installazione di SQL Server 2012 è diventata ancora più intelligente...

Tieni presente che puoi conservare nel tempo tutti i Service Pack e gli aggiornamenti cumulativi nella stessa cartella, se utilizzi /UpdateSource argomento, l'installazione di SQL Server sarà abbastanza intelligente da scegliere l'ultimo SP e la sua ultima CU, indipendentemente da cos'altro potrebbe esistere in quella cartella.

Se SQL Server 2012 è già installato...

Anche in questo caso, tutte queste informazioni si applicano se si installa una nuova istanza di SQL Server. D'altra parte, ho un sacco di istanze RTM di SQL Server 2012 che volevo correggere e poiché non volevo perdere nessuna delle correzioni degli aggiornamenti cumulativi 3 e 4, volevo applicare entrambi i Service Pack 1 e aggiornamento cumulativo 1. Speravo che la stessa intelligenza slipstream sarebbe stata integrata nell'eseguibile di installazione del Service Pack 1, in modo che potesse semplicemente includere gli aggiornamenti CU1. Ho provato la logica:

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

Ma questo alla fine ha prodotto il seguente errore:

Per la bontà dei motori di ricerca:

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

(E sì, ho provato a mettere la cartella di aggiornamento CU1 estratta in una posizione diversa.)

Ho confermato con Microsoft che, sebbene SP1 contenga ovviamente parte del codice e della logica del core setup.exe, non è stato creato per consentire l'incorporazione di aggiornamenti cumulativi. In altre parole, non è possibile eseguire lo slipstream durante l'installazione di un service pack, solo durante l'installazione del prodotto principale.

Ciò significa anche che dovrai eseguire l'installazione in due passaggi . Ho aperto un nuovo suggerimento Connect, dal momento che lo slipstreaming è probabilmente *più* prezioso durante la manutenzione che durante l'installazione iniziale:

Connetti #774109 :Consenti /UpdateSource per gli installatori di Service Pack

Quindi, ho proceduto a farlo in due passaggi. Ho installato il Service Pack 1 e ho notato che non erano in uso file che potrebbero richiedere un riavvio:

E poi, una volta completato SP1, ho avviato il programma di installazione di SP1 CU1. Tuttavia mi sono imbattuto in questo errore:

Quindi non solo ho dovuto fare due passaggi per applicare queste patch, ma ho anche dovuto riavviare nel frattempo. Ho cercato nei file di registro per ogni installazione (Detail.txt ) e posso vedere che quando ho eseguito SP1, non c'era alcuna indicazione che Windows si aspettasse un riavvio:

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

Ma poi quando ho eseguito CU1 e ho ricevuto l'errore, solo pochi minuti dopo il completamento di SP1, ho visto nel nuovo Detail.txt che ora Windows *stava* aspettando un riavvio:

(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

Non sono sicuro di cosa sia successo, dal momento che di certo non ho eseguito Windows Update tra i passaggi.

AGGIORNAMENTO:grazie a Shau Phang di Microsoft, abbiamo scoperto in %SystemRoot%\WindowsUpdate.log che un aggiornamento automatico di Windows era stato avviato dopo l'avvio di SP1 e terminato prima dell'avvio dell'aggiornamento CU. Presumo che ciò sia dovuto al fatto che ho svegliato il computer e mi sono tuffato immediatamente nell'avvio dell'installazione del service pack; nel frattempo deve essere stato attivato il controllo "deve riavviare". Accetterei la piena responsabilità di questo se avessi appena attivato Windows Update e accettato l'impostazione predefinita; ma non l'ho fatto. Ecco le mie impostazioni:

Quindi, fai attenzione là fuori.

Conclusione

La morale della storia è che, se non hai ancora installato SQL Server 2012, lo slipstreaming per ottenere l'ultimo aggiornamento in un'unica azione, indipendentemente da quando ci si arriva e da quali aggiornamenti sono disponibili in quel momento, sarà essere semplice e indolore.

Se hai già installato un'istanza, nel qual caso l'interruzione del servizio e i tempi di inattività saranno quasi sempre un problema più critico rispetto a una nuova installazione, dovrai avvicinarti alla metodologia di applicazione delle patch con attenzione e assicurarti che la tua finestra di manutenzione lo consenta per un riavvio del server, se necessario. Ciò significa anche:essere a conoscenza delle impostazioni di Windows Update e se sono stati installati aggiornamenti dall'ultimo riavvio.

Se ritieni che questo sia un problema importante, vota questi elementi di Connect e, soprattutto, commenta come lo scenario attuale potrebbe influenzare la tua attività.