Instalace SQL 2005 SP2 na cluster Windows Server 2003 x64

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í:

  1. Instalace SP2 na uzlu A, přičemž uzel A je aktivním pro SQL instanci SQL1.
  2. Restart uzlu A, tím dojde k failoveru na uzel B.
  3. Instalace SP2 na uzlu B, který je aktuálně aktivním uzlem pro SQL1.
  4. 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.