dibadu
Goto Top

Sicherung einer SQL-Express Datenbank

Guten Tag,
ich verwalte einen kleinen Server (Windows Server 2019) für einen Kindergarten. Darauf läuft eine Vereinsverwaltung-Software die eine SQL-Express-Datenbank verwendet. Zurzeit wird die Datenbank nur manuell gesichert (was hin und wieder auch vergessen wird). Ich möchte den Vorgang automatisieren.
Dazu habe ich gelesen das man mit Hilfe einer Batch-Datei einen SQL-Befehl zur Sicherung der Datenbank in eine Datei auslösen kann. Diese Batch-Datei wiederum kann man dann täglich mit Windows-Bordmitteln (geplante Tasks) ausführen. Soweit mein Plan....

Im SQL Server Management Studio Express habe ich die Datenbank ausgewählt -> Tasks -> Sichern -> Script und mir den Befehl kopiert. Wenn ich die Sicherung hier ausführe, wird auch ein Backup erstellt. Der Befehl sieht wie folgt aus (und seht in der Datei SQL-Sicherung.sql):
BACKUP DATABASE [meister] 
TO  DISK = N'C:\Datensicherung\SQL-Sicherung.bak'   
WITH NOFORMAT, NOINIT,  
NAME = N'meister-Vollständig Datenbank Sichern', SKIP, NOREWIND, NOUNLOAD,  STATS = 10  
GO

Dann habe ich die Batchdatei erstellt:
@ECHO OFF
SQLCMD -E -S \SQLESPRESS -i C:\Datensicherung\SQL-Sicherung.sql

Leider erhalte ich beim ausführen der Batch-Datei immer folgende Meldung:
Sqlcmd: Fehler: Microsoft ODBC Driver 13 for SQL Server : SQL Server-Netzwerkschnittstellen: Die Verbindungszeichenfolge ist ungültig [87]. .
Sqlcmd: Fehler: Microsoft ODBC Driver 13 for SQL Server : Anmeldungstimeout abgelaufen.
Sqlcmd: Fehler: Microsoft ODBC Driver 13 for SQL Server : Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. Weitere Informationen erhalten Sie in der SQL Server-Onlinedokumentation..
Drücken Sie eine beliebige Taste . . .

Die Hilfe von Microsoft How to schedule and automate backups of SQL Server databases in SQL Server Express hilft mir nicht weiter. ich scheitere bereits bei"Step A": Use SQL Server Management Studio Express or Sqlcmd to create the following stored procedure in your master database:...

Kann mir jemand auf die Sprünge helfen was hier falsch ist oder mir einen anderen Lösungsweg vorschlagen?
Vielen Dank
Dirk

Content-ID: 569445

Url: https://administrator.de/contentid/569445

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

StefanKittel
StefanKittel 04.05.2020 um 00:44:48 Uhr
Goto Top
Moin,

warum nicht eine richtige Datensicherung des PCs?
Muss ja nicht mal was kosten.

https://www.veeam.com/de/windows-endpoint-server-backup-free.html

Stefan
Meierjo
Lösung Meierjo 04.05.2020 um 07:23:24 Uhr
Goto Top
Hallo

Ich meine, du musst mindestens noch User und Passwort im Script angeben, wie auf der von dir verlinkten Seite angegeben
// Sqlbackup.bat
sqlcmd -U SQLLogin -P password -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases  @backupLocation ='D:\SQLBackups', @BackupType=’D’"  

Gruss
scar71
scar71 04.05.2020 um 08:48:11 Uhr
Goto Top
kann diesen Vorschlag einfach ebenfalls empfehlen.
Einfach einzurichten, zuverlässige Funktion, kostenlos.
Quercus
Lösung Quercus 04.05.2020 um 09:59:38 Uhr
Goto Top
Bei deiner Fehlermeldung Prüf mal bitte mit Welchen rechten du dich anmeldest an der SQL Datenbank ob als SA oder mit Windows Authentifizierung ist auch unter Punkt Example 1 und Example 2 von deinem link so Beschrieben.

und dann schau dir mal deine Batch an... du willst einerseits sichern gibst hier aber ein sql Script an face-wink dein link von Microsoft gibt dir doch eine super Anleitung.

da zu dann im Windwos Taskplaner schauen das du dieses mit Administratoren Rechten ausführst face-wink
DiBaDu
DiBaDu 05.05.2020 um 20:43:41 Uhr
Goto Top
Hallo Stefan,
danke für deine Antwort. Eine Gesamtsicherung mache ich auch regelmäßig, aber nur 1x im Monat. Aber die Datenbank ich das "Herz" des ganzen und soll täglich gesichert werden. Außerdem werden mehrere Versionen gespeichert, das würde bei einem Vollbackup des gesamten Servers mein NAS sprengen.

Aber die Backup-Lösung von Veeam ist echt klasse, die nutze ich auch.
Dirk
DiBaDu
DiBaDu 05.05.2020 um 21:54:11 Uhr
Goto Top
Meierjo,
ich habe viel probieren müssen aber jetzt klappt es:

Eines meiner Probleme war das ich nicht wusste wie ich die gespeicherte Prozedur überhaupt erstelle, dabei hat mir das hier geholfen: Erstellen einer gespeicherten Prozedur

Dann habe ich Dein Script (angepasst) ausgeführt und es ist nichts passiert. Keine Fehlermeldung aber auch kein Backup.....

Ich musste das Script noch etwas anpassen:
//sqlbackup.bat
sqlcmd -U SA -P 123456 -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases  @databaseName = meister, @backupLocation =N'C:\Datensicherung\', @BackupType=N'F'"  

Das entscheidende war das "N" vor dem Wert bei @backuplocation und @backuptype

Ich werde das ganze nochmal auf dem Produktivsystem durchführen und dann eine Anleitung dazu schreiben.....

Danke für die Anregungen.