Ich bin damit beauftragt, einen Wartungsplan für unsere SQL Server 2005-Datenbanken zu erstellen. Ich weiß, dass ich für Sicherungen alle 15 Minuten eine tägliche vollständige Datenbanksicherung und Transaktionsprotokollsicherungen durchführen möchte. Mein Problem besteht darin, herauszufinden, welche anderen Aufgaben ich ausführen möchte und wie oft ich sie ausführen sollte.
So weit habe ich das im Sinn. Korrigieren Sie mich, wenn mein Denken fehlerhaft ist oder wenn Sie dies besser tun können.
Ich erinnerte mich, dass ich vor einiger Zeit gelesen hatte (als ich einen ähnlichen Plan für einen anderen Job aufstellte), dass einige dieser Aufgaben nicht täglich ausgeführt werden müssen oder nicht täglich ausgeführt werden sollten. Welche davon entgeht mir. Ich könnte eine kleine Anleitung zur Erstellung eines besseren Wartungsplans verwenden, der den Datenverlust bei einer Katastrophe verringert, das System jedoch nicht belastet, wenn es während der Stoßzeiten ausgeführt wird (und auch die Leistung erhöht).
Josh,
Dies ist eine sehr häufige Aufgabe für alle Datenbankadministratoren, und die richtige Antwort ist NICHT für jeden und für jeden Server gleich. Wie viele andere Dinge hängt es davon ab, was Sie brauchen.
Auf jeden Fall möchten Sie "Shrink Database" nicht wie bereits vorgeschlagen ausführen. Die schlechte Leistung und der folgende Hinweis zeigen Ihnen, warum. Dies führt zu einer Fragmentierung der Festplatte und des Index. Dies kann zu Leistungsproblemen führen. Sie sind besser dran, wenn Sie eine große Größe für die Daten- und Protokolldateien vorab zuweisen, damit das automatische Wachstum NICHT einsetzt.
Ich habe deine Nummer 2 nicht verstanden. ausgewählte Tabellen vollständige Sicherung. Können Sie das näher erläutern?
Wenn Sie Index neu organisieren, Statistiken aktualisieren und Indizes neu erstellen möchten, müssen Sie vorsichtig sein, wie Sie dies tun, da Sie sonst mehr Ressourcen verbrauchen und auch Leistungsprobleme haben.
Wenn Sie Indizes neu erstellen, werden die Statistiken der Indizes mit Fullscan aktualisiert. Wenn Sie danach Statistiken aktualisieren, werden diese erneut mit einem Standardbeispiel aktualisiert (das von mehreren Faktoren abhängt, normalerweise 5% der Tabelle, wenn die Tabellengröße> 8 ist MB), was zu Leistungsproblemen führen kann. Abhängig von Ihrer Edition können Sie möglicherweise Online-Indexwiederherstellungen durchführen. Die richtige Methode für diese Aktivität besteht darin, das Ausmaß der Fragmentierung zu überprüfen und abhängig davon entweder die Indexwiederherstellung oder die Indexreorganisation + Aktualisierungsstatistik durchzuführen. Außerdem möchten Sie möglicherweise ermitteln, welche Tabellen Statistiken häufiger aktualisieren müssen, und versuchen, Statistiken häufiger zu aktualisieren.
Wartungspläne sind in Ordnung, aber es ist schwierig, das Beste aus ihnen herauszuholen, wenn Sie diese Anpassungen vornehmen, es sei denn, Sie können sich bei SSIS anmelden und die MPs optimieren. Deshalb bevorzuge ich es, sie NICHT zu verwenden und Ola Hallengrens kostenlose Skripte zu verwenden, die robuster sind als MPs. Außerdem würde ich empfehlen, den Artikel von Paul Randal zu diesem Thema zu lesen.
Ref: http://technet.Microsoft.com/en-us/magazine/2008.08.database.aspx
Dies ist KEINE umfassende Antwort auf Ihre Frage, sondern ein guter Ausgangspunkt. HTH und lassen Sie uns wissen, wenn Sie weitere Fragen/Kommentare haben.
Ich werde meine Erfahrungen teilen, auch wenn Sie bereits eine Antwort akzeptiert haben. Vielleicht ist es hilfreich :-).
Wartungsbereinigung (täglich) - ok damit.
Sie sollten auch eine Aufgabe hinzufügen, um Ihre Backups zu überprüfen - es gibt eine Version des RESTORE-Befehls (verifyOnly .. wenn ich mich richtig erinnere) - sagen wir wöchentlich, obwohl ich es täglich bevorzuge.
Sie erwähnen, dass Sie im Falle eines Datenverlusts abgeschirmt werden möchten. Daher müssen Sie die Systemdatenbanken in diesem Wartungsverfahren hinzufügen. Achten Sie auch darauf, die Dateien auf einem anderen Computer als dem Server selbst zu sichern. Bewahren Sie irgendwo eine Datei mit den erforderlichen Schritten auf, falls Sie die Master-Datenbank msdb..etc neu erstellen müssen. Viel Glück bei Ihrer Aufgabe!
Eine späte Antwort könnte aber für andere Leser von Nutzen sein.
Beachten Sie bitte, dass Sie viele Wartungs- oder Berichtsaufgaben erstellen können, die mit unsichtbaren Risiken verbunden sind.
Was würde passieren, wenn ein Laufwerk während der täglich durchgeführten differenziellen Sicherungen voll wird? Und was ist, wenn ein Indexwiederherstellungsjob ungewöhnlich lange ausgeführt wird? Wie wäre es, wenn ein Datenladevorgang zu umfangreichen Ressourcenkonflikten führt und den normalen Betrieb in die Knie zwingt? All dies sind geplante Ereignisse, können jedoch die Prozesse, die wir zu schützen versuchen, erheblich stören.
Überlegen Sie immer, wie verschiedene Jobs interagieren, und planen Sie sie so, dass sich sensible oder ressourcenintensive Aufgaben nicht überschneiden.
Ich empfehle, diesen Artikel zuerst zu lesen: http://www.sqlshack.com/removing-the-risk-from-important-maintenance-tasks-in-sql-server/
Es wird beschrieben, wie wichtige Wartungsaufgaben in SQL Server ausgeführt werden - ohne Risiko. Beispiel: Sie können einfache Überprüfungen in Ihre Wartungsjobs einbauen, die die verfügbaren Ressourcen sowie die Anforderungen eines Vorgangs vor der Ausführung überprüfen. Auf diese Weise können Sie sicherstellen, dass Ihre Umgebung mit Ihren Aufgaben umgehen kann, und bei unzureichenden Ressourcen mit einem bedeutenden Fehler abbrechen.
Sieht gut aus
Hier können Sie möglicherweise von differenziellen Sicherungen profitieren. Schau sie dir sicher an
Sieht gut aus
Sieht gut aus
Wie bereits erwähnt, sind Datenbankverkleinerungen schlecht, da sie eine physische Fragmentierung Ihrer Daten und Protokolldateien verursachen und somit mehr zufällige IO-Lesevorgänge) verursachen.
5, 6 und 8: Siehe unten.
Diese gehen wirklich Hand in Hand, da Indizes auf aktuellen Statistiken beruhen und die Reihenfolge dieser Operationen ziemlich wichtig ist. Die Basismethode, die ich verwende und die zugegebenermaßen nicht für alle funktioniert, besteht darin, dass ich zwei Runden der Indexpflege durchführe. Zuerst mache ich die Clustered-Indizes und dann die Nonclustered-Indizes. Die Methode, die ich für beide verwende, ist die folgende. Wenn ein Index groß genug und fragmentiert genug ist (sys.dm_db_index_physical_stats), werde ich den Index neu erstellen (einschließlich einer Statistikaktualisierung mit vollständigem Scan). Wenn ein Index für eine Neuerstellung entweder zu klein oder für eine Neuerstellung nicht ausreichend fragmentiert ist (weniger als 100 Seiten und zwischen 5% und 15% Fragmentierung), führe ich zuerst eine Indexreorganisation durch. Ich werde dann ein Statistik-Update mit vollständigem Scan durchführen. Wenn der Index für keine dieser Indexpflegeteile ausreichend fragmentiert ist, werde ich die Statistik weiterhin mit einem vollständigen Scan aktualisieren.
Dies betrifft nun die Indexstatistik, vernachlässigt jedoch, die Spaltenstatistik zu ändern. Wöchentlich werde ich die Spaltenstatistik aktualisieren.
Ich hoffe das hat irgendwie geholfen!
Ich habe auf Ihren Kommentar "Datenverlust könnte hier rechtliche Konsequenzen haben" gekippt.
Dann möchten Sie auf jeden Fall ein leistungsstarkes Tool von Drittanbietern (wie DPM) erhalten, das Backups (und die Wiederherstellung von Katastrophenereignissen blitzschnell und mit minimalem Aufwand) viel schneller und viel besser handhaben kann als jedes Skript, das Sie aus dem Internet abrufen können.
Backups zu haben ist eine Sache. Zu wissen, wie man sie im Notfall benutzt, ist eine andere.
Vergessen Sie nicht, dass Sie wahrscheinlich bereits unter einer Menge Stress und Druck stehen, wenn Sie nach einem schwerwiegenden Fehler so weit sind, ein Backup wiederherzustellen. Sie müssen nicht zusätzlich die RESTORE DATABASE-Anweisung mit 12 Transaktionsprotokolldateien ausgraben und fehlerfrei schreiben ... und beten, dass Sie nicht scheitern ...
An meinem Arbeitsplatz kann ich mit DPM innerhalb von 5 Minuten innerhalb von 5 Minuten eine 350-GB-Datenbank wiederherstellen. Mit einer GUI-Oberfläche. Es lohnt sich, in meinem Buch.
Schauen Sie sich im Übrigen unbedingt das Indexskript von Ola Hallengren an und passen Sie die Parameter an Ihre Bedürfnisse an. Persönlich habe ich es mit einer geplanten Aufgabe gekoppelt, bei der es jede Nacht eine Stunde lang ohne erneuten Scan ausgeführt wird, sodass jedes Mal die schlechtesten Indizes verarbeitet werden und jeden Samstag oder wenn alle Indizes in der Liste einen vollständigen erneuten Scan der Fragmentierung erzwingen wurden defragmentiert.
Zuletzt füge ich meine Stimme der Gruppe "Verkleinern Sie Ihre Dateien niemals automatisch" hinzu. File Shrink ist nur ein Tool, das sporadisch verwendet werden kann, wenn ein unregelmäßiges Ereignis auftritt, das Ihre Protokolle oder DB-Dateien (Endlosschleife oder ähnliches) überwuchert. Es soll kein Wartungswerkzeug sein. Wenn Sie Speicherplatzdruck haben, verzögert das Verkleinern ohnehin nur das Unvermeidliche.