Replikationsserver

Werbung
Replikationsserver
Torsten Witt
Letzte Änderung:
22.04.09
Vorbereitungen
– MySQL auf 2 Rechnern installieren
– MySQL-Versionen sollten identisch sein. Wenn nicht, hier gibt es Hinweise:
– http://dev.mysql.com/doc/refman/5.1/de/replication-compatibility.html
– Generell gilt:
– neuer Slave alter Master geht
– neuer Master alter Slave geht nicht
Grundsätzliche Schritte:
–
–
–
–
–
–
–
–
Master anhalten
Datenbank des Server auf den Slave importieren
master weiter laufen lassen
Die Daten zusätzlich sichern
my.cnf beider Server anpassen
Den Server wieder starten
Dem Slave die notwendigen Informationen geben
Slave starten
Master konfigurieren
– Netzwerk erlauben
– eventuell steht in der my.cnf folgendes drin, falls ja, auskommentieren!
–
Skip-networking
bind-address = 127.0.0.1
my.cnf vorbereiten
– Unter dem Abschnitt [mysqld]
– log-bin=mysql-bin
– binlog-do-db=slave (slave ist die Datenbank, die repliziert werden
soll) (Sollten mehrere Datenbanken repliziert werden, so ist eine
weitere Zeile anzufügen.)
– server-id=1 (Die 1 ist für den Master notwendig, Master=Nummer1)
– Server neu starten!
– Root-Nutzer anpassen:
– Host: %(jeder)
– Replikationsnutzer einrichten
– Name: replikant
– Host: % (jeder)
– Passwort: replikant
– Globale Rechte: SELECT, RELOAD, SUPER, REPLICATION SLAVE
– Master anhalten
– Nutzen des MySQL-QueryBrowsers
– betreffende Datenbank vor Änderungen schützen durch SQL-Anweisung:
–
–
FLUSH TABLES WITH READ LOCK;
RESET MASTER;
Replikationsserver
2/4
– QueryBrowser nicht schließen!! Der Schreibschutz wird beim Schließen des Clients
aufgehoben!
– Daten sichern
– Wechseln in das Verzeichnis(unter Windows mit XAMPP):
– Windows: /xampp/mysql/data
– Ordner sichern, z. B. Als Zip ODER mittels mysqldump
– Master status notieren:
– SQL-Befehl: show master status; Das Ergebnis sieht in etwa so aus:
– notieren von File und Position
– Datenbanken wieder frei geben:
–
SQL-Befehl: unlock tables;
SLAVE konfigurieren
– Datenbank namens slave anlegen (Die Datenbank, die repliziert werden soll).
– Dann den Dump importieren
– Oder Datenbankdateieneinspielen, dann ist die Datenbank mit angelegt.
– my.cnf konfigurieren
– Unter Abschnitt [mysqld] folgendes eintragen:
– server-id=2 (größere Zahl als Master!!)
– master-host=192.169.10.176
– master-user=replikant
– master-password=replikant
– master-connect-retry=60
– replicate-do-db=slave
– folgenden SQL-Befehl absetzen um in den SLAVE-Status zu wechseln:
CHANGE MASTER TO MASTER_HOST='master_host_name IP geht auch!!',
MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
- ACHTUNG!!
– Mit dem obigen Befehl werden alle Tabelle repliziert
– sollte in der Konfigurationsdatei folgender Eintrag stehen:
–
replicate-do-db = <Datenbakname>
– Dann wird auch nur diese repliziert.
–
Also bevor der Slave gestartet wird, diesen Eintrag anpassen, weitere
Datenbanken durch nochmaliges Einfügen einer Zeile mit entsprechendem
Inhalt hinzufügen
– folgenden SQL-Befehl absetzen um SLAVE zu starten
–
start slave;
Replikationsserver
3/4
Wie weiß ich ob alles läuft?
Auf beiden Systemen empfiehlt es sich die laufenden Prozesse auf dem MySQL-Servern zu
überprüfen. Dies geschieht mittels SQL:
show processlist;
Auf dem Master sollte folgender Prozesse laufen:
Auf dem Slave sollten folgende Prozesse laufen:
Wenn nun Änderungen in der Datenbank des Masterservers getätigt werden, sollten diese in
kürzester zeit auch auf dem Slave erscheinen.
Replikationsserver
4/4
Herunterladen