SQL Server 2008 SP2 kiadva!

Hölgyeim és Uraim!

Végre a hőn áhított SQL 2008 SP2 kiadatott. Letölthető innen, a fixált bugok listája pedig a KB2285068 cikkben található. Vigyázat, a lista nem hibátlan, 1-2 dolog biztosan hiányzik belőle, például állítólag a lock escalation problémát javították (mely arról szól, hogy SQL 2008-ban van egy bug, amitől az INSERT-nél elfelejt lockot eszkalálni, és annyi lockot tud produkálni, ahány sort beszúrunk), de nincs a listában. Én meg még nem próbáltam ki. Majd megírom, ha igen.

Szóval lehet vinni tesztelni, meg várni még a SQL 2005 utolsó, negyedik SP-jére, melyet az év utolsó negyedévére ígértek.

SQL 2005 SP3 install és elmozgatott rendszeradatbázisok

Épp eszembe jutott, és gondoltam megosztom mindenkivel: pár hónapja SP3-at installáltunk a SQL-re, és azt találtuk, hogy elfrakkol az install. Újrakezdve is elfrakkolt. Meg kellett nézni a logot (programkönyvtár\Setup Bootstrap könyvtárban laknak ezek az izék), és kiderült a hiba: a distmodel.mdf fájl hiányzott a drágámnak, mert ott kereste, ahol a master.mdf volt, de mi átmozgattuk máshova időközben. Úgyhogy baráti jótanács: ha elmozgatjátok a rendszeradatbázisokat, mozgassátok az összes adatfájlt együtt :) Kicsit deja vu érzésem van – lehet, hogy ezt már megírtam egyszer?

SQL újdonságok a piacon

Egyelőre még mindig nem jutottam el oda, hogy egy normális szakmai cikket írjak, mert a *** automatizált szerver menedzsmentet csinálom (kárpótlásul a végén majd néhányat felteszek a scriptekből :), és úgy látszik, hogy nem tudok beszélni/írni róla meg csinálni is.

Viszont van két csodás hír, amivel nem is olyan régen találkoztam: az egyik az, hogy van új Books Online az SQL 2008-hoz (és csak ismételni tudom magam, használjátok mindig a legfrissebb BOL-t), ha minden igaz, az SP1 CU2 verzióhoz van update-elve, letölthető innen.

Az SQL 2008 SP1 CU2 pedig az a verzió, amiről már korábban írtam, hogy nagyon várom, mondjuk én főleg SQL 2005-höz. Ugyanis itt válik lehetővé – egy külön megadott trace flaggel – az SQL szerver memóriájának a fizikai memóriában tartása, a fantasztikus lock pages in memory. Az SQL Server Support Team blogjában olvasható egy szép cikk erről. Az SQL 2005 SP3 CU4 elméletileg egy hónap múlva itt lesz, tekintve, hogy eddig tartották a határidőt, én nagyon optimista vagyok.

SQL Server Standard Edition és Lock Pages in memory 64 biten

Ha az ember egy erősebb vason SQL Server Standard Editiont futtat, akkor találkozhat a kedves hibaüzenettel az errorlogban:
A significant part of sql server process memory has been paged out. This may result in performance degradation
Ez kellemetlen lehet, a oprendszer kitalálja, hogy neki másra (is) kell memória, és kiülteti az SQL-t a kispadra, aminek a teljesítménye tényleg leromolhat ilyenkor, nem viccel az errorlog.

Enterprise Edition esetén ez nem probléma, mivel az rendelkezik a mágikus “Lock pages in memory” képességgel (feltéve, hogy a futtató user megkapta a szükséges OS-szintű jogot), de a standardon bizony sokat szívtak ezzel emberek, beleértve engemet is. Éppen ezért örülök nagyon annak, hogy végre kivették ezt a bosszantó korlátozást, pontosabban kiveszik hamarosan. Még pontosabban egy trace flag segítségével be lehet majd kapcsolni azt, hogy lehessen lockolni a memóriába a lapokat. A várható szállítási idők:

  • SQL 2008 SP1 CU 2 – 2009 május
  • SQL 2005 SP3 CU 4 – 2009 június

Én már felírtam a naptáramba :) A PSS blogon az eredeti post itt olvasható.

SQL Server SP kontra CU

Nemrég jött ki az SQL 2005 SP3, és múlt héten a SQL 2008 SP1. Mindenki patchelheti az SQL-jeit – és természetesen a klienseket, a Management Studiokat is. Eddig ez egy teljesen átlagos történet, az érintett emberek általában már tudják is.

Azt viszont nem mindenki tudja, hogy az SQL patch stratégiájának vannak érdekes mellékhatásai. Ezek megismeréséhez először nézzük meg a stratégiát magát: jönnek ki a hotfixek szépen sorban, de mivel sok van belőlük, időről időre összerakják őket egy nagyobb csomagba, melyet cumulative update néven árulnak. Ezek a megelőző service pack (itt most ő lesz az SP, nem a stored procedure) óta kiadott fixeket tartalmazzák, például az SQL 2005 SP2 CU10 az SP2 utáni tizedik csomag, aminek előfeltétele az SP2 telepítése, de a többi CU telepítése nem. Tehát a CU-k egyfajta “SP-n belüli SP-k”. Ez tiszta sor, nézzük a csavart.

Amikor egy SP-t készítenek, akkor először is meghatározzák a tartalmát. A service pack nemcsak a hotfixeket tartalmazza, hanem ebbe kerülnek bizonyos alkalmazásbeli módosítások is (az SQL 2000 SP4 az “önblokkoló” processzeket is blokkoltnak tünteti fel – jelezve, hogy saját magukat blokkolják; SQL 2005 SP1-be került a mirroring támogatása; az SQL 2008 SP1-be a oneclick installálható ReportBuilder). Így ennek a tesztelése egy kicsit nagyobb falat. Ezt kiválóan mutatja az SQL 2000 SP4 esete, ami végül nem lett tökéletes, elrontotta az AWE támogatást, így gyakorlatilag senki nem használ(t) “csak” SP4-es SQL Server 2000-t, hanem a 8.00.2039-es verziójú SP4-re már tolta is rá a 8.00.2040 verziójú hotfixet, ami az AWE támogatást visszaadta.

Ennek a “scope freeze“-nek a hozadéka a fent említett mellékhatás, ami tulajdonképpen annyi, hogy amikor kijön az új service pack, az nem tartalmaz minden addig kiadott hibajavítást, azokat sem, amiket már kiadtak cumlative update-ben is. Például az SQL 2005-nél az SP2 utolsó két halmozott firssítése (avagy cumulative update-je), a CU11 és CU12 már akkor készült el, amikor az SP3 scope freeze megtörtént. Hasonlóan a SQL 2008 SP1 a CU1-3 hotfixeket tartalmazza, a CU4-et már nem. A CU4-ből majd egy SP1 CU1 lesz hamarosan. Ha valakinek tehát tényleg kellett egy olyan hotfix, ami a CU4-ben volt benne, az ne rakja fel az SP1-et még, hanem várjon a CU4 SP1-es “újrakiadásáig”. Ha esetleg valaki felteszi a CU4-et, majd rá az SP1-et, azt veszi észre, hogy eltűntek a CU4-es hotfixek. Ez ugyanígy áll az SQL 2005-re is.

Tehát a CU-k az SP-k előtt bonyodalmat okozhatnak. A modell jóságáról lehet vitatkozni (épp nemrégiben olvastam egyet, az ihletett erre a postra, szerencsére én kellemetlenségek nélkül ismertem meg ezt még a 2005 SP3 kapcsán), mindenesetre tény, hogy így működik. Egy számomra szimpatikus javaslat volt ennek feloldására, hogy service pack scope freeze után ne adjanak ki cumulative update-eket, csak egyedi hotfixeket, így elkerülhetővé válik az akaratlan folteltávolítás (vagy patch uninstall angolul). Remélem a Microsoft megfogadja ezt a tanácsot, nekem is jobban tetszene.