Professional Documents
Culture Documents
com
MySQL Replikation
DOAG Konferenz 2012, Nrnberg Oli Sennhauser
Senior MySQL Consultant, FromDual GmbH
oli.sennhauser@fromdual.com
1 / 26
www.fromdual.com
2 / 26
Kunden
www.fromdual.com
3 / 26
Inhalt
www.fromdual.com
MySQL Replikation
Was ist Replikation? Wie funktioniert MySQL Replikation? Wie wird Replikation aufgesetzt? Wann brauche ich MySQL Replikation? Neuerungen in 5.1, 5.5 und 5.6
4 / 26
www.fromdual.com
Daten von einer Datenbank auf eine oder mehrere andere Datenbanken weiterreichen:
Applikation
Master
Slave
Daten = UPDATE, INSERT, DELETE, ... (= DML Statements) oder (binre) Events
5 / 26
MySQL Replikation
www.fromdual.com
Master
Slave
SQL_thread
relay-log.info
...
bin-log.m
bin-log.n
...
relay-log.m
relay-log.n
bin-log.index
6 / 26
www.fromdual.com
Server ID setzen:
server_id=42
7 / 26
www.fromdual.com
www.fromdual.com
www.fromdual.com
Kontrolle:
SHOWSLAVESTATUS\G
Slave_IO_State: Master_Host:192.168.1.42 Master_User:replication Master_Port:3306 Master_Log_File:binlog.000001 Read_Master_Log_Pos:51819 Relay_Log_File:relaybin.000001 Relay_Log_Pos:4 Slave_IO_Running:No Slave_SQL_Running:No
www.fromdual.com
11 / 26
Probleme im Betrieb
www.fromdual.com
Fummeln auf dem Slave Master/Slave Lag (hinterher hinken) Master/Slave Drift (auseinander laufen)
Wenn Master und Slave auseinander laufen MUSS der Slave neu aufgesetzt werden
Master/Slave Drift
www.fromdual.com
Auf dem Slave geschrieben wird (rumfummeln!) sql_bin_log=0 sql_slave_skip_counter=1 slave_skip_errors=... Nicht-deterministische Abfragen/Funktionen viel besser mit Row Based Replikation (RBR) Filtern auf Master oder Slave Temporre Tabellen mit SBR mktablechecksum
Unterschiede knnen gefunden werden mit Tools aus dem Maatkit: und gefixed werden mit:
mktablesync
www.fromdual.com
Scale-Out Lsungen Backup Slave Datenanalyse, Reporting Hochverfgbarkeit (HA) (Zeitversetzte Datenstnde vorhalten)
14 / 26
www.fromdual.com
Scale-Up
Relaxation of Constraints
Scale-Out
15 / 26
www.fromdual.com
Load balancer
16 / 26
www.fromdual.com
Row-Based Replikation (5.1) Semi-Synchrone Replikation (5.5) Transaktions Basierte Replikation (5.6) Row Image Control (5.6) Crash Safe Binary Logs (5.6) Parallel Slave Worker Threads (5.6) ...
17 / 26
www.fromdual.com
Problem: nicht-deterministische Abfragen/Funktionen inkonsistente Daten zwischen Master und Slave Events / Trx werden bermittelt binlog_format={ROW|MIXED|STATEMENT} RBR ist die sicherste Art der Replikation! Wie sehe ich trotzdem was passiert? mysqlbinlogbase64output=DECODEROWS verbosebinlog.000069 Mehr binlog Traffic, unterschiedliche Performance Testen!
18 / 26
www.fromdual.com
Master wartet NICHT auf Slave! Bei Crash: Trx ist nicht zwingend auf Slave Plug-in (muss auf Master UND Slave aktiv sein!) Master wartet auf Slave bis Timeout!
Bis Slave in Relay Log (sync) geschrieben hat Bessere Datenintegritt (Master + mind. 1 Slave) Schlechtere Performance (Commit + NW Roundtrip + Commit) Master Commit, dann Crash, mglich dass Trx Slave nicht erreicht hat!
19 / 26
Semi-synchrone Replikation
www.fromdual.com
Master
Slave
relay-log.info
OK
...
bin-log.m bin-log.n
...
relay-log.m
relay-log.n
OK
bin-log.index
20 / 26
Semi-synchrone Replikation
www.fromdual.com
Plug-ins aktivieren:
INSTALLPLUGINrpl_semi_sync_masterSONAME'semisync_master.so'; INSTALLPLUGINrpl_semi_sync_slaveSONAME'semisync_slave.so';
Prfen ob erfolgreich:
SHOWPLUGINS; +++++ |Name|Status|Type|Library| +++++ |rpl_semi_sync_master|ACTIVE|REPLICATION|semisync_master.so| |rpl_semi_sync_slave|ACTIVE|REPLICATION|semisync_slave.so| +++++
21 / 26
www.fromdual.com
Global Transaction Identifiers (GTID) Keine M/S Inkonsistenzen mehr mglich!?! Noch etwas wenig geschmeidig / komplizierter :-( binlog_row_image={full|minimal|noblob} slave_parallel_workers=<n> Parallelisieren pro Schema Gut fr Hoster mit Traffic auf vielen Schemata!
22 / 26
www.fromdual.com
23 / 26
www.fromdual.com
Delayed Replication
CHANGEMASTERTOMASTER_DELAY=n;
24 / 26
www.fromdual.com
Echte Multi-Master Replikation Skaliert sowohl lesend als auch schreibend mehr dazu Erkan & Alex/Seppo
25 / 26
Q&A
Fragen ? Diskussion?
www.fromdual.com
MySQL Beratung Remote-DBA fr MySQL Support fr MySQL und Galera MySQL Schulung
www.fromdual.com/presentations
26 / 26