Instalace SP2 pro SQL Server 2005 x64 bitovou edici v případě, že je instalována na Active/Active cluster, je pro mne noční můrou (a to nejen proto, že se většina servisních zásahů na SQL odehrává v pozdních nočních hodinách). Service Pack se vždy nainstaluje pouze na "aktivní" uzel každé virtuální instance, nicméně po provedení fail-over čeká administrátora neblahé překvapení - verze SQL engine neodpovídá SP2. Řešení jsou dvě - zopakovat si několikrát instalaci onoho SP 2 nebo zkusit návod Microsoftu v KB929151.
Normálně by člověk očekával (a mělo by to tak i fungovat a možná to tak i funguje u x86 bitové edice), že spustí instalaci SQL SP2 na uzlu clusteru, kde momentálně běží virtuální instance SQL serveru. Tato instalace by měla opatchovat lokální fyzický uzel, následně virtuální SQL instanci a pak také vzdálený fyzický uzel. Následovat by pak měl řízený restart všech uzlů clusteru. U verze x64 je však problém, protože instalace na vzdáleném uzlu neproběhne. Pokud si toho administrátor nevšimne, může se mu stát, že mu uživatelé po nějaké době, kdy proběhl fail-over, začnou hlásit, že jím deklarovaný SP2 na nějakém virtuálním SQL prostě není - a mají pravdu! V případě Active/Active clusteru je situace ještě zamotanější, protože se defakto jedná o dva "navzájem prohozené" Active/Passive clustery.
Sám používám následující stupidní řešení:
-
Instalace SP2 na uzlu A, přičemž uzel A je aktivním pro SQL instanci SQL1.
-
Restart uzlu A, tím dojde k failoveru na uzel B.
-
Instalace SP2 na uzlu B, který je aktuálně aktivním uzlem pro SQL1.
-
Restart uzlu B, čímž se SQL instance SQL1 zpět na uzel A.
Pro Active/Active cluster se výše zmíněné body provedou ještě jednou, pro instanci SQL2.