MySQL Replikation für Einsteiger



Ähnliche Dokumente
MySQL Replikation Neue Features in 5.5 und 5.6

MySQL Replikation für Einsteiger

MySQL High Availability. DOAG 2013 Datenbank. 14. Mai 2013, Düsseldorf. Oli Sennhauser

HA Architekturen mit MySQL

MySQL Cluster mit Galera

MySQL Replikation für Einsteiger

MySQL Replikation. Erkan Yanar linsenraum.de linsenraum.de

Synchrone multi-master Replikation für MySQL

MySQL Replikation - Die Eier legende Wollmilchsau?

MySQL Replikation, Scale-Out, Master- Master Replikation, Backup

MySQL Backup und Restore

MySQL Replication: Eine Einführung

MySQL Cluster und MySQL Proxy

MySQL Security. DOAG 2013 Datenbank. 14. Mai 2013, Düsseldorf. Oli Sennhauser

MySQL HA & Security SLAC Juni 2013, Berlin. Oli Sennhauser

MySQL New Features 5.6

Installation MySQL Replikationsserver

Performance Tuning & Scale-Out mit MySQL

Backup und PiTR mit MySQL

MySQL Replikation und GTID

Hochverfügbarkeit mit MySQL: Eine Kartographie der Lösungen

MySQL Performance Tuning für Entwickler

MySQL-Server im Teamwork - Replikation und Cluster

PostgreSQL in großen Installationen

Partitionieren über Rechnergrenzen hinweg

MySQL 5.1. Kristian Köhntopp

MySQL Replikationstechnologien

MySQL Administration. Seminarunterlage. Version 3.02 vom

Making Innodb a HA SE: Galera

Hinweise zur Installation von MySQL

MySQL Architekturen für Oracle DBA's

MySQL Performance Tuning

Datensicherheit und Hochverfügbarkeit

Datenverzeichnis backupen MySQLdump Replication. MySQL 4, 5. Kapitel 12: Backup. Marcel Noe

Quickstep Server Update

Tag 4 Inhaltsverzeichnis

MySQL-Server im Teamwork - Replikation und Galera Cluster

MariaDB und Galera. Chemnitzer Linux-Tage März Ralf Lang Linux Consultant & Developer B1 Systems GmbH

Konsolidieren von MySQL Landschaften

Tag 4 Inhaltsverzeichnis

PayPal PLUS für Shopware

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

DOKUMENTATION VOGELZUCHT 2015 PLUS

MailUtilities: Remote Deployment - Einführung

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

MySQL Backup/Recovery

Die MySQL-Schulung der Heinlein Akademie: In diesem Training lernen Sie MySQL in all seinen Facetten kennen.

Vorstellung SimpliVity. Tristan P. Andres Senior IT Consultant

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

Referenzielle Integrität SQL

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

MySQL Installation. AnPr

Ihren Kundendienst effektiver machen

3. Stored Procedures und PL/SQL

repostor möchte Ihre TCO senken

Windows 8/8.1 RecImg-Manager

Dynamic Ressource Management

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

MySQL Architektur die Admin-Sicht

Prüfen Sie, ob Sie über Administratorrechte (Server und Client) verfügen.

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

How to install freesshd

:: Anleitung Hosting Server 1cloud.ch ::

Microsoft Update Windows Update

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

EINSATZ VON MICROSOFT TERMINAL-SERVICES ODER CITRIX METAFRAME

Installationsanleitung für. SugarCRM Open Source. Windows Einzelplatz

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Options- und Freitext-Modul Update-Anleitung

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

DOKUMENTATION ky2help V 3.6 Servertests

Verwendung des IDS Backup Systems unter Windows 2000

Backup. Christian Inauen. Theorie. Praxis. Backup. Werkzeuge. Point-in-time Restore. ..bei MySQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

Apache HBase. A BigTable Column Store on top of Hadoop

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Benutzer und Rechte Teil 1

Anleitungsbeschreibung

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

Prozessarchitektur einer Oracle-Instanz

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Wie starte ich mit meinem Account?

Backup-Server einrichten

Technical Note 0302 ewon

OP-LOG

Bilder im Drachenforum per Klicklösung veröffentlichen

Exchange Routing. Heino Ruddat Senior Solution Architect Invenate GmbH. Agenda. Unterschiede zu Exchange 5.5 Architektur

4D Server v12 64-bit Version BETA VERSION

Transkript:

MySQL Replikation für Einsteiger DOAG Conference 2011, Nürnberg Oli Sennhauser Senior MySQL Consultant at FromDual GmbH oli.sennhauser@fromdual.com www.fromdual.com 1

FromDual GmbH FromDual bietet neutral und unabhängig: Beratung für MySQL (vor Ort und remote) Remote-DBA / MySQL Betrieb Support für Galera (synchrone Replikation) Support für MySQL (Basic und Silber) Schulung für MySQL Consulting Partner der Open Database Alliance (ODBA.org) Oracle Silber Partner (OPN) Mehr Informationen unter: http://www.fromdual.com www.fromdual.com 2

Kunden www.fromdual.com 3

Inhalt 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 Varianten der Replikation www.fromdual.com 4

Was ist Replikation? Daten von einer Datenbank auf eine oder mehrere andere Datenbanken weiterreichen: Applikation Master Slave Daten = UPDATE, INSERT, DELETE,... (= DML Statements) oder (binäre) Events www.fromdual.com 5

MySQL Replikation Wie funktioniert die MySQL Replikation? Applikation binlog dump thread IO_thread master.info Master Initialer asynchron Dump Slave SQL_thread relay-log.info... bin-log.m bin-log.n binary log writer thread... relay-log.m relay-log.n bin-log.index www.fromdual.com 6

Vorbereiten des Masters Auf dem Master im my.cnf: Binary log einschalten: log bin = bin log Server ID setzen: server_id = 42 Muss im Replikations-Setup Unique sein! Server neu starten (downtime!) www.fromdual.com 7

User anlegen und Dump ziehen Immer noch auf dem Master: Replikations-User anlegen: CREATE USER 'replication'@'192.168.1.%' IDENTIFIED BY 'secret'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.%'; Initialen konsistenten! Dump ziehen: mysqldump all databases singletransaction ( lock all tables) master data > full_dump.sql www.fromdual.com 8

Aufsetzen des Slaves Neue Datenbank erstellen (2. Maschine)./scripts/mysql_install_db \ datadir=/var/lib/mysql Andere Server ID setzen: server_id = 43 Slave auf seinen Master ansetzen: CHANGE MASTER TO master_host='192.168.1.42', master_port=3306, master_user='replication', master_password='secret'; Initialen konsistenten Dump einspielen: mysql u root < full_dump.sql www.fromdual.com 9

Kontrolle und starten Kontrolle: SHOW SLAVE STATUS\G Slave_IO_State: Master_Host: 192.168.1.42 Master_User: replication Master_Port: 3306 Master_Log_File: bin log.000001 Read_Master_Log_Pos: 51819 Relay_Log_File: relay bin.000001 Relay_Log_Pos: 4 Slave_IO_Running: No Slave_SQL_Running: No Starten des Slaves: SLAVE START; www.fromdual.com 10

Probleme beim Aufsetzen MySQL Replikation funktioniert grundsätzlich gut! Gründe warum Probleme auftreten: Nicht sauberes befolgen der Anleitungen! Nicht konsistentes Backup ohne single transaction / lock all tables :-( Jedes Schema einzeln ( all databases) :-( MySQL Dokumentation: How to Set Up Replication http://dev.mysql.com/doc/refman/5.1/en/replicationhowto.html www.fromdual.com 11

Probleme beim Betrieb Slave wird nicht überwacht Binary logs werden nicht aufgeräumt expire_logs_days = n PURGE BINARY LOGS TO 'bin log.000013'; 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 Filtern auf dem Master ist meist keine gute Idee! www.fromdual.com 12

Master/Slave Drift Master und Slave können auseinander laufen weil: 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 Temporäre Tabellen mit SBR Unterschiede können gefunden werden mit Tools aus dem Maatkit: mk table checksum und gefixed werden mit: mk table sync Ansonsten Slave neu aufsetzen!!! www.fromdual.com 13

Wann brauche ich die MySQL Replikation? Es gibt verschiedene Szenarien: Scale-Out Lösungen Backup Slave Datenanalyse, Reporting Hochverfügbarkeit (HA) Zeitversetzte Datenstände vorhalten www.fromdual.com 14

MySQL Scale-Out vs Scale-Up Scale-Up Kosten MySQL Design Phsikalische Flaschenhälse Relaxation of Constraints Scale-Out www.fromdual.com 15

Der MySQL Scale-Out Ansatz ro Applikation r t w Slave M Master Slave Reporting Slave Backup Slave 1 Slave 2 Slave 3... Load balancer www.fromdual.com 16

Neuerungen in MySQL 5.1, 5.5 und 5.6 Row-Based Replikation (5.1) Semi-Synchrone Replikation (5.5) Row Image Control (5.6) Crash Safe Binary Logs (5.6) Remote binary log shipping (5.6)... www.fromdual.com 17

Row-Based Replikation (5.1) Alt (<= 5.0) Statement-Based Replikation (SBR) Statements werden übermittelt Problem: nicht-deterministische Abfragen/Funktionen inkonsistente Daten zwischen Master und Slave Neu (>= 5.1) Row-Based Replikation (RBR) Events / Trx werden übermittelt binlog_format = {ROW MIXED STATEMENT} RBR ist die sicherste Art der Replikation! Wie sehe ich trotzdem was passiert? mysqlbinlog base64 output=decode ROWS verbose bin log.000069 Mehr binlog Traffic, unterschiedliche Performance Testen! www.fromdual.com 18

Semi-Synchrone Replikation (5.5) Default asynchrone Replikation Master wartet NICHT auf Slave! Bei Crash: Trx ist nicht zwingend auf Slave Neu (5.5) optional semi-synchrone Replikation Plug-in (muss auf Master UND Slave aktiv sein!) Master wartet auf Slave bis Timeout! Nach Timeout (default 10 s) Fallback auf asynchron Bis Slave in Relay Log (sync) geschrieben hat Bessere Datenintegrität (Master + mind. 1 Slave) Schlechtere Performance (Commit + NW Roundtrip + Commit) Master Commit, dann Crash, möglich dass Trx Slave nicht erreicht hat! www.fromdual.com 19

Semi-synchrone Replikation Wie funktioniert die semi-synchrone Replikation? Applikation master.info Master OK Slave relay-log.info... bin-log.m bin-log.n... relay-log.m OK relay-log.n bin-log.index www.fromdual.com 20

Semi-synchrone Replikation Plug-ins aktivieren: INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; Prüfen ob erfolgreich: SHOW PLUGINS; + + + + + Name Status Type Library + + + + + rpl_semi_sync_master ACTIVE REPLICATION semisync_master.so rpl_semi_sync_slave ACTIVE REPLICATION semisync_slave.so + + + + + Semi-synchrone Replikation einschalten: SET GLOBAL rpl_semi_sync_master_enabled = 1; SET GLOBAL rpl_semi_sync_slave_enabled = 1; Slave (neu) starten: STOP SLAVE IO_THREAD; START SLAVE IO_THREAD; www.fromdual.com 21

Replikation in MySQL 5.6 Row Image Control binlog_row_image = {full minimal noblob} Crash safe Binary Logs Vollständige Events/Trx werden geloggt Event-Länge + CRC32 Checksumme Slave: master.info und relay log.info zusätzlich in (MyISAM) Tabellen slave_master_info + slave_relay_log_info Umwandeln in InnoDB? www.fromdual.com 22

Replikation in MySQL 5.6 Remote Binary Log Shipping: mysqlbinlog read from remote server raw binlog.000001 > bin log.000001.dup Delayed Replication CHANGE MASTER TO MASTER_DELAY=n; Früher mk slave delay (Maatkit) Neue Variablen: log_bin_basename und log_bin Aus den Oracle Labs: Multi-threaded Slave / Parallel Slave Multi-source Replikation? www.fromdual.com 23

Synchrone Replikation mit Galera Codership (www.codership.com) Synchrone Replikation Certification Based Replication, kein 2PC! Echte Multi-Master Replication Skaliert sowohl lesend als auch schreibend www.fromdual.com 24

Galera (synchronous) Replication App App App Load balancing (LB) Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication www.fromdual.com 25

Galera (synchronous) Replication App App App Load balancing (LB) Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication www.fromdual.com 26

Galera im Master-Slave Modus App App App write write VIP Load Balancing read read Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication... www.fromdual.com 27

Galera über Standortgrenzen App App App Location A Location B App LB LB Node 2 wsrep Node 1 Node 3 wsrep wsrep Galera replication wsrep garbd Location C Node 4 wsrep www.fromdual.com 28

Vorteil und Nachteile von Galera Synchrone Replikation Basiert auf der InnoDB SE (andere SE theoretisch möglich) Echte aktiv-aktiv Multi-Master Topology Lesen und Schreiben auf alle Cluster-Knoten Automatisches Membership Control (wer darf dazugehören) Echtes paralleles Replizieren auf Zeilenebene Kein Slave-Lag (Hinterherhinken) Keine verlorenen Transaktionen Skaliet für Lese- UND Schreib-Operationen (Read Scale-Out!) Patch der MySQL Binaries (Codership stellt Binaries zur Verfügung) Vorsicht bei Hotspots auf einzelnen Rows Höhere Wahrscheinlichkeit für Dead Locks Snapshot State Transfer (initiales Syncen) blockiert fürs Schreiben 3 Knoten Initiales Syncen für sehr grosse DB's (>>50 Gbyte) noch mit mysqldump www.fromdual.com 29

Tungsten Replicator Continuent (www.continuent.com) Master/Slave Replikation (asynchron) Basiert auf MySQL Binary Logs! Für MySQL und PostgreSQL! Benötigt Java und Ruby Führt eine globale Transaktions-ID ein Multi-Source Replikation möglich! Parallele Replikation (pro Schema) Hoster, SaaS MySQL Versionen spielen keine Rolle www.fromdual.com 30

Tungsten Replicator Architektur www.fromdual.com 31

MySQL Community Event Heute Dienstag 15. November 18:00 Restaurant El Canto (peruanische Küche) unterhalb der Burg Keine Meerschweinchen! Bei Interesse bitte melden! www.fromdual.com 32

Q & A Fragen? Diskussion? Wir haben noch Zeit für persönliche und indviduelle Beratungen... www.fromdual.com 33