SQL-Backupscript für MSSQL Express 2019 über eine Batchdatei aufrufen

peekey

Benutzer
Beiträge
11
Hallo zusammen,

ich habe ein bestehendes Backup-Script angepasst (siehe unten), dass beim direkten Ausführen im Management Studio läuft.
Leider klappt der Aufruf über die Batchdatei nicht (siehe unten).
Habe in der Suche nicht genau das gefunden was ich suche bzw. nicht ganz verstanden.

Genutzt wird ein MSSQL Express 2019 (15.0.2000)
Die sqlcmd.exe liegt im Pfad wir in der Batch angegeben.
Servername sollte auch passen.

Wenn ich die Batchdatei aufrufe, blitzt es nur kurz auf.
Bin bedauerlicherweise nicht so firm im MSSQL, wäre klasse, wenn ihr mich unterstützen würdet.

Gruß
Peekey

PS: Wenn Angaben fehlen, bitte kurz mitteilen.

Batchdatei (BackupRoutineScript.bat)

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE"

-i "C:\EHFleet_Backup_DBs\BackupScript.sql"

-E -S DE0025S01\EHFleet –b


SQL-Datei (BackupScript.sql)

BEGIN



DECLARE @Sicherungspfad varchar(255)

DECLARE @Tag varchar(50)



/****** Hier Pfad des Sicherungslaufwerks angeben ******/

SET @Sicherungspfad = 'C:\EHFleet_Backup_DBs\'



SET @Tag = datename(weekday,getdate())

SET @Sicherungspfad = CONCAT(@Sicherungspfad, @Tag, '.bak')



/****** Datenbank sichern nach Sicherungspfad jeweils mit Wochentagsbezeichnung ******/

/****** HINWEIS: ggf. SC504SQL durch entsprechenden Datenbanknamen ersetzen ******/

BACKUP DATABASE [EHFleet] TO DISK = @Sicherungspfad WITH NOFORMAT, INIT, NAME = N'EHFleet-Vollständige Sicherung', SKIP, NOREWIND, NOUNLOAD, STATS = 10



END
 
Werbung:
Wenn ich die Batchdatei aufrufe, blitzt es nur kurz auf.
Machst Du das über den Explorer?
Dann versuch mal, das Skript aus einem geöffneten CMD Fenster zu starten, dass dann auch offenbleibt und alle Ausgaben erhält.

Wenn die Ausgaben nicht plausibel sind, kannst Du natürlich auch Dein Script anpassen, das erzeugt ja die Ausgaben.
 
Um aus der CMD Befehle gegen den SQL laufen zu lassen braucht es auch xp_cmdshell = enable am Server.
 
Hallo zusammen,

danke für eure schnelle Unterstützung.


@dabadepdu
Wenn ich das Script in der Eingabeaufforderung ausführe, öffnet der Server die Management Console und zeigt mir den Text des Sciptes an.

@ukulele
Das teste ich mal.

Gruß
Peekey
 
Hallo nochmal,

@ukulele
Ich habe mal den Code aus Deinem Link ausgeführt, um xp_cmdshell zu aktivieren.
Siehe Meldung in Screenshot 1
Im Screenshot 2 habe ich mal über Facets geschaut, ob mir XPCmdShellEnabled angezeigt wird (wie im Screenshot 3 aus Deinem Link)
Ist leider nicht der Fall.
Habe die Batchdatei nochmal ausgeführt, ohne Erfolg.

Gruß
Peekey
 

Anhänge

  • 3.webp
    3.webp
    80,9 KB · Aufrufe: 1
  • 1.webp
    1.webp
    41,1 KB · Aufrufe: 1
  • 2.webp
    2.webp
    83,6 KB · Aufrufe: 1
Laut dem CMD Screenshot wurde doch ein Backup erstellt? Ich bin verwirrt.

Liegt an dem Ziel eine bak-Datei?
Welcher Benutzer führt die Sicherung aus, hat der Schreibrechte auf das Dateisystem des Zielpfades?
Was hast du denn geändert?
 
Ja, die Bak-Datei war dann im Backup-Verzeichnis.
Allerdings habe ich ja den Batch-Code in die CMD kopiert und ausgeführt.
Führe ich die Batch-Datei direkt aus, passiert nichts.
Ich öffne die Eingabeaufforderung normal, bin aber als Domän-Admin angemeldet

Der sa führt die Sicherung aus, hat die Public- und die Sysadmin-Rolle
 
Führe ich die Batch-Datei direkt aus, passiert nichts.

Kannst du hier einen Screenshot erstellen? Hast du in der .bat mittlerweile alles in einer Zeile?

Ich öffne die Eingabeaufforderung normal, bin aber als Domän-Admin angemeldet

Das ist eine schlechte Idee!
Hast du die Eingabeaufforderung "als Administrator" gestartet?

Der sa führt die Sicherung aus, hat die Public- und die Sysadmin-Rolle

Wegen sa steht weder in der .bat noch in der .sql etwas. -E sagt ja aus, dass er den angemeldeten User nutzt:

-E​

Uses a trusted connection instead of using a user name and password to sign in to SQL Server. By default, without -E specified, sqlcmd uses the trusted connection option.

The -E option ignores possible user name and password environment variable settings such as SQLCMDPASSWORD. If the -E option is used together with the -U option or the -P option, an error message is generated.
 
Kannst du hier einen Screenshot erstellen? Hast du in der .bat mittlerweile alles in einer Zeile?

Ja, steht in einer Zeile. Anbei ein Screenshot von der .bat

Das ist eine schlechte Idee!
Hast du die Eingabeaufforderung "als Administrator" gestartet?

Nein, einfach gestartet

Wegen sa steht weder in der .bat noch in der .sql etwas. -E sagt ja aus, dass er den angemeldeten User nutzt:
 

Anhänge

  • 10.webp
    10.webp
    56 KB · Aufrufe: 3
Werbung:
Zurück
Oben