Wo finde ich Ressourcen für einen besseren Umstieg auf einen 24-Stunden-Betrieb? Wie schaffen es die großen Unternehmen mit großen Datenbanken? Unsere nächtlichen Jobs wie
- Alte Daten löschen
- neu indizieren
- Statistiken aktualisieren
Alle scheinen entscheidende Auswirkungen auf unser System zu haben (z. B. Online-Benutzer und Echtzeit-Datenfeeds). Ich habe bei Amazon nach Büchern gesucht, die mit diesem Thema zu tun haben, und bis jetzt noch nichts gefunden.
sql-server
NealWalters
quelle
quelle
Antworten:
Das Verwalten von 24x7-Datenbanken ist ein ziemlich umfangreiches Thema mit vielen zu berücksichtigenden Optionen. Dieses breite Thema hat viele Punkte zu berücksichtigen, aber wir können versuchen, auf einige der Höhepunkte zurückzugreifen.
Zunächst möchten Sie feststellen, dass viele Vorgänge rund um die Uhr ausgeführt werden und in der Regel nur geringe Aktivitäten stattfinden. Sie können diese Zeiten für die Ausführung Ihrer Wartung nutzen, um die Störungen in der Datenbank zu verringern. Zweitens müssen Sie einige Zeit für vollständige Ausfälle reservieren (z. B. für Service Packs oder Datenbankmigrationen), sodass Sie mit Ihrem Management vollständige Wartungsfenster aushandeln müssen. Für bestimmte Elemente müssen Sie die einzelnen Elemente berücksichtigen und planen sowie Ihre Werkzeuge entsprechend einsetzen. Wichtig ist, dass Sie jeden dieser Punkte PLANEN müssen. Alle Beispiele, die ich vorlege, lauten "Ihre Meilen können variieren".
Backups
Sicherungen haben in der Regel keine großen Auswirkungen auf die Arbeitslast, müssen jedoch berücksichtigt werden, da sie viel E / A verbrauchen können. Sie sollten diese entsprechend planen und den Zeitaufwand überwachen. Die größte Hürde dabei ist, dass Sie bei einem Betrieb rund um die Uhr wahrscheinlich nicht jede Nacht vollständige nächtliche Backups durchführen können. In Kombination mit Ihren Protokollsicherungen sollten Sie planen, wann Sie vollständige Daten abrufen können, wann Sie unterschiedliche Daten abrufen und Aufbewahrungsfristen für beide Daten festlegen.
Beispielsweise führe ich am Sonntagabend (niedrigste Aktivität) vollständige Sicherungen aller meiner Datenbanken durch, an allen anderen Abenden (Montag bis Samstag) Differentiale. Ich behalte die letzten zwei Wochen voller Daten und Unterschiede auf der Festplatte, protokolliere die letzten zwei Tage. Dies gibt mir genügend Flexibilität für die Wiederherstellung, aber ich muss möglicherweise bei Bedarf Sicherungen von Band wiederherstellen.
Index- / Statistikpflege
Dies ist die häufigste Art der aktiven Wartung, mit der Sie sich befassen müssen. Sie können es nicht vermeiden, aber Sie können die Auswirkungen abschwächen. Die anfängliche Faustregel lautet, dass Sie nur Objekte warten sollten, die sie benötigen. Nach den allgemeinen Richtlinien sollten nur Indizes neu erstellt werden, die zu mehr als 30% fragmentiert und größer als 1000 Seiten sind . Wenn Sie über eine automatische Aktualisierung von Statistiken verfügen , übernimmt dies den größten Teil Ihrer Statistikwartung. Ein nächtlicher Job, um die Dinge synchron zu halten, ist jedoch keine schlechte Idee.
Wenn Sie über Enterprise Edition verfügen, haben Sie auch Zugriff auf einige andere Optionen zum Verwalten der Wartung. Das Wichtigste sind Online-Index-Neuerstellungen , mit denen Sie Indizes neu erstellen können, während sie noch verwendet werden (im Wesentlichen wird der Index nebeneinander erstellt und dann eingetauscht). Sie können die Partitionierung auch für "große" Tabellen nutzen, um die erforderliche Neuerstellungszeit zu reduzieren.
Wenn Sie für diese Art der Wartung keine benutzerdefinierten Skripte verwenden, die diese bewährten Methoden unterstützen, empfiehlt es sich, die Wartungsskripte von Ola Hallengren zu verwenden . Diese sind relativ einfach einzurichten und zu konfigurieren und enthalten viele dieser Richtlinien.
DBCC-Konsistenzprüfungen
Abhängig von Ihrer Gesamtauslastung können DBCC-Überprüfungen zu Betriebsstörungen führen. Es gibt zwei Möglichkeiten, um die Auswirkungen Ihres DBCC auf Ihre Datenbanken zu minimieren:
PHYSICAL_ONLY
- Wenn Sie diese Option ausführen, werden Ihre Datenbanken auf physischer Seitenebene überprüft und die invasivere vollständige Überprüfung wird vermieden. Dies deckt die Ermittlung der wahrscheinlichsten Arten von Korruption ab.In diesem Blog-Beitrag erfahren Sie mehr über Ihre Optionen.
Batch-Jobs / ETL
Es kommt wirklich darauf an, wie Sie Ihre Prozesse gestalten. Ihre ETL kann immer mit aktiven OLTP-Tabellen interferieren (genau wie jede andere Anwendung). Beachten Sie daher einige Schlüssel:
Fazit
Auch hier gibt es viel zu tun. Dies ist kein umfassender Leitfaden, sondern ein allgemeiner Überblick über einige Ansätze. Ich habe noch nicht einmal über Hochverfügbarkeitsoptionen (wie Verfügbarkeitsgruppen und Failover-Clustering) gesprochen. Sie müssen jedes Element überprüfen und einen Plan für den Umgang damit erstellen. In vielerlei Hinsicht müssen Sie auch Ihre Arbeit wiederholen und verfeinern, während Sie voranschreiten.
Zusätzliche Ressourcen:
Bewährte Methoden für die Wartung von SQL Skills VLDB
quelle