Ich habe ein kleine Batchdatei geschrieben, die den SQL Server Dienst beenden, wenn der SQL Server läuft und ihn startet, wenn er nicht läuft. Ich brauche dass, damit meine Dropbox die Datenbanken sichern kann. Dazu muss der Dienst beendet werden. Wen Dropbox dann fertig ist, dann starte ich die gleiche Batch, damit der SQL Server Dienst wieder gestartet wird. So brauche ich keine 2 verschiedenen Batchdatei, sondern es reicht eine. MSSQL$PSP muss ggf. natürlich durch den korrekten Dienstnamen ersetzt werden. Den findet man, wenn man den Dienst doppelklickt.
V2 vom 18.11.2011
Ich habe die Batch-Datei geändert, weil sie nur prüfte ob die sqlservr.exe läuft. Wenn aber zwei SQL Server Instanzen installiert sind (z.B. PSP und AUTODESKVAULT) dann klappt das nicht korrekt. Die neue BAT prüft explizit auf einen bestimmten Dienstnamen. Ihr müsst natürlich MSSQL$PSP durch euren Dienstnamen ersetzen!
@echo off & setlocal
ECHO PSP SQL Server
set Status=NichDa
for /f "tokens=4" %%b in ('sc query MSSQL$PSP ^|find "STATE "') do set Status=%%b
echo [Debug] Status: %Status%
if /i "%Status%" == "STOPPED" net start MSSQL$PSP
if /i "%Status%" == "RUNNING" net stop MSSQL$PSP
if /i "%Status%" == "NichDa" (
echo Irgendetwas Unerwartetes ist passiert...hol mal den Admin..
)
(Quelle als Basis für meine BAT)
Alter Stand
@echo off
set Programm=sqlservr.exe
tasklist |find /i "%Programm%" >nul
if %errorlevel% == 0 (
echo Das Programm "%Programm%" laeuft bereits
net stop MSSQL$PSP
) else (
echo Das Programm "%Programm%" laeuft gerade nicht! starte SQL-Server...
net start MSSQL$PSP
)
Links
http://inventorfaq.blogspot.com/2011/01/daten-zwischen-verschiedenen-pcs.html
Keine Kommentare:
Kommentar veröffentlichen
War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.