|
Ein MySQL-Server als High-Performance-Lösung entspannt den Admin, wenn der Main Frame mal komplett crasht. Dieser Artikel zeigt Ihnen, wie Sie einen MySQL-Server aufsetzen, der seine Daten 'Life' auf einen Backup-Server schreibt. So haben Sie im Falle eines System-Crashs auf der Hauptmaschine immer noch ein aktuelles Backup auf einer zweiten Maschine.
Ich gehe davon aus, dass bereits zwei MySQL-Server auf unterschiedlichen Servern laufen. Die Funktion Networking muss aktiviert sein (dies ist standardmäßig der Fall.)
Als erstes wird der Master-MySQL-Server definiert. Das geschieht in der Datei 'my.cnf'. Diese liegt im allgmeinem im Ordner /etc/. In der Datei my.cnf wird im Bereich [mysqld] folgender Eintrag zugefügt:
log-bin server-id=1
Jetzt wird auf dem Master-Server ein Replikations-User angelegt, der das Privileg 'Replication Slave' bekommt. Bei MySQL-Versionen unter 4.0.2 gibt es dieses Privileg nicht. Stattdessen wird dann das 'File' Privileg verwendet. Den Replikations-User tragen wir später auf dem SLAVE-Server ein (in der dortigen my.cnf Datei). Der Replikations-Account wird mit dem Befehl 'grant' wie folgt angelegt: grant replication slave on *.* to Slave@Host.domain.deDiese E-Mail Adresse ist gegen Spam Bots geschützt, Sie müssen Javascript aktivieren, damit Sie es sehen können identified by 'Passwort';
Der Replikations-User muss also von dem Host des SLAVE-Servers auf den MASTER-Server zugreifen können (Hinweis: MySQL User auf dem MASTER-Server anlegen).
- Snapshot anlegen:
Nun wird ein Snapshot der vorhanden Daten angelegt, die wir auf den SLAVE-Server legen. Dazu wechseln wir in das Datenverzeichnis des MySQL-Servers (oftmals: /var/lib/mysql). Hier werden folgende Befehl zur Erstellung eines Snapshots ausgeführt:
/etc/init.d/mysqld stop tar -cvf /tmp/master-snapshot.tar * /etc/init.d/mysqld start
Im /tmp Verzeichnis liegt nun ein aktuelles SNAPSHOT der Datenbank als Tarball. Eine Kopie des Tarballs kommt in das Datenverzeichnis des SLAVE-Serves, die wir dort mit dem Befehl
tar -xvf master-snapshot.tar
entpacken.
Vorher sollte der MySQL-Server auf der Backup-Maschine gestoppt werden. Anschließend kann der Tarball aus /var/lib/mysql gelöscht werden.
Der Slave Server bekommt einen Eintrag in die my.cnf Datei: (Bereich [mysqld])
server-id=2 master-host=<IP-Adresse des Master Servers> master-user=<REPLICATIONS_USER> master-password=<REPLICATIONS_PASSWORT> master-port=3306 relay-log=<SLAVES-HOSTNAME>-relay-bin Die Einträge master-host, master-user, master-password werden ohne < und > am Anfang wie Ende eingetragen. SLAVE ZUM UDATEN ÜBERREDEN
Der Slave-Server ist nun bereit. Das LIVE-Update kann also beginnen. Damit es aber sauber funktioniert, muss am SLAVE Server noch eine Einstellung vorgenommen werden. Geben Sie zur Anmeldung am SLAVE-Server folgenden Befehl ein: 'mysql -u root -p' Nach der Passwort-Eingabe können Sie am Mysql prompt folgenden Befehl ablassen: slave start; Bei einigen MySQL-Versionen lautet der Befehl: 'start slave;'
Der SLAVE merkt sich nur, dass er als SLAVE arbeiten soll.
Nachtrag:
Falls es nicht gleich klappen sollte, hilft ein Blick in die Error-Log-Datei des MySQL-Servers. Diese Datei befindet sich oftmals unter: ' /var/log/mysqld.log'.
Sehr oft hindern lediglich Firewall-Einstellungen, dass Sie erfolgreich sind... Um von dem Slave Server zu kontrollieren ob sich überhautpt auf dem Master Server zugegriffen werden kann, kann manauf der Shell wie folgt vorgehen: mysql -u slave -h 192.168.1.1 -p<pass> (das passwort direkt ohne Leerzeichen hinter das -p) Hat die MySQL-Log-Datei einen Eintrag wie:
060405 21:47:39 Slave: connected to master '
Diese E-Mail-Adresse ist gegen Spambots geschützt! Sie müssen JavaScript aktivieren, damit Sie sie sehen können.
.1.1Diese E-Mail Adresse ist gegen Spam Bots geschützt, Sie müssen Javascript aktivieren, damit Sie es sehen können :3306', replication started in log 'FIRST' at position 4,
ist der SLAVE-Server korrekt konfiguriert und beginnt als SLAVE zu arbeiten.
Im Verzeichnis '/var/lib/mysql' befindet sich nun eine neue Datei mit dem Namen: 'master.info'. Diese Datei beinhaltet Daten des Master-Servers:
Beispiel: www-bin.003 1988 192.168.1.1 replikations-user replikations-password 3306 60
============================================================== |