Windows - SQL szolgáltatások kezelése parancssorból, egyszerűen

Az SQL 2000 szerver rendszerszolgáltatásaival kapcsolatos számos műveletet elvégezhetjük parancssorból egy egyszerű segédprogram segítségével. Programjainkból, szkriptjeinkből, de akár batch fájlokból is meghívhatjuk. Offline adatmentésnél a legegyszerűbb megoldások közé sorolható a kiszolgáló leállítására, majd a mentés végeztével az újraindításra.
A parancssori segédprogram neve: SCM.EXE, az SQL kiszolgáló telepítésekor kerül a rendszerbe a %program files%\Microsot SQL Server\80\Tools\Binn mappába. Ha a súgófájlokat böngésszük, ne keverjük össze a SCM - Service Control Manager (Biztonsági konfiguráció és analízis) szolgáltatással.
Nézzük meg konkrét példákon keresztül a használatát:
scm -Action 6 -Server Zeusz -Service mssqlserver
Vegyük sorra a paramétereket:
Elsőként az "Action"-t használtuk és utána egy kódot írtunk, melyre vonatkozóan a következő lehetőségeink vannak:
Kód Művelet
1 Start
2 Restart
3 Futás
4 Szolgáltatás törlése (Delete)
5 Szolgáltatás telepítés (Install)
6 Stop
7 Módosítás
A hármas kóddal jelölt műveletnél a visszatérési értéket kell vizsgálni. Ha -1, akkor az adott SQL szolgáltatás nem fut, ha 1, akkor igen.
Ebből látszik, hogy a fenti sor leállít valamit. De hol és mit? A "Zeusz" nevű SQL kiszolgálón, melyet a "-Server" paraméter után adtunk meg és az SQL kiszolgálót - pontosabban a "-Service" paraméter után megadott "mssqlserver" szolgáltatást. Itt jegyeznénk meg, hogy a fentiekben többször említettük a szolgáltatásokat, de az SCM parancs kizárólag az SQL szerver hatáskörébe tartozókat kezeli a rendszerszolgáltatásokat nem. A "-Server" paraméter opcionális, ha elhagyjuk a helyi gépen fejti ki hatását.
A műveletek a SA fiókkal történnek, melyhez szükség lehet egy jelszóra:
scm -Action 6 -Server Zeusz -Service mssqlserver -Pwd 123abc
A jelszót a "-Pwd" kapcsoló után adtuk meg. Elhagyása esetén üres sztring adódik át a szervernek. Batch fájlokban történő felhasználás esetén vegyük figyelembe, hogy a jelszó titkosítás nélkül tárolódik.
Minden szolgáltatásnak telepítéskor (Install) és módosításkor (Modify) átadhatók különféle paraméterek, melyek az indításnál kerülnek feldolgozásra (vagy egyáltalán nem dolgozza fel őket, ha nincs rá felkészítve):
scm -Action 7 -Server Zeusz -Service mssqlserver -Pwd 123abc -StartupOptions 1 2 3
Több paraméter esetén szóközzel kell elválasztani őket egymástól.
Ugyancsak telepítéskor és módosításkor lehet megadni a szolgáltatás elérési útját (ha nem szerepel az alapértelmezett elérési utak között):
scm -Action 7 -Server Zeusz -Service mssqlserver -Pwd 123abc -ExePath "c:\Program Files\Microsoft SQL Server\MSSQL\Binn\szolgáltatásnév.exe"
Ugyanekkor kell eldöntenünk azt is, hogy a szolgáltatás automatikusan vagy manuálisan induljon az operációs rendszer indításakor.
scm -Action 7 -Server Zeusz -Service mssqlserver -SvcStartType 2
Ha az "-SvcStartType" értéke 1, akkor nekünk kell gondoskodnunk az indításról, ha 2, akkor automatikusan történik.
Alapértelmezésben a SA fiókkal futnak az SQL szolgáltatások (ha csak a telepítésnél nem rendelkeztünk másként). Rendszergazdaként való futtatáshoz használjuk a "-SvcAccount" kapcsolót:
scm -Action 5 -Server Zeusz -Service mssqlserver -SvcStartType 2 -SvcAccount rendszergazda -SvcPwd 123abc
Látható, hogy egy további paraméterbe ("-SvcPwd") megadtuk a fiókhoz tartozó jelszót is.
Végére maradt a "-Dependencies" kapcsoló, mellyel azokat a szolgáltatásokat határozhatjuk meg, melyeknek a "-Service"-ben megadott előtt kell elindulnia.
scm -Action 7 -Server Zeusz -Service sqlserveragent -Dependencies mssqlserver