Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:datenbanken:mysql_replication

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:datenbanken:mysql_replication [2012/11/09 17:39]
khopf angelegt
software:datenbanken:mysql_replication [2013/12/01 18:43] (aktuell)
mhoffmann [Schritt 7: Starting the replication]
Zeile 2: Zeile 2:
 [[software:​datenbanken:​mysql|MySQL]] Replication kann zum Load-Balancing und zur Ausfallsicherheit genutzt werden. In folgendem Tutorial ist die Installation einer Master-Slave-Umgebung beschrieben. [[software:​datenbanken:​mysql|MySQL]] Replication kann zum Load-Balancing und zur Ausfallsicherheit genutzt werden. In folgendem Tutorial ist die Installation einer Master-Slave-Umgebung beschrieben.
  
-===== How it works ===== 
-Die MySQL-Replikation funktioniert,​ in dem der Slave-Server aus dem binärlog des Master-Servers alle ausgeführten Queries auch ausführt. Das Konzept stößt jedoch bei komplexen Queries mit Transaktionen und Triggern an seine Grenzen und für jeden Einsatzzweck muss geprüft werden, ob die Lösung umsetzbar ist. 
  
-===== Configuration ​=====+===== Wie es funktioniert ​===== 
 +Die MySQL-Replikation funktioniert,​ in dem der Slave-Server aus dem Binärlog des Master-Servers alle ausgeführten Queries auch ausführt. Das Konzept stößt jedoch bei komplexen Queries mit Transaktionen und Triggern an seine Grenzen und für jeden Einsatzzweck muss geprüft werden, ob die Lösung umsetzbar ist.
  
 +
 +===== Konfiguration =====
 Die Installation wird nach Vorschlag von //Schwartz et al. (2008)//​((Schwartz,​ Baron; Zawodny, Jeremy D. (2008): High performance MySQL. 2. Aufl. Beijing ;, Sebastopol: O'​Reilly.)) durchgeführt. Die Installation wird nach Vorschlag von //Schwartz et al. (2008)//​((Schwartz,​ Baron; Zawodny, Jeremy D. (2008): High performance MySQL. 2. Aufl. Beijing ;, Sebastopol: O'​Reilly.)) durchgeführt.
  
  
-==== Step 1: Installieren von MySQL auf allen Servern ====+==== Schritt ​1: Installieren von MySQL auf allen Servern ====
 Unter Debian und Ubuntu erhält man den MySQL-Server mittels Unter Debian und Ubuntu erhält man den MySQL-Server mittels
 <code bash> <code bash>
Zeile 16: Zeile 17:
 </​code>​ </​code>​
  
-==== Step 2: Nicht-Lokale Serverzugriffe freischalten ==== +==== Schritt ​2: Nicht-Lokale Serverzugriffe freischalten ==== 
-Standardmäßig sind nur Zugriffe auf den Server über die interne Netzwerkkarte ''​localhost''​ möglich, weshalb in der ''​my.cnf''​ die externe Netzwerkkarte eingegeben werden muss, bzw. ''​0.0.0.0''​ für Zugriffe von allen Netzwerkkarten eingetragen werden muss:+Standardmäßig sind nur Zugriffe auf den Server über die interne Netzwerkkarte ''​localhost''​ möglich, weshalb in der ''​my.cnf''​ die externe Netzwerkkarte eingegeben werden muss, bzw. ''​0.0.0.0''​ für Zugriffe von allen Netzwerkkarten eingetragen werden muss (my.cnf-Datei wahrscheinlich in /etc/mysql zu finden):
  
 <​code>​ <​code>​
Zeile 23: Zeile 24:
 </​code>​ </​code>​
  
-==== Step 3: Einrichten von Replication-Accounts ==== + 
-Nun können wir User-Accounts auf Client und Server erstellen. //Schwartz etal. (2008)// schlagen vor, auf allen Serveren Nutzer mit den Rechten ''​REPLICATION SLAVE''​ und ''​REPLICATION CLIENT''​ anzulegen, jedoch sollte man die Zugriffsrechte auf das tatsächlich benötigte Netzwerk beschränken,​ da die Replikation unsicher sei.+==== Schritt ​3: Einrichten von Replication-Accounts ==== 
 +Nun können wir User-Accounts auf Client und Server erstellen. //Schwartz et al. (2008)//((Schwartz, Baron; Zawodny, Jeremy D. (2008): High performance MySQL. 2. Aufl. Beijing ;, Sebastopol: O'​Reilly.)) ​schlagen vor, auf allen Serveren Nutzer mit den Rechten ''​REPLICATION SLAVE''​ und ''​REPLICATION CLIENT''​ anzulegen, jedoch sollte man die Zugriffsrechte auf das tatsächlich benötigte Netzwerk beschränken,​ da die Replikation unsicher sei.
  
 <code mysql> <code mysql>
Zeile 32: Zeile 34:
 Die ''​[ip]''​ Adresse kann Wildcards enthalten: ''​%''​. Die ''​[ip]''​ Adresse kann Wildcards enthalten: ''​%''​.
  
-==== Step 4: Master-konfiguration ====+Mehr zu den Rechten wie REPLICATION SLAVE bzw, REPLICATION CLIENT sind [[http://​dev.mysql.com/​doc/​refman/​5.0/​en/​privileges-provided.html#​priv_replication-client|hier]] zu finden. 
 + 
 +==== Schritt ​4: Master-konfiguration ====
 Auf allen Maschinen muss das binary-logging aktiviert werden und eine eindeutige Server-ID gesetzt werden, dies geschieht alles in der ''​my.cnf'':​ Auf allen Maschinen muss das binary-logging aktiviert werden und eine eindeutige Server-ID gesetzt werden, dies geschieht alles in der ''​my.cnf'':​
  
Zeile 48: Zeile 52:
 Die Ergebnisse dieser Abfrage benötigen wir in **Schritt 6**, wenn wir den Slave zum Master verbinden. Die Ergebnisse dieser Abfrage benötigen wir in **Schritt 6**, wenn wir den Slave zum Master verbinden.
  
-==== Step 5: Slave-Konfiguration ====+ 
 +==== Schritt ​5: Slave-Konfiguration ====
 Wie beim Master müssen Konfigurationen in der ''​my.cnf''​ erfolgen: Wie beim Master müssen Konfigurationen in der ''​my.cnf''​ erfolgen:
  
Zeile 59: Zeile 64:
 </​code>​ </​code>​
  
-==== Step 6: Connecting the slave to the master ====+ 
 +==== Schritt ​6: Connecting the slave to the master ====
 Die Verbindung zum Master geschieht mit folgender Abfrage: Die Verbindung zum Master geschieht mit folgender Abfrage:
  
Zeile 74: Zeile 80:
 Die Informationen über ''​[logfile]''​ und ''​[position]''​ können aus der Abfrage ''​SHOW MASTER STATUS;''​ in **Schritt 4**.  Die Informationen über ''​[logfile]''​ und ''​[position]''​ können aus der Abfrage ''​SHOW MASTER STATUS;''​ in **Schritt 4**. 
  
-==== Step 7: Starting the replication ====+ 
 +==== Schritt ​7: Starting the replication ====
 Vor dem Start der Replikation können wir mit folgender Abfrage den Status überprüfen:​ Vor dem Start der Replikation können wir mit folgender Abfrage den Status überprüfen:​
  
Zeile 100: Zeile 107:
 mysql> SHOW PROCESSLIST\G mysql> SHOW PROCESSLIST\G
 </​code>​ </​code>​
 +
 +==== Fehlerbehandlung ====
 +
 +Falls es beim Start der Replikation zu einer Fehlermeldung kommt, dass Primary Keys doppelt vergeben sind, kann man folgendes versuchen:
 +
 +MySQL Server stoppen:
 +<​code>​
 +# service mysql stop
 +</​code>​
 +
 +In der Datei **/​etc/​mysql/​my.cnf** folgenden Eintrag im Abschnitt [mysqld] hinzufügen:​
 +<​code>​
 +slave-skip-errors=1062
 +</​code>​
 +
 +MySQL Server neu starten:
 +<​code>​
 +# service mysql start
 +</​code>​
 +
 +Wenn bei der Anzeige des Slave Status der Wert von "​Seconds_Behind_Master"​ auf 0 gesunken ist, entfernt man die Zeile wieder aus der Konfiguration und startet den MySQL Server neu
  
  

Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.

software/datenbanken/mysql_replication.1352479141.txt.gz · Zuletzt geändert: 2012/11/09 17:39 von khopf