Ich war zu lässig bei der Durchführung von DB-Sicherungen auf unseren internen Servern.
Gibt es ein einfaches Befehlszeilenprogramm, mit dem ich bestimmte Datenbanken in SQL Server 2005 sichern kann? Oder gibt es ein einfaches VBScript?
sql-server
command-line
scripting
backup
Frank Krueger
quelle
quelle
Antworten:
Verwenden Sie osql oder sqlcmd , um eine einzelne Datenbank über die Befehlszeile zu sichern .
Sie sollten auch die Dokumentation zu BACKUP und RESTORE sowie die allgemeinen Verfahren lesen .
quelle
WITH FORMAT
das Speichermedium formatiert wird: " Die Option FORMAT macht den gesamten Medieninhalt ungültig und ignoriert alle vorhandenen Inhalte. " Stellen Sie sicher, dass dies das ist, was Sie möchten.osql.exe
war inC:\Program Files\Microsoft SQL Server\140\Tools\Binn\OSQL.EXE
Ich benutze ExpressMaint .
Um alle Benutzerdatenbanken zu sichern, mache ich zum Beispiel:
quelle
Planen Sie Folgendes, um alle Datenbanken zu sichern:
In meinem Blog finden Sie außerdem weitere Details: So automatisieren Sie SQL Server Express-Sicherungen .
quelle
Ich habe dies auf einer Microsoft Support-Seite http://support.microsoft.com/kb/2019698 gefunden .
Es funktioniert super! Und da es von Microsoft kam, denke ich, dass es ziemlich legitim ist.
Grundsätzlich gibt es zwei Schritte.
Planen Sie die Sicherung von Ihrem Taskplaner aus. Möglicherweise möchten Sie zuerst eine .bat- oder .cmd-Datei einfügen und dann diese Datei planen.
Ersetzen Sie natürlich YOUR_SERVER_NAME durch Ihren Computernamen oder versuchen Sie es optional. \ SQLEXPRESS und stellen Sie sicher, dass der Sicherungsordner vorhanden ist. In diesem Fall wird versucht, es in c: \ SQL_Backup abzulegen
quelle
Sie können die Sicherungsanwendung von ApexSQL verwenden. Obwohl es sich um eine GUI-Anwendung handelt, werden alle Funktionen in CLI unterstützt. Es ist möglich, entweder einmalige Sicherungsvorgänge durchzuführen oder einen Job zu erstellen, mit dem bestimmte Datenbanken regelmäßig gesichert werden. Sie können die Schalterregeln überprüfen und in den Artikeln beispielhaft finden:
quelle
Ich verwende tsql in einer Linux / UNIX-Infrastruktur, um auf MSSQL-Datenbanken zuzugreifen. Hier ist ein einfaches Shell-Skript zum Speichern einer Tabelle in einer Datei:
quelle
Eventuell, wenn Sie keine vertrauenswürdige Verbindung haben, wie der Switch –E deklariert
Verwenden Sie die folgende Befehlszeile
"[program dir]\[sql server version]\Tools\Binn\osql.exe" -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak'" -S [server] –U [login id] -P [password]
Wo
[Programmverzeichnis] ist das Verzeichnis, in dem die Datei osql.exe vorhanden ist
[SQL Server-Version] Ihre SQL Server-Version 110 oder 100 oder 90 oder 80 beginnt mit der größten Anzahl
[Server] Ihr Servername oder Ihre Server-IP
[Login-ID] Ihr MS-SQL Server-Benutzer-Login-Name
[Passwort] das erforderliche Login-Passwort
quelle
C:\tmp
Ist der Pfad im Server oder lokal ?Die Antwort von Microsoft zum Sichern aller Benutzerdatenbanken in SQL Express finden Sie hier :
Der Prozess ist: Kopieren, Einfügen und Ausführen des Codes (siehe unten. Ich habe oben einige seltsam nicht kommentierte Zeilen kommentiert) als Abfrage auf Ihrem Datenbankserver. Das heißt, Sie sollten zuerst das SQL Server Management Studio installieren (oder auf andere Weise mit SSMS eine Verbindung zu Ihrem Datenbankserver herstellen). Diese Codeausführung erstellt eine gespeicherte Prozedur auf Ihrem Datenbankserver.
Erstellen Sie eine Batchdatei, um die gespeicherte Prozedur auszuführen, und verwenden Sie dann den Taskplaner, um einen regelmäßigen (z. B. nächtlichen) Lauf dieser Batchdatei zu planen. Mein Code (der funktioniert) ist eine leicht modifizierte Version ihres ersten Beispiels:
Das hat bei mir funktioniert und ich mag es. Jedes Mal, wenn Sie es ausführen, werden neue Sicherungsdateien erstellt. Sie müssen eine Methode zum routinemäßigen Löschen alter Sicherungsdateien entwickeln. Ich habe bereits eine Routine, die so etwas macht, also werde ich Backups im Wert von ein paar Tagen auf der Festplatte aufbewahren (lang genug, damit sie von meiner normalen Backup-Routine gesichert werden), und sie dann löschen. Mit anderen Worten, ich habe immer Backups im Wert von ein paar Tagen zur Hand, ohne sie von meinem Backup-System wiederherstellen zu müssen.
Ich werde das Skript zur Erstellung gespeicherter Prozeduren von Microsoft unten einfügen:
quelle
Sie könnten ein VB-Skript verwenden, das ich genau für diesen Zweck geschrieben habe: https://github.com/ezrarieben/mssql-backup-vbs/
Planen Sie eine Aufgabe im "Task Scheduler", um das Skript nach Ihren Wünschen auszuführen. Die gesamte Datenbank wird in einer BAK-Datei gesichert und an einer beliebigen Stelle gespeichert.
quelle
quelle
Wenn Sie die DB-Dateien finden können ... "cp DBFiles backup /"
Fast sicher nicht ratsam in den meisten Fällen , aber es ist einfach wie alles aufstehen.
quelle