SQL Server (Express) Dump mit Batch
Hi,
ich versuche eigentlich nur mit einem Script Datenbank Dumps zu erstellen. Google liefert da auch den passenden Befehl:
SqlCmd -S.\SQLExpress -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'"
Soweit ich das aus diesem Beispiel sehe, habe ich alles richtig gemacht:
http://mytv.senseitweb.com/wikis/mytv/how-do-i-backup-restore-my-databa ...
"To Backup:
sqlcmd -S.\SQLExpress
1> BACKUP DATABASE dbName TO DISK = 'path'
2> GO
An alternative, single-line backup command:
sqlcmd -S.\SQLExpress -Q"BACKUP DATABASE dbName TO DISK = 'path'"
(Note that you must enclose the path within quotes)
Replacing <dbname></dbname>with the name of the database you wish to backup and <path></path>with the path for the backupfile. For a default myTV installation dbName would be myTV and the path could be C:\Program Files\Microsoft SQL Server\bak\myTV.bak.
Daelic's Note: I found my backup path here: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup. Also, you will get an error and the backup will fail if you attempt to backup anywhere other than the pre-defined MSSQL backup location."
Wenn ich sqlcmd normal starte, also ohne Parameter und dann ein BACKUP DATABASE mit Path in Anführungszeichen eingebe und mit GO starte läuft auch alles wunderbar (Daelics Hinweis bezüglich des Sicherungsortes greift da nicht, sofern entsprechender Dateizugriff besteht, kann ich überall hin sichern).
Sobald ich aber die single-line variante verwende, bekomme ich den Fehler:
Sqlcmd: '-Q "BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'': Unerwartetes Argument. Geben Sie '-?' ein, um die Hilfe anzuzeigen.
Meine Eingabe:
SqlCmd -S.\SQLExpress -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'"
Vorschlag aus dem Tutorial:
sqlcmd -S.\SQLExpress -Q"BACKUP DATABASE dbName TO DISK = 'path'"
Sollte eigentlich passen. Ich weiß auch das es Alternativen gibt. Ich würde nur gern verstehen wo hier mein Fehler liegt.
ich versuche eigentlich nur mit einem Script Datenbank Dumps zu erstellen. Google liefert da auch den passenden Befehl:
SqlCmd -S.\SQLExpress -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'"
Soweit ich das aus diesem Beispiel sehe, habe ich alles richtig gemacht:
http://mytv.senseitweb.com/wikis/mytv/how-do-i-backup-restore-my-databa ...
"To Backup:
sqlcmd -S.\SQLExpress
1> BACKUP DATABASE dbName TO DISK = 'path'
2> GO
An alternative, single-line backup command:
sqlcmd -S.\SQLExpress -Q"BACKUP DATABASE dbName TO DISK = 'path'"
(Note that you must enclose the path within quotes)
Replacing <dbname></dbname>with the name of the database you wish to backup and <path></path>with the path for the backupfile. For a default myTV installation dbName would be myTV and the path could be C:\Program Files\Microsoft SQL Server\bak\myTV.bak.
Daelic's Note: I found my backup path here: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup. Also, you will get an error and the backup will fail if you attempt to backup anywhere other than the pre-defined MSSQL backup location."
Wenn ich sqlcmd normal starte, also ohne Parameter und dann ein BACKUP DATABASE mit Path in Anführungszeichen eingebe und mit GO starte läuft auch alles wunderbar (Daelics Hinweis bezüglich des Sicherungsortes greift da nicht, sofern entsprechender Dateizugriff besteht, kann ich überall hin sichern).
Sobald ich aber die single-line variante verwende, bekomme ich den Fehler:
Sqlcmd: '-Q "BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'': Unerwartetes Argument. Geben Sie '-?' ein, um die Hilfe anzuzeigen.
Meine Eingabe:
SqlCmd -S.\SQLExpress -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'"
Vorschlag aus dem Tutorial:
sqlcmd -S.\SQLExpress -Q"BACKUP DATABASE dbName TO DISK = 'path'"
Sollte eigentlich passen. Ich weiß auch das es Alternativen gibt. Ich würde nur gern verstehen wo hier mein Fehler liegt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187357
Url: https://administrator.de/contentid/187357
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
ich hatte auch schonmal das Vergnügen mit dem SQL-Express Server, mir ist dabei aufgefallen, dass das Backup per Script nur in folgenden Pfad geklappt hat
Ich sichere hiermit jeden Abend erfolgreich eine Datenbank, ich hoffe das hilft dir
ich hatte auch schonmal das Vergnügen mit dem SQL-Express Server, mir ist dabei aufgefallen, dass das Backup per Script nur in folgenden Pfad geklappt hat
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Backup\
Ich sichere hiermit jeden Abend erfolgreich eine Datenbank, ich hoffe das hilft dir
sqlcmd -Sservername01\SQLEXPRESS -Q"BACKUP DATABASE [Datenbankname] TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Backup\backup.bak'"
Hallo ndrag76,
das unerwartete Argument dürfte hinter dem -S stehen. Mit -S gibst Du den Server an, an dem Du Dich anmelden willst. Wenn Du SqlCmd ohne Parameter startest, dann wirst Du mit Windows-Authentifizierung an der Standardinstanz angemeldet. Anschließend wird der Backup-Befehl ordentlich verarbeitet.
Du kannst also den Parameter -S weglassen (SqlCmd -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'") oder aber den korrekten Server- und Instanznamen angeben.
Außerdem empfehle ich Dir noch, mal einen Blick in die SQL Server Hilfe zu dem Thema SqlCmd zu werfen. Nur für den Fall, daß Du dann vielleicht doch noch irgendetwas variieren mußt/willst.
Gruß, Mad Max
das unerwartete Argument dürfte hinter dem -S stehen. Mit -S gibst Du den Server an, an dem Du Dich anmelden willst. Wenn Du SqlCmd ohne Parameter startest, dann wirst Du mit Windows-Authentifizierung an der Standardinstanz angemeldet. Anschließend wird der Backup-Befehl ordentlich verarbeitet.
Du kannst also den Parameter -S weglassen (SqlCmd -Q"BACKUP DATABASE [DB_Main_Users] TO DISK = 'D:\Backups\Vollbackup\DB_Main_Users.bak'") oder aber den korrekten Server- und Instanznamen angeben.
Außerdem empfehle ich Dir noch, mal einen Blick in die SQL Server Hilfe zu dem Thema SqlCmd zu werfen. Nur für den Fall, daß Du dann vielleicht doch noch irgendetwas variieren mußt/willst.
Gruß, Mad Max