Optimale Einrichtung der SQL-Datenbank

mustermann

Gut bekanntes Mitglied
17. September 2015
217
12
Lesenswerter Artikel: https://blog.jtl-software.de/optimale-einrichtung-der-sql-datenbank/

Die Kommentarfunktion soll aber nicht für Detailfragen gebraucht werden. Gut, dann probiere ich es hier:

Zitat von Martin Kuen:
Außerdem raten wir zum Einsatz von insgesamt vier Festplatten. Da eine SQL-Abfrage mehrere Schreib-Aktionen beinhaltet, kann durch die Verwendung mehrerer Festplatten ein deutlich schnellerer Datendurchsatz erzielt werden. Im Idealfall richten User die Datenzugriffe also wie folgt ein:

  • Der SQL-Server ist, abgesehen vom Betriebssystem, das einzig installierte Programm auf dem Rechner

  • Installiert den SQL-Server auf derselben Festplatte, auf der auch das Betriebssystem liegt. (Festplatte 1)

  • Speichert sowohl das .mdf-File als auch das .log-File auf getrennten Datenträgern (Festplatten 2 und 3)

  • Die Dateien der TempDB legt ihr ebenfalls auf einer eigenen, bestmöglich der schnellsten Platte ab (Festplatte 4)

OK, ich habe 4 Festplatten. Spielt es eine Rolle, ob dies 4 logische Laufwerke sind (der Autor geht wohl davon aus) oder kann es auch ein RAID10 sein (ein logisches Laufwerk)?
So ein bisschen Ausfallsicherheit ist beim Datenbankserver ja angebracht, so dass ich eigentlich aus Sicht des Autors 8 Festplatten (4 RAID1) brauche, richtig?
 

Shopworker.de

Offizieller Service Partner
SPBanner
4. Januar 2011
4.214
595
Arnsberg, Sauerland
Firma
Shopworker GmbH
AW: Optimale Einrichtung der SQL-Datenbank

Ich denke hier sind 4 separate Festplatten gemeint; wenn du zusätzliche Sicherheit haben willst ist RAID natürlich korrekt.
Oder ein regelmäßíges Backup (z.B. stündlich) der Datenbank; dann kann eigentlich auch nichts passieren ...
 

mustermann

Gut bekanntes Mitglied
17. September 2015
217
12
AW: Optimale Einrichtung der SQL-Datenbank

Gut, ich habe die Frage falsch gestellt. Es geht bei meiner Überlegung natürlich um Ausfallsicherheit. Ein Backup kann und soll das nicht ersetzen, genau wie RAID1 kein Backup ersetzen kann. Das sind einfach zwei verschiedene Paar Schuhe. Ich käme nie auf die Idee, einen Datenbankserver ohne Spiegelung zu betreiben.

Bislang habe ich aber nur zwei Platten verbaut, RAID1, ein logisches Laufwerk c:\
Ich kann mit wenig Aufwand zwei weitere Platten dazustecken. Dann sind es zwei RAID1, zwei logische Laufwerke c:\ und d:\

Aus diesen vier Festplatten kann ich auch einen RAID10 machen, ein logisches Laufwerk c:\
So oder so sind es vier physische Festplatten. Da im Artikel immer nur von Festplatten die Rede ist, versuche ich eine präzisere Auskunft zu bekommen.

Hat jemand Erfahrung mit RAID10 und kann etwas zur Performance sagen? Ist ein RAID10 zwei RAID1 vorzuziehen? Oder ist das praktisch kein Unterschied?
 

mls123

Aktives Mitglied
31. Oktober 2012
52
1
AW: Optimale Einrichtung der SQL-Datenbank

Und die Frage die sich mir auch stellt: Ab wann macht es Sinn auf 4 SSDs statt einer zu setzen und wie hoch ist der Geschwindigkeitsgewinn?!
 

christian1701

Sehr aktives Mitglied
19. Juli 2007
2.939
121
Wien
AW: Optimale Einrichtung der SQL-Datenbank

Der Geschwindigkeitsgewinn ist egal, es geht um die Ausfallsicherheit. Den unterschied zwischen einer SSD und mehreren wirst nicht spüren.
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
AW: Optimale Einrichtung der SQL-Datenbank

Naja ich sag mal so, der Trick an den 4 Platten ist, dass die Schreib/lese Zyklin auf unterschiedlichen Physischen Platten statt finden. Ob jeder dieser Verbunde dann ein Raid 1 ist oder nicht ist egal.
Im fall von Raid 10 über 4 Platten, hast du ja nicht mehr als Spiegelund und Striping.
Sprich beim Schreiben müssen die Daten vom Raid Controller gleichzeitig auf 2 Platten geschrieben werden (was wenn man ganz einfach rechnet eine halbierung der geschwindigkeit bedeutet) Von den zwei anderen platten hast du erst mal garnichts, bis das erste Raid 1 verbund voll ist. Sprich wenn du 4 Platten im Raid 10 zusammen schließt hast du nichts gewonnen. hast zwar 4 Platten mehr aber auch nicht. Unterm Strich dann sogar ne Bremse.

Sprich wenn du mit Raid arbeiten willst. Wo wir defakto in einem noch Komplexeren Szenario sind, dann müsstest du sogar sagen, je nach raid Controller, das du sogar davon mehrere hast, damit die genug luft haben um auf 2-x Platten (Raids) gleichzeitig zu schreiben.

Die Anleitung wird hier sicherlich erst mal das einfachste Szanario ohne Raid betrachten. Sprich wirklich 4 für sich getrennt arbeitende Platten.

Zu der Frage aus #4, der Vorteil ist einfach, dass die jeweiligen daten auf unterschiedlichen Platten liegen, sprich wirklich parallel geschrieben werden können. Der Performance bust kann dabei schon gut sein.

Übrigens am Rande. Wenn man das Thema Raid im Datenbank Server noch weiter betrachtet, kann es sogar hier und da sinnvoller sein z.B. auch Raid 5 einzusetzen, ist zwar Schreib Technisch am Langsamsten (ca 1/3 von Raid 10) aber dafür im lesen sehr schnell. Aber selbst da streiten sich die Experten, und das eine oder andere ist dann viel Testen und Performance Monitoring.

In einem Beitrag lass ich vor Kurzem auch die Empfehlung die Platte mit der Datenbank z.B. auf nen raid 0 zu legen, und die Log auf einen Raid 1 zu legen.

Obs nun wirklich besser ist, dass kan in letzter Instanz am ehsten ein Voll geschulter MsSql DBA erklären, die aber dafür auch ihre Stundensätze haben, welche sich gewaschen haben 😉
 

Ähnliche Themen