Egy nagyon érdekes kérdést tettek fel a belső SQL Server MVP newsgroupon. Tegyük fel van egy windows szervizem, ami ugyanazon a gépen fut, mint az SQL Server. Ha az SQL Server észhez tér, el kell indulni a szerviznek. A szervizek között lehet dependency-t létrehozni, de ez nem jó, mert már az SQL Server mint szerviz már fut, attól még nem lehet használni, mert fut az induló recovery folyamat. Hogyan lehet detektálni, kész a recovery?
A primitív megoldás, hogy próbálkozgatunk becsatlakozni. Gagyi.
A szellemes megoldás a következő. Az SQL Server létrehoz egy Named Event-et, és ezt signaled állapotba hozza, ha az összes adatbázis recovery-je megtörtént. Process Explorerrel megnézve nálam ez az event neve:
\sqlserverRecComplete$SQL2008. SQL2008 az instance neve, innen a dollár utáni rész.
Azaz, a szerviznek csak rá kell szinkronizálni erre az eventre, és máris pontosan tudjuk, mikortól él a szerver. Hát nem zseniális?
Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.
LEAVE A COMMENT
2 COMMENTS
Végül is, erre vannak az eventek… Az izgalmas téma az lenne, ha tudnánk, hogy milyen egyéb named event-ek érhetők még el az SQL Serverben és melyik mire használható!
Sajnos nem tudok többről, bár még kettő látszik a Process Explorerben.
HighMemoryCondition és LowMemoryCondition.
Ezeket nem ő állítja be és hozza létre, hanem az oprendszer. Innen tudja, ha gáz van, és el kell kezdni lapozni kifelé a cuccokat a Buffer Cache-ből, mert fogytán a RAM.
http://msdn2.microsoft.com/en-us/library/bb742866.aspx
http://msdn2.microsoft.com/en-us/library/aa490194.aspx