Hetzner - DokuWiki
Datenbank läuft auf separater HDD
Ich habe sehr gute Erahrungen damit gemacht, die zweite Server-Festplatte als Speicherort für die MySQL Datenbanken zu benutzen. Wer also kein RAID braucht, aber möglichst viel Plattendurchsatz, kann auf diese Art sein System deutlich schneller machen.
Bei großen, datenbank-basierten Webseiten, wie z.B. großen Foren oder Wikis, ist für gewöhnlich die Datenbank das eigentliche "Schwergewicht", weswegen es sinnvoll ist, diese Last von der System-Platte zu nehmen.
Die folgenden Kommandos habe ich auf meinem Debian 3.1 System getestet. Wenn Sie eine andere Distribution benutzen, müssen Sie die Kommandos ggf. anpassen.
Inhaltsverzeichnis |
Allgemeines
Auf der zweiten Platte (sdb) muss eine neue Partition erzeugt werden. 10 GB sollte für 99% der Kunden ausreichend sein, aber wer unbedingt mehr Platz haben will oder braucht, soll gerne mehr nehmen.
Da die Platte ja keine anderen ressourcenfressenden Aufgaben wahrnehmen soll, könnte man den Rest einfach als Backup Partition einrichten. In der Nacht zieht der Server dann per cron Backups der sda-Platte. Das ist denke ich der beste Verwendungszweck, denn damit kann man den übrigen Platz gut nutzen, und "verschwendet" trotzdem keine Performanz.
Einrichten der Partitionen
- Die Festplatte wird mit fdisk partitioniert
- Dateisystem: ext3 (zum Beispiel)
- Partition 1: 10 GB --> wird zu /dev/sdb1
- Partition 2: Rest --> wird zu /dev/sdb2
Die Partitionsnummern können je nach Hardware und bereits erstellten Partitionen natürlich auch anders lauten. Bitte passen Sie die folgenden Kommandos an Ihre Konfiguration an.
Falls Sie Informationen benötigen, wie man fdisk benutzt, lesen Sie bitte auch den Artikel "Zweite Platte".
Mount-Punkte setzen
Damit die Parttionen bei Start des Servers korrekt gemeountet werden, muss die Datei /etc/fstab bearbeitet werden. Fügen Sie folgende Zeilen ans Ende dieser Datei an:
/dev/sdb1 /var/lib/mysql ext3 defaults 0 0 /dev/sdb2 /var/backup ext3 defaults 0 0
Verwenden Sie bitte das Dateisystem, mit welchem Sie die Partitionen formatiert haben. Hier im Beispiel verwende ich ext3.
Beim nächsten Start des Servers werden die beiden Partitionen an den entsprechenden Stellen ins Dateisystem eingehängt. Bitte beachten Sie, dass alle Daten, die sich momentan unter /var/lib/mysql und /var/backup befinden dann nicht mehr gesehen/benutzt werden können. (Gelöscht werden sie aber nicht). Sie sollten daher ein Backup der bisherigen Daten anfertgen - nicht zuletzt, damit Ihre MySQL Datenbanken und Zugriffsrechte erhalten bleiben.
Test der Mount-Punkte
Prüfen Sie nun, ob die Partitionen korrekt gemeountet werden können. Dazu sind folgende Schritte nötig:
- Beenden des laufenden MySQL Server Prozesses (Wichtig!)
- Sichern der MySQL Datenbanken (Kopieren an sicheren Ort)
- Mounten der Partitionen
- Kopieren der zuvor gesicherten Datenbanken auf die neue Partition
- Neustart des MySQL Servers
mkdir /tmp/mysqlbak cp -pr /var/lib/mysql/* /tmp/mysqlbak /etc/init.d/mysql stop mount -t ext3 /dev/sdb1 /var/lib/mysql mount -t ext3 /dev/sdb2 /var/backup cp -pr /tmp/mysqlbak/* /var/lib/mysql chown mysql:mysql /var/lib/mysql /etc/init.d/mysql start
Sollte eines der Kommandos nicht ausgeführt werden können, fahren Sie bitte nicht einfach fort, sondern lösen Sie zuerst das Problem.
Abschluss
Testen Sie nun, ob der MySQL Server korrekt läuft, indem Sie z.B. mit phpMyAdmin (oder per Kommandoprompt) prüfen, ob alle Datenbanken vorhanden sind, und ob die Benutzerrechte noch passen.
Ihr MySQL Server speichert nun die Datendateien auf er sekundären Festplatte. Die volle Leistung dieser Platte steht nun dem Datenbankserver zur Verfügung, während das Betriebssystem, die Logs, der Apache, der Mailserver, etc. die Leistung der ersten Platte nutzt.
- Fuxboml 19:58, 2. Okt 2006 (CEST)

