Wie führe ich automatisch nächtliche Sicherungen für Microsoft SQL Server 2005 durch?

7

In SQL Server 2005 ist kein Mechanismus zum Planen nächtlicher Sicherungen integriert. Welche Tools stehen zur Ausführung dieser Aufgabe zur Verfügung und wie zuverlässig sind sie?

Kuhgott
quelle
Sie können einfach ein beliebiges Drittanbieter-Tool verwenden, um SQL Server automatisch gemäß Ihrem Zeitplan zu sichern. Sie können beispielsweise SQLBackupAndFTP ( sqlbackupandftp.com ) oder SqlBak ( sqlbak.com ) verwenden.
Olek Nilson

Antworten:

20

Der SQL Server-Agent erledigt dies für Sie.

Es steht sogar ein benutzerfreundlicher Assistent zum Erstellen der erforderlichen Sicherungsjobs zur Verfügung (SQL Server 2005 Books Online: Gewusst wie: Erstellen eines Wartungsplans ). In Bezug auf die Zuverlässigkeit würde ich erwarten, dass dies absolut solide ist.

Es kann mehrstufige Jobs nach komplexen Zeitplänen ausführen und Sie per E-Mail oder auf andere Weise benachrichtigen oder Prozesse starten, je nach Erfolg oder Misserfolg eines Jobs.

MSDN:

Standardmäßig ist der SQL Server-Agent-Dienst deaktiviert, wenn SQL Server 2005 oder höher installiert wird, es sei denn, der Benutzer entscheidet sich ausdrücklich für den automatischen Neustart des Dienstes.

Tomalak
quelle
1
Interessant ist, dass SQL keine Sicherung auf Netzwerklaufwerken durchführen kann und die Sicherung nur auf dem lokalen Computer durchführt. (oder Band). Ich habe diese Entscheidung nie wirklich verstanden. Um eine zuverlässige Sicherung zu erhalten, müssen Sie diese .BAK-Dateien in eine andere Box kopieren.
Martin Marconcini
3
@ Martin: Weil es zuverlässiger ist. Sie können das Backup jederzeit unmittelbar danach mit xp_commandshell auf eine Netzwerkfreigabe kopieren / verschieben.
Portman
2
@Martin Mit UNC kann ein Backup auf einem Netzwerklaufwerk durchgeführt werden, sofern das Dienstkonto über Netzwerkzugriffsrechte verfügt. Sie müssen den Pfad nur manuell eingeben, anstatt ihn aus einem Dialogfeld auszuwählen.
Dave Dustin
1

Ich habe dies mit einem Wartungsplan durchgeführt. Ich habe tatsächlich ein Skript geschrieben, um alle Benutzerdatenbanken zu sichern. Ich habe dieses Skript hier geteilt http://dbalink.wordpress.com/2009/04/25/automated-sql-server-back-poor-mans-edition/

Es gibt jedoch bessere Lösungen als das, was ich in meinem Skript getan habe. Überprüfen Sie einfach die Kommentare zu meinem Beitrag.

Ich hoffe das hilft ;-)

MarlonRibunal
quelle
1

Das hat ein paar Teile.

Zunächst erstellen Wartungspläne eine Reihe von Aktionen, mit denen Sie Ihre Datenbank sichern, Ihren Index defragmentieren, DBCC-Prüfungen durchführen und vieles mehr können. Das Problem ist, dass Wartungspläne unter mangelnder Flexibilität leiden und einige Einschränkungen aufweisen. Ich spreche darüber in meinem Tutorial-Video zu Wartungsplänen:

http://sqlserverpedia.com/wiki/Database_Maintenance_Plans

Stattdessen können Sie Ihre eigenen T-SQL-Skripte schreiben, um Datenbanksicherungen durchzuführen. Das gibt Ihnen mehr Flexibilität und Leistung. Wir verlinken auch auf einige gute Backup-Skripte von diesem Videolink.

Zweitens werden die Jobs unabhängig von der gewählten Methode (Wartungspläne oder benutzerdefinierte T-SQL-Skripts) vom SQL Server-Agenten nach Ihrem Zeitplan ausgeführt. Der Agent ist ein in SQL Server integrierter Job Scheduler.

Brent Ozar
quelle
0

Welche Edition von SQL 2005 haben Sie? Wenn Sie die Express Edition (die kostenlose Edition) haben, wird sie nicht mit dem SQL Agent geliefert.

Wenn Sie Express haben, müssen Sie etwas kreativer sein. Eine Option ist die Verwendung des Windows-Schedulers zum Aufrufen von sqlcmd mit einem Sicherungsskript.

GilaMonster
quelle
0

Wenn Sie den Agenten nicht haben, rufen Sie mit dem Scheduler ein Skript wie das folgende auf:

BACKUP DATABASE MyDatabase TO DISK='C:\MyDatabase.bak'; 

O.ä…

Denken Sie daran, dass C: \ kein Netzwerklaufwerk sein kann, sondern ein lokal verbundenes Laufwerk. (Nein, zugeordnete Laufwerke funktionieren auch nicht).

Martin Marconcini
quelle
Wenn das Dienstkonto über Netzwerkzugriffsrechte verfügt, funktioniert die Sicherung auf einem Netzwerklaufwerk einwandfrei. Sogar einschließlich zugeordneter Laufwerke, vorausgesetzt, sie wurden erstellt, indem Sie sich lokal mit dem Dienstkonto anmelden und die Zuordnung vornehmen (zugeordnete Laufwerke sind profil- / kontospezifisch)
Dave Dustin
0

Ich verwende die Wartungspläne, sie waren einfach einzurichten und sind bisher nicht gescheitert. Wenn sie meine Datenbanken in einem SAN sichern, müssen Sie den UNC-Namen für den Verzeichnispfad angeben, z. B. \\ archive \ SQL \ database \ fullbackup.bak.

Wenn ich mit SQL Server weiter wachse, werde ich höchstwahrscheinlich zu Skripten wechseln, da mir das Betrachten von Brents Video gezeigt hat, dass es auf lange Sicht besser ist.

RateControl
quelle
0

Netzwerksicherung ist mit SQL Server Agent möglich ...

Sie müssen nur ein Konto ändern, das zum Starten des SQL Server-Agent-Dienstes verwendet wird, um ein Konto mit Zugriff auf die Netzwerkfreigabe (und mit Sicherheit auf Systemdienstvorgänge) zu erstellen - z. B. ein beliebiges Domänenadministratorkonto ...

Aber lokale Festplattensicherung und xp_commandshell sind wirklich viel zuverlässiger. Sie können die Ergebnisprüfung / -verteilung auf mehrere Server skripten und so weiter ...

Sergey
quelle