Ich habe eine 2,8-TB-SQL-Datenbank (hauptsächlich Datendateien, etwa 400 GB Protokolldateien), deren Wiederherstellung derzeit etwa 9 Stunden dauert. Diese Datenbank wird zu Testzwecken verwendet und muss zwischen jedem Lauf aus einer Sicherung gelöscht und wiederhergestellt werden, um sicherzustellen, dass wir immer am selben Punkt beginnen.
Meine Frage ist, der Server verfügt derzeit über 12 Kerne und 92 GB RAM mit einem RAID 5-Festplattensubsystem, auf dem sich die Datenbank befindet. Welche Bereiche verursachen normalerweise Engpässe bei SQL-Wiederherstellungsprozessen? Ist es die Festplatte, der Speicher oder die CPU?
sql-server
performance
Sean Long
quelle
quelle
Antworten:
Ihr primärer Engpass bei einer Wiederherstellung ist die Festplatten-E / A. Um dies zu beheben, benötigen Sie entweder schnellere Festplatten oder eine andere Konfiguration. Ich weiß nicht genug über RAID oder SANs, um dort etwas vorzuschlagen. Sie könnten sogar SSDs in Betracht ziehen. Sie sind unglaublich schnell. Ich möchte sie nicht für etwas verwenden, das nicht regelmäßig neu erstellt wird (tempdb ist immer ein guter Kandidat dafür), aber da Sie es häufig wiederherstellen, ist es möglicherweise in Ordnung. Andererseits möchten Sie wahrscheinlich sicherstellen, dass Ihr Testserver so nah wie möglich an Ihrem Produktionsserver ist, wenn Sie Leistungstests durchführen.
Es gibt noch ein paar andere Dinge, die Sie tun können, um sich selbst zu helfen. Komprimieren Sie zuerst Ihre Backups, falls Sie dies noch nicht getan haben. Dies setzt natürlich SQL 2008 oder höher voraus. Dies reduziert nicht nur den Speicherplatz zum Speichern des Backups, sondern auch die E / A zum Einlesen. Es fallen CPU-Kosten an. Löschen Sie auch nicht Ihre Datenbank, sondern stellen Sie sie einfach wieder her. Auf diese Weise sind die Dateien bereits vorhanden und es entsteht kein Aufwand für deren Erstellung. Sie können die sofortige Dateiinitialisierung aktivieren (dies ist eine Berechtigung auf Serverebene), um das Erstellen / Wachstum von Dateien für Ihre Datendatei erheblich zu beschleunigen, dies funktioniert jedoch nicht für Ihre Protokolldatei.
quelle
Führen Sie keine Sicherung und Wiederherstellung durch. Verwenden Sie SQL Server-Snapshots. Das Speichern einer Datei mit geringer Dichte in der Größe der von Ihnen aufgenommenen Dateien erfordert viel Speicherplatz, aber das Zurücksetzen ist hunderte Male schneller.
Sie sind in den Editionen SQL Server Enterprise und SQL Server Developer verfügbar.
quelle