MySQL Cluster und MySQL Proxy



Ähnliche Dokumente
Installation MySQL Replikationsserver

MySQL Replikation. Erkan Yanar linsenraum.de linsenraum.de

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

MySQL Replication: Eine Einführung

MySQL Replikation Neue Features in 5.5 und 5.6

Synchrone multi-master Replikation für MySQL

MySQL Cluster mit Galera

MySQL Replikation und GTID

MySQL Administration. Seminarunterlage. Version 3.02 vom

HA Architekturen mit MySQL

MySQL Replikation - Die Eier legende Wollmilchsau?

PostgreSQL in großen Installationen

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

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

MySQL Installation. AnPr

desk.modul : WaWi- Export

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Serverbetrieb überwachen Prozesse Protokolldateien. MySQL 4, 5. Kapitel 11: Logfiles. Marcel Noe

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

MySQL 5.1. Kristian Köhntopp

MySQL Replikation für Einsteiger

Version/Datum: Dezember-2006

Installationsbeschreibung Flottenmanager 7.1

SMARTtill Server mit Manager

Seite 1. rt. Backup. 1. My. Auf dem. eingefügt. folgendem Link:

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

MySQL Replikation für Einsteiger

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Umzug der Datenbank Firebird auf MS SQL Server

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Aktuelle Entwicklungen

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Administrator-Anleitung

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

edu- sharing Update Anleitung

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Das neue Volume-Flag S (Scannen erforderlich)

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

Options- und Freitext-Modul Update-Anleitung

Migration anhand von Wordpress

MailUtilities: Remote Deployment - Einführung

MySQL 101 Wie man einen MySQL-Server am besten absichert

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview.

Wie können Sie eine Client Lizenz wieder freigeben?

Hinweise zur Installation von MySQL

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Lokale Installation von DotNetNuke 4 ohne IIS

Diplomarbeit Webmaster. CONTENTMANAGEMENT Installationsanleitung. Version 1.0

Mit dem MySQL Migration Toolkit aus ACCESS Datenbank SQL-Skripte generieren

Installationsanleitung dateiagent Pro

105.3 SQL-Datenverwaltung

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

MySQL Queries on "Nmap Results"

Naemon & Thruk Sven Nierlein!

Prozedurale Datenbank- Anwendungsprogrammierung

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

OP-LOG

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

Wie richten Sie Ihr Web Paket bei Netpage24 ein

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Integration von KS-Hostmonitor in itop

Tomcat Konfiguration und Administration

Installation mit Lizenz-Server verbinden

bizsoft Rechner (Server) Wechsel

DB Restore mit SQL Server7

Remote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle

Windows Server 2012 R2 Essentials & Hyper-V

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Anleitung zur Installation und Konfiguration des MySQL-Datenbanksystems

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Interaktive Webseiten mit PHP und MySQL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.

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

Installationsanweisung Live Update RadarOpus 1.40 bzw für MAC. WICHTIGER HINWEIS! Sie benötigen für das Update ca Minuten.

Synchronisation von redundanten Datenbeständen

Informatik für Ökonomen II Übung 0

Anleitung zur Installation und Konfiguration des MySQL-Datenbanksystems

Planung für Organisation und Technik

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover,

Installation Messerli MySQL auf Linux

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

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Perceptive Document Composition

Projektmanagement in Outlook integriert

Psyprax GmbH. Wichtig für alle Netzwerkinstallationen: Psyprax GmbH

Transkript:

MySQL Cluster und MySQL Proxy

Alles Online Diese Slides gibt es auch unter: http://rt.fm/s4p

Agenda (Don't) Panic Web- und MySQL-Server MySQL Master-Master Cluster MySQL Proxy und Cluster MySQL Master-Slave/Master Konfiguration Replication Manager MySQL Proxy Aufgaben LUA Konfiguration Live Demo

(Don't) Panic

Web- und MySQL-Server

MySQL Master-Master Cluster

MySQL Proxy und Cluster

MySQL Master-Slave/Master

Pre-Konfiguration Empfehlung: leere MySQL Server ohne Datenbank ggf. Datenbank Sicherung und auf allen Cluster-Nodes einspielen $ mysqldump --opt --allow-keywords --add-drop-database --hex-blob --quote-names --lock-tables <dbname>

Konfiguration - my.cnf [mysql] # Server IDs should be consecutive (1, 2, 3,...) # among all master servers server_id = 1 # The increment should be set to the number of # master servers involved (default: 1) auto_increment_increment = 2 # The offset should be set to the local server-id (default: 1) auto_increment_offset = 1 # Using those, the NEXT_INSERT_ID is calculated as follows: # (NOTE: all values are integral, thus a division is whole-numbered as well) # AI_SEQUENCE = (AI_CURRENT + AI_INCREMENT - AI_OFFSET) / AI_INCREMENT # NEXT_INSERT_ID = AI_SEQUENCE * AI_INCREMENT + AI_OFFSET # The binary log (master role) log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index # The relay log where binary log data from the master is written to # by the IO thread before being read by the SQL thread (slave role) relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index # Purge binary logs older than this many days expire_logs_days = 10 # Maximum size of single binary log files max_binlog_size = 100M # Log updates received as a slave from a master to the own # binary log (used for circular master-master replication) log_slave_updates = 1

Konfiguration - Benutzer Anlegen eines Benutzers mit Replikationsrechten Host-Rechte sollten ggf. eingeschränkt werden mysql-01> GRANT SUPER, REPLICATION CLIENT, REPLICATION SLAVE ON *.* \ TO 'replication'@'192.168.0.%' IDENTIFIED BY 'secret'; mysql-02> GRANT SUPER, REPLICATION CLIENT, REPLICATION SLAVE ON *.* \ TO 'replication'@'192.168.0.%' IDENTIFIED BY 'secret';

Konfiguration - Slave Festlegen des Master Servers SSL von Vorteil mysql-01> CHANGE MASTER TO master_host='masterserver', master_port=3306, master_user='replication', master_password='secret', master_ssl = 1, maser_ssl_ca = '/etc/ssl/certs/class3.pem';

MySQL Status Master mysql> show master status; +------------------------+----------+--------------+------------------+ File Position Binlog_Do_DB Binlog_Ignore_DB +------------------------+----------+--------------+------------------+ MysqlMYSQL01-bin.000008 410 adam +------------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) Slave mysql> show slave status\g; ****** 1. row ****** Slave_IO_State: Waiting for master to send event Master_Host: mysqlserver Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: Mysql1MYSQL02-bin.000008 Read_Master_Log_Pos: 410 [...]

Multi-Master Replication Manager Was ist MMM? HA Lösung mit Failover Möglichkeit Automatisches Failover für Slave-Server Was it MMM nicht? Load Balancer 100% Zuverlässig (Replikation ist nicht Perfekt) Anleitung für die Installation: http://mysql-mmm.org/

MMM Problem und Lösung

MMM Problem und Lösung

MMM Problem und Lösung

MySQL Proxy

Aufgaben Erstellung neuer MySQL Befehle Filterung von MySQL Queries Query Analyze Query Quota Support Ausführen von Shell Scripten Monitoring Load Balancing MySQL-Server Remote Steuerung (start/stop) Kaffee kochen

Übersicht

Lua Scriptsprache Entworfen für Embedded Systeme MySQL Proxy ist mit Lua-Script erweiterbar Funktion in Lua function f (x) print(x) end g = f g(10)

MySQL Proxy - Keywords connect_server() Wird beim Verbinden zum MySQL Server aufgerufen (Benötigt z.b. für Load Balancer) read_query(packet) Funktion wird vor dem Senden an den MySQL Server aufgerufen read_query_result(injection_packet) Diese Funktion wird vor dem Senden des MySQL Servers an den Client aufgerufen

MySQL Proxy - Query Abfangen inform_user.lua -- inform_user.lua function read_query(packet) if string.byte(packet) == proxy.com_query then print("the client committed the following query: ".. string.sub(packet, 2)) end end Ausgabe The client committed the following query: show tables The client committed the following query: select * from t The client committed the following query: select * from t The client committed the following query: insert into t ( c ) values ( 'blub' )

MySQL Proxy - Query Aufsplitten

MySQL Proxy - Query Aufsplitten

Usage /usr/local/sbin/mysql-proxy --proxy-lua-script =</path/name.lua> --proxy-address =<host:port> --proxy-read-only-backend-addresses =<host:port> --proxy-backend-addresses =<host:port> Das Script wird erst ab dem ersten verbunden Client ausgeführt

Live Demo mysql-01: MySQL Master mysql-02: MySQL Master mysql-03: MySQL Slave web-01: MySQL Proxy und Webserver

Quellen http://mysql-mmm.org/mmm2:guide http://forge.mysql.com/w/images/0/05/dualmastersetupswithmmm.pdf http://www.admin-magazin.de/[..]/verteilte-datenbank-mit-mysql-proxy http://datacharmer.org/[..]/mysql_proxy_oscon_2008a.pdf http://www.fromdual.ch/sites/default/files/doag_regio_2011-03.pdf

Fragen? 42!