Cómo montar dos entornos en un mismo servidor SQL Server 2008 sin que se "pisen"

SQL08: affinity_mask, io_affinity_mask i com muntar dos entorns en un mateix servidor sense que es "trepitgin" il_masacratore 19 April, 2010 - 11:16

Ens posem en situació
En el nostre entorn és possible que necessitem disposar de dos rèpliques d'una/s base de dades en entorns diferenciats (el clàssic exemple seria producció i test). Per decidir com ho fem les preguntes més comuns que ens hem de fer són:

- Aquest nou entorn serà temporal? Conté bases de dades gran en quant a volum i / o la càrrega que ha de suportar és elevada (encara que sigui test)?
- Disposo de la versió de desenvolupament de SqlServer2008? Que només està al teu abast si tens una subscripció MSDN ...
- Disposo d'un servidor addicional?

En base a aquestes preguntes i totes les que se li puguin a un ocórrer es pot optar per diferents solucions:
-El més senzill i si la base de dades més la càrrega a suportar són petites podem utilitzar el mateix servidor per a totes les bases de dades (vam crear en el mateix servidor amb noms diferents (_Test) i Santes pasqües ...). Perquè no es molestin entre si podem utilitzar Resource Governor.
-El més "asèptic" si els recursos ho permeten i sempre que valgui la pena seria muntar en servidors diferents (si disposem de la versió de desenvolupament)
-Una altra opció és una barreja de les anteriors. Muntar els dos entorns en un mateix servidor però en instàncies diferents.
-Etc ...

1 Servidor de n cpu (n> 1) + 2 instàncies = 2 entorns
Una opció que m'agrada de les anteriors és la tercera, on muntem dues instàncies per separar els dos entorns i configurem l'afinitat de processadors per a controlar la dedicació de cada processat a cada instància. També hem de controlar la memòria que assignem a cada instància (server memory i màx server memory).
Exemple:
En un servidor de 6 nuclis dediquem 2 dels quatre processadors a donar servei a l'entorn de test mentre els 6 restants se'ls adjudica l'entorn de producció. Per fer-ho només hem d'obrir el SSMS i en les Propietats del servidor: XXXX a la part de Processadors habilitar cada processador manualment (desmarcant l'adjudicació automàtica). Veure imatge.

És bo saber també que podem assignar i desassignara a conveniència ja que es pot variar de forma dinàmica per a cada instància. En cas de necessitat és bo modificar la capacitat de aguanti si se'ns ve a sobre. Però no és or tot el que llueix i hem de saber que en estar gestionant dues instàncies ja estem consumint més que si gestionáramos només una.

Conceptes: affinity mask, affinity io mask