MySQL High Performance
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 ' replikations-user@192.168.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