-
www.fromdual.com
1 / 23
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
DOAG Konferenz 2015, Nrnberg
Oli SennhauserSenior MySQL Consultant, FromDual GmbH
-
www.fromdual.com
2 / 23
ber FromDual GmbH
Support
remote-DBA
Schulung
Beratung
-
www.fromdual.com
3 / 23
InhaltHA Solutions Read scale-out Replication set-up for HA Active/passive fail-over MySQL Cluster Replication Cluster Storage-Engine-Replication
Weltweite Produktionsdatenverwaltung mit MySQL Ausgangslage Probleme die sich stellen Wer darf welche Daten kriegen? Wie werden Daten verteilt? Produktionsdaten zurck? MySQL multi-Source Replikation Bertriebsverantwortung Hochverfgbarkeit Sensitive Daten Wer darf welche Daten sehen? MySQL Row Filterung Nachtrgliche Forderungen
-
www.fromdual.com
4 / 23
Immer mehr deutsche Unternehmen lagern Ihre Produktion ins nahe und ferne Ausland aus.
Das hat organisatorische und sicherheits-technische berlegungen zur Folge.
Insbesondere dann, wenn man dem Partner im Ausland nicht 100% traut.
Und staatliche und pri-vate OrganisationenBegehrlichkeiten zei-gen...
Ausgangslage
-
www.fromdual.com
5 / 23
Probleme, die sich stellen Wer darf welche Daten kriegen? Wie werden die Daten verteilt? Wie kriegen wir die Produktionsdaten
wieder zurck in die Zentrale? Wer hat die Verantwortung ber welche
Komponenten? Wie stellen wir sicher, dass geheime Daten
nicht nachtrglich eingefordert werden knnen?
-
www.fromdual.com
6 / 23
Wer darf welche Daten kriegen? Welche Daten? Anforderungen?
-
www.fromdual.com
7 / 23
Wer darf welche Daten kriegen? Welche Daten haben wir berhaupt?
Produktions-Rezepturen Daten, die verbaut werden Produktions-Messdaten
Anforderungen Land A soll NICHT Daten von Land B sehen! Zentrale soll alle Messdaten erhalten Verbaute Daten nur in kleinen Hppchen
verteilen (Missbrauch).
-
www.fromdual.com
8 / 23
Wie werden Daten verteilt? Hinweg
-
www.fromdual.com
9 / 23
Wie werden Daten verteilt? Hinweg, 2 Mglichkeiten:
Applikatorisch :-( MySQL Master/Slave Replikation
Kunde hat MySQL M/S Replikation gewhlt Einfach und robust Schnell zu implementieren Standard out-of-the-box Verfahren
-
www.fromdual.com
10 / 23
Produktionsdaten zurck?
-
www.fromdual.com
11 / 23
Produktionsdaten zurck? Wie kriegen wir die Produktionsdaten wieder zurck in die
Zentrale? Rckweg
Applikatorisch :-( MySQL multi-Source Replikation (5.7)
Kunde hat vorerst applikatorisch gewhlt da recht einfache Logik
REPLACE INTO zentraleSELECT * FROM land WHERE ts > ;
MySQL multi-Source Replikation noch nicht GA war Sommer 2015 Betrieb nicht ganz trivial ist
-
www.fromdual.com
12 / 23
multi-Source Replikation Was wir bisher konnten:
Master/Slave
und Master/Master:
neu ist multi-Source:
Master
Slave 1 Slave 2 Slave 3
Master 1
Master 2
Slave
Master 1 Master 2 Master 3
-
www.fromdual.com
13 / 23
Betriebsverantwortung Wer hat die Verantwortung ber welche
Komponenten?
-
www.fromdual.com
14 / 23
Hochverfgbarkeit
Wie wir das gan-ze noch hoch-
verfgbar aus- gelegt?
-
www.fromdual.com
15 / 23
Sensitive Daten Wie stellen wir sicher, dass sensitive Daten,
das Haus nicht verlassen? Wie funktioniert MySQL Replikation?
Application
Disk
Master (RAM)
Disk
Slave (RAM)
binary log relay log
Hauptsitz Land X
-
www.fromdual.com
16 / 23
Wer darf welche Daten sehen? Land A soll nicht Daten von Land B sehen!
d.h. Land A soll nicht Daten von Land B kriegen!!! Sonst kann der gewiefte Admin die auch sehen...!
Wie? MySQL Replikationsfilterung! Master: binlog-db, binlog-ignore-db Slave: replicate-do-db, replicate-ignore-db, replicate-do-table, replicate-ignore-table
Problem: Filtern auf dem Master :-( zwar nicht in Replikation aber auch nicht verfgbar fr Point-in-Time-Recovery!
-
www.fromdual.com
17 / 23
Lsung? Blackhole Storage Engine!
/dev/nullApplication
Disk
Master (RAM)
/dev/null
Slave (RAM)
binary log relay log
Hauptsitz Hauptsitz
Disk
Slave (RAM)
relay log
Land X
keinFilter! Filtern!
-
www.fromdual.com
18 / 23
MySQL Row Filterung? Schema Filterung? Tabellen Filterung? d.h. aber, wir mssen unsere Applikation ev.
umbauen?!? 1 Schema pro Land Vielleicht gar nicht so schlechte Idee, aber Arbeit!
Row Filterung? MySQL :-( aber ...
-
www.fromdual.com
19 / 23
MySQL Row Filterung? MySQL kann das nicht. Aber, Lego-Kiste auf...CREATE TRIGGER filter_rowBEFORE INSERT ON manufacturing_dataFOR EACH ROWBEGIN IF ( NEW.manufacture_plant != 'China' ) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Row was filtered out.' , CLASS_ORIGIN = 'FromDual filter trigger' , SUBCLASS_ORIGIN = 'filter_row' , CONSTRAINT_SCHEMA = 'erp' , CONSTRAINT_NAME = 'filer_row' , SCHEMA_NAME = 'erp' , TABLE_NAME = 'manufacturing_data' , COLUMN_NAME = '' , MYSQL_ERRNO = 1644 ; END IF;END;
-
www.fromdual.com
20 / 23
Nachtrgliche Forderungen Wie stellen wir sicher, dass geheime Daten
nicht nachtrglich eingefordert werden knnen? Es will da mitgucken/mithren!
-
www.fromdual.com
21 / 23
Nachtrgliche Forderungen
Application
Disk
Master (RAM)
/dev/null
Slave (RAM)
binary log relay log
Hauptsitz Hauptsitz
Disk
Slave (RAM)
relay log
Land X
keinFilter! Filtern!
Gar nicht ausliefern Nur so wenig wie mglich Asap wieder sauber lschen
-
www.fromdual.com
22 / 23
http://fromdual.com/controlling-worldwide-manufacturing-plants-with-mysql
Schulung: MySQL Operationsund Hochverfgbarkeitsarchitekturen
ca. 6 x im Jahr (Berlin und Essen)
Stand 308
-
www.fromdual.com
23 / 23
Q & A
Fragen ?
Diskussion?
Wir haben Zeit fr ein persnliches Gesprch...
FromDual bietet neutral und unabhngig: Beratung Remote-DBA Support fr MySQL, Galera, Percona Server und MariaDB Schulung
www.fromdual.com/presentations
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23