Lokaler Server Stoppen Starten

  • Huhu
    ich mache ein BackUp von einer Datenbank auf meinem Rechner nur muss ich dazu den Server stoppen und danach wieder starten.
    Momentan mache ich das über den "Server Configuration Manager" von Windows.
    Kann ich das auch anders machen? also ohne das ich nen Programm aufrufen muss?

    im Anhang noch mal ein Screenshot zum Programm

  • also das mit dem Befehl klappt wenn ich das über die Eingabeaufforderung mache aber wie bekomm ich das in AutoIt ?^^
    also ich könnt ja CMD starten aber würde das auch ohne gehen`?

  • Neben dem Befehl NET stop <Dienstname> kannst du auch den Befehl SC stop <Dienstname> benutzen. SC hat gegenüber NET einige Vorteile - einfach mal anschauen!


    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (25. Oktober 2010 um 11:24)

  • die idee von I2C klappt gut^^

    @Hassan
    Ichhab doch in der überschrift geschrieben Lokal^^

    EDIT
    UEZ
    Ich denke da ich wirklich nur starten und stoppen brauche geht das mit dem net schon ganz ausreichend aber danke ;)

  • Argh Server stoppen und dumme DB-Files kopieren :cursing: ich hoffe nur für Dich und nicht "produktiv". Besser nicht.

    Wieso musst Du denn den Server anhalten für Backups,ganz sicher nicht,
    erzeuge MSSQL Backups mit deren Bordmitteln und spare die anderen Verzeichnisse aus,
    falls die Sparversion des Backupprogramms keine SQL Datenbanken online sichern kann.

    Backups von den DBS kannst Du z.B. mit osql machen, das sit auf dem Server auch vorhanden.

    Hier mal ein Beispiel für den umgekehrten Weg...

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}", "Terminate")

    [/autoit] [autoit][/autoit] [autoit]

    Dim $day=_DateTimeFormat( _NowCalc(),2)
    Dim $vhodate = StringReplace(_NowCalcDate(), "/", "")
    If StringRight(@ScriptDir, 1) <> "\" Then $script_dir = @ScriptDir & "\"
    Dim $log=$script_dir & $vhodate & "-DB-Restore.log"

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("Ausgangstest-DB wiederherstellen", 369, 242,-1, -1); , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
    $Group = GuiCtrlCreateGroup("", 30, 30, 310, 110)
    $sql_t1 = GuiCtrlCreateRadio("Ausgangstest2005 [Test01-SQL2005]", 60, 60, 210, 20)
    If @ComputerName<>"Test-02" Then GUICtrlSetState ($sql_t1, $GUI_CHECKED)
    $sql_t2 = GuiCtrlCreateRadio("Ausgangstest2000 [Test02-SQL2000]", 60, 90, 210, 20)
    If @ComputerName="Test-02" Then GUICtrlSetState ($sql_t2, $GUI_CHECKED)
    $ok = GUICtrlCreateCheckbox("Ja, alle haben die DB verlassen.", 40, 170, 190, 20)
    $Start = GuiCtrlCreateButton("Wiederherstellung", 250, 170, 100, 50)

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists(@TempDir & "osql.exe") Then FileInstall("C:\Autoit\Tools\OSQL.EXE", @TempDir & "osql.exe")

    [/autoit] [autoit][/autoit] [autoit]

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Start
    If GUICtrlRead($ok) = 1 Then
    If GUICtrlRead($sql_t1) = 1 Then Start("Test-01\SQLExpress",2005)
    If GUICtrlRead($sql_t2) = 1 Then Start("Test-02",2000)
    Else
    MsgBox(0,"Achtung!","Wirklich Datenbank zurücksetzten?")
    EndIf
    Case Else
    ;;;
    EndSelect
    WEnd
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func Start($_srv,$ver)
    $_db="Ausgangstest" & $ver
    $_bak="c:\Backup\aktuelle_Ausgangstest.bak"
    $_mdf="DB_Daten"
    $_mdf_f="c:\Datenbanken\Ausgangstest" & $ver & ".mdf"
    $_ldf="DB_Protokoll"
    $_ldf_f="c:\Datenbanken\Ausgangstest" & $ver & ".ldf"
    GUISetState( @SW_Disable)
    RunWait(@TempDir & "osql -U Benutzer -P Kennwort -S " & $_srv & " -Q " & '"' & "Restore database " & $_db & " from DISK = '" & $_bak & "' with move '" & $_mdf & "' to '" & $_mdf_f & "', move '" & $_ldf & "' to '" & $_ldf_f & "', Replace" & '"' & " -o " & '"' & $log & '"', "", @SW_HIDE)
    GUISetState( @SW_ENABLE)
    FileDelete(@TempDir & "osql.exe")
    Run('explorer.exe /select, "' & $log &'"')
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Terminate()
    Exit 0
    EndFunc

    [/autoit]

    Nur die Datendateien wegzukopieren kann ganz derbe ins Auge gehen, die Dateien wissen das die noch angefügt / mit dem DBMS verbunden sind.
    Nur so als Warnung, es geht nichts über eine Sicherung *.bak die am Besten auch verifiziert wurde.

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Naja ich wollte ein Backup machen von einer Datenbank. Das Programm dazu kann auch Backups erstellen aber das geht nur in der Vollversion. Und die hol ich mir bestimmt nicht nur wegen dem Backup....
    Daher war meine Idee einfach die Datenbank Datei einfach kopieren fertig. Ist wesentlich weniger aufwand als alles andere (für mich xD)
    Aber dafür muss ich halt den Server kurz anhalten, weil ich sonst kein zugriff auf die Datei habe.
    Ich kopiere ja beide Dateien also die MDF und die LDF Datei ich denke das reicht für meinen Fall aus

  • Zitat

    Naja ich wollte ein Backup machen von einer Datenbank. Das Programm dazu kann auch Backups erstellen aber das geht nur in der Vollversion. Und die hol ich mir bestimmt nicht nur wegen dem Backup...

    Mir war schon klar warum Du das machen willst, Veritas für "Arme" ohne MSSQL Zusatz.
    Ich kenne auch Leute die sich mit der Vorgehensweise schon derbe in Verlegenheit gebracht haben.
    Mach Backpus mit dem SQL Server oder Kommandozeile und lass den Server laufen.
    Die Dateien haben eien Kennung (fortlaufende Nummer, die sich kontinuierlich ändert ) die wiederrum dem Server bekannt ist,
    im Falle eines Crashs kannst Du die nicht einfasch da wieder hinkopieren und den Dienst wieder starten.

    Zitat

    Ich kopiere ja beide Dateien also die MDF und die LDF Datei ich denke das reicht für meinen Fall aus


    Kann ich nur von abraten.


    hier der Code zum Sichern

    [autoit]

    $_srv="Thinkpad-dr"
    $_db="[NamederDB]"
    $_bak="d:\NamederDB.bak"
    RunWait("osql -U Benutzer -P Kennwort -S " & $_srv & " -Q " & '"' & "Backup Database " & $_db & " To DISK = '" & $_bak & "'" & ' with init"',"", @SW_HIDE)
    Exit

    [/autoit]

    Und wie gesagt bei Dir war es eine Expressinstalltion, immer schön an den "\Instanznamen" denken. :)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    3 Mal editiert, zuletzt von Dietmar (25. Oktober 2010 um 11:59)

  • also mit meiner umsetzung von deiner methode passiert nich wirklich was....

    ich hab folgendes probiert, aber er erstellt keine datei

    [autoit]

    $_srv="Thinkpad-dr"
    $_db="[SQL Server (CMXSQLEXPRESS)]" ; $_db="[CMXSQLEXPRESS]" auch ausprobiert
    $_bak="d:\NamederDB.bak"
    RunWait("osql -U xx -P xx -S " & $_srv & " -Q " & '"' & "Backup Database " & $_db & " To DISK = '" & $_bak & "'" & ' with init"',"", @SW_HIDE)
    Exit

    [/autoit]

    Einmal editiert, zuletzt von Kijan (25. Oktober 2010 um 15:58)

  • Vielleicht passt Du noch Benutzer Kennwort und Server an ;)

    [autoit]

    1
    $_srv="DeinSreverName\SQLEXPRESS"
    $_db="[CMXSQLEXPRESS]"
    $_bak="d:\NamederDB.bak" ; <- hast Du ein Laufwerk D:\

    [/autoit]

    Du kannst Dich auch anstelle "osql -U Benutzer -P Kennwort" mit "osql -E" anmelden wenn Du lokaler Admin bist.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (25. Oktober 2010 um 12:10)

  • hmm hab aber keinen benutzer und passwort... und wenn cih das weglasse also

    [autoit]

    $_srv="Thinkpad-dr"
    $_db="[CMXSQLEXPRESS]"
    $_bak="d:\NamederDB.bak"
    RunWait("osql -S " & $_srv & " -Q " & '"' & "Backup Database " & $_db & " To DISK = '" & $_bak & "'" & ' with init"',"", @SW_HIDE)
    Exit

    [/autoit]

    passiert auch nich viel bis auf das, dass Programm schneller durch is^^

  • Nimm mal
    osql -E
    wie über Dir geschrieben.
    Ansonsten User sa und Kennwort solte bekannt sein.

    Ausserdem steht da immer noch der Servername von mir drin. ?(
    So kann das bei Dir nicht funktionieren.
    Die Anmeldung erfordert
    -S (Servername) bzw. (Servername\Instanz)
    -E (User) aktiver User sofern in der SQL Verwaltung eingetragen und das Recht hat Backups zu machen.
    -U (User für z.B. SQl-Anmeldung)
    -P (Passwort)

    man osql ;)

    P.S. Du hast ne Mail... :rolleyes:

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    4 Mal editiert, zuletzt von Dietmar (25. Oktober 2010 um 12:22)

  • also ich hab quasi keine ahnung von datenbanken und servern^^

    Ich weis nur das was du auf dem Bild in meinem ersten Thread sehen kannst :(

    ich hab jetzt folgendes ausprobiert

    [autoit]

    $_srv="SQL Server"
    $_db="[CMXSQLEXPRESS]"
    $_bak="d:\NamederDB.bak"
    RunWait("osql -E " & $_srv & " -Q " & '"' & "Backup Database " & $_db & " To DISK = '" & $_bak & "'" & ' with init"',"", @SW_HIDE)
    Exit

    [/autoit]


    geht auch nicht.

    und wie gesagt ich habe keine infos zum server... außer vllt die daten die ich benutze um mich auf das programm einzuloggen. das währe aber nur admin ohne PW
    und ich weis auch nich wie der Server heißt^^
    ich seh da halt "SQL Server (CMXSQLEXPRESS)"
    ist das jetzt der Server? ist das die DB? oder beides?

    EDIT:
    Ja ich hab nen laufwerk D^^

  • So langsam machst Du mich aggressiv :)

    [autoit]


    $_srv= @ComputerName & "\CMXSQLEXPRESS"

    [/autoit]

    Das ist dein PC Name + INSTANZ sofern das Script auf dem Datenbakserver läuft.

    So und nun zur Anmeldung, wird osql auf dem Server gefunden testen im Dos Fenster,
    dann gibst Du da die Sachen mal für nen Test ein.

    osql -S "Servername...siehe oben" -E
    und sagst was dann passiert.

    Wäre schön wenn Du Datenbank und Datenbankmanagmentsystem auseinanderhalten kannst. ;)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Ich gebs auf Du wolltest doch vermutlich admin schreiben, oder. Und bist Du Dir sicher das die Datenbank so heisst wie die Instanz?

    Ich mach Dir ja keinen Vorwurf das Du Dich damit nicht auskennst aber umso wichtiger ist es vernünftige Sicherungen zu haben. :)
    Denn von Hause fehlt dem SQLExpress der SQL Agent und damit auch das automatische sichern,
    man kann zwar schön eien Plan zusammenklickern muss den aber dann doch via Taskl´planer starten, dann kann man es auch gleich ganz zu Fuss machen.
    Sollte so ein Job nicht regelmässig laufen, hast Du keine Sicherungen der datenbanken.
    Such doch mal nach *.bak *.trn (Logsicherung) on Du da fünfig wirst.

    Wie gesagt man kann sich das auch zusammen anschauen Netviewer etc aber erst gegen 19:00.
    Aber wenn Du die Login Daten hast oder aber der ausführende WinUser (-E) das Recht für Annmeldung / Sicherung hat sollte es kein Problem darstellen.

    TCP/IP scheint auch als Protokoll deaktiviert zu sein. Siehe Konfigurationsmanager

    Nach erfolgreicher Anmeldung sieht es übrigens so aus: 1> , wie gesagt nur Login testen.
    osql -U admin (-P Kennwort) oder osql -E
    testen. Wenn das Login klappt sehen wir weiter.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • also die Anmeldung klappt immer noch nicht.
    Immer der gleiche Fehler.
    Aber bei dem was du gepostet hast sind ja keine Rückschlüsse auf den Server oder der Datenbank möglich also auf was logge ich mich denn da ein?
    wie gesagt ich wollte im endeffekt nur nen Backup von der Datenbank haben. Und das einzige womit ich mich einlogge bei dem Programm is halt mit admin ohne pw....
    aber ka mit was ich mich bei dem befehl da anmelden soll...

    EDIT:

    hier is noch mal der ordnerstand wo auch die datenbank liegt und nen ordner mit LOG
    autoit.de/wcf/attachment/11607/
    autoit.de/wcf/attachment/11608/

  • Man meldet suich gegen das DBMS an.
    mit
    use [Datenbank]
    go
    kann man dan zu einer DB wechseln und Abfragen erstellen...usw.

    Wie gesagt die Remote Anmeldung ist bei Dir deaktiviert, Konfigurationsmanager.
    http://www.eulanda.de/inside/bediene…artmenue-07.png

    Um welches Programm geht es denn?
    Wo meldest Du Dich mit admin an , an das Programm was benutzt wird und eine DB braucht oder an ein Sicherungsprogram?

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o