Wie planen Sie eine wiederkehrende SQL Server 2012-Datenbanksicherung mit sqlcmd?

515
garym

Ich suche nach einer Möglichkeit, eine monatliche wiederkehrende Sicherung einer SQL Server-Datenbank mithilfe von sqlcmd zu erstellen.

Ich habe Skripts für SQL Express gesehen, die jedoch nur einmal ausgeführt werden. Ich bin auf der Suche nach einem SQL-Skript, das den Agenten oder ein anderes Mittel verwendet, um die Sicherung regelmäßig zu starten.

Vielen Dank

1
Danke für die Antwort und die Fragen. Ich versuche, mich vom Aufgabenplaner fernzuhalten, da er ein gesperrtes / sicheres System ist. Ich suche nach einem tsql-Skript zur Implementierung von msdb.dbo.sp_add_job, msdb.dbo.sp_add_jobstep und msdb.dbo.sp_add_jobschedule. Zumindest denke ich, dass ich das tun muss, seit ich die Frage gestellt habe. garym vor 7 Jahren 0
Ja, 2012 und 2008r2 auf einem sicheren Server 2008R2. Keine Expressversionen erlaubt. Ich bin der dba / machine admin. sa Zugriff, aber keine Domänenadministratorrechte. Der Taskplaner gehört zu den Domain-Jungs. Ich schreibe jetzt etwas (einen Installer). Ich werde sehen, wie es geht. Ich werde es posten, sobald ich es zum Laufen bekomme. Ich muss die meisten Variablen auch über die Befehlszeile übergeben garym vor 7 Jahren 0
Am besten ist es sinnvoll, Sicherungsgeräte einfach über TSQL mit SSMS zu erstellen und dann einen SQL-Agent-Job mit jedem Schritt zu erstellen, der eine Logik enthält, um diese DBs nacheinander auf die Sicherungsgeräte mit allen statischen Namen wie "DBName1" zu sichern .bak` Bei jedem Start wird die vorhandene Datei überschrieben und der SQL-Agent muss sich nur noch um die Planung kümmern. Der SQL-Agent-Auftrag wäre zwar mächtiger als SQLCMD. Wenn Sie wirklich etwas benötigen, für das mehrere Parameter erforderlich sind, können Sie es für einen dynamischen SP erstellen und die Argumente von dort übergeben. Pimp Juice IT vor 7 Jahren 0
Ich mache dies als Datenbankadministrator für mehrere Instanzen von SQL Server. Dies ist eine sehr zuverlässige Methode, und Sie können es auch so einrichten, dass jeder Schritt unabhängig vom Fehler oder Erfolg zum nächsten Schritt übergeht und der allerletzte Schritt dann möglich wäre Überprüfen Sie den Status aller vorherigen Schritte. Falls ein Fehler aufgetreten ist, können Sie eine E-Mail versenden, um anzuzeigen, dass ein Problem vorliegt, und Sie sollten Protokolle überprüfen. Pimp Juice IT vor 7 Jahren 0
Der letzte Gedanke auch, also, obwohl Sie kein Serveradministrator sind, sind Sie technisch gesehen, wenn Sie eine SQL Server-Instanz sind. Wenn Sie cmdexec aktivieren und verwenden, können Sie die meisten Befehle der Server-Betriebssystemebene mit lokalen Administratorberechtigungen verwenden. Ich wollte dies auch mit Ihnen teilen https://ola.hallengren.com/sql-server-backup.html, da ich nichts anderes als gut über dieses Tool gehört habe, es aber nicht verwendet habe. Wenn Sie sich für die SQL-Sicherungsgeräte und den SQL-Agent-Job interessieren, der über diese gesichert werden kann, kann ich morgen etwas aufschreiben. Besuchen Sie auch http://dba.stackexchange.com/. Pimp Juice IT vor 7 Jahren 0

1 Antwort auf die Frage

0
Alain Tésio

einige Schritte, als Sie nach sqlcmd gefragt haben:

  • Führen Sie den SQL Server Profiler aus
  • Führen Sie die Sicherung von Management Studio aus
  • Siehe die SQL-Befehle im Profiler
  • Nehmen Sie eventuell Anpassungen am SQL-Code vor (z. B. Anhängen des aktuellen Datums an den Dateinamen).
  • Speichern Sie den SQL-Code in einer Datei makedump.sql
  • Erstellen Sie eine geplante Aufgabe mit einer Datei makedump.bat, die "sqlcmd ... -i makedump.sql" ausführt.

Oder nutzen Sie den einfachen Weg:

  • Starten Sie Management Studio
  • Durchsuchen Sie Ihre SQL-Instanz im Objekt-Explorer
  • Erweitern Sie den Serverknoten und den "Wartungsplan".
  • Klicken Sie mit der rechten Maustaste auf den Assistenten und folgen Sie den Anweisungen