Sie sind auf Seite 1von 23

www.fromdual.

com

Weltweite Produktionsdatenverwaltung
mit MySQL-Replikation
DOAG Konferenz 2015, Nrnberg
Oli Sennhauser
Senior MySQL Consultant, FromDual GmbH

oli.sennhauser@fromdual.com

1 / 23

ber FromDual GmbH

www.fromdual.com

Support
Beratung

remote-DBA

Schulung
2 / 23

Inhalt

www.fromdual.com

HA Solutions
Weltweite
Produktionsdatenverwaltung mit MySQL

Ausgangslage
Read
scale-out
Replication
Probleme
die
set-up
sich stellen
for HA
Active/passive
Wer
darf welchefail-over
Daten kriegen?
MySQL
Wie
werden
Cluster
Daten verteilt?
Replication Clusterzurck?
Produktionsdaten
Storage-Engine-Replication
MySQL
multi-Source Replikation
Bertriebsverantwortung
Hochverfgbarkeit
Sensitive Daten
Wer darf welche Daten sehen?
MySQL Row Filterung
Nachtrgliche Forderungen

3 / 23

Ausgangslage

www.fromdual.com

Immer mehr deutsche Unternehmen lagern Ihre


Produktion ins nahe und ferne Ausland aus.
Das hat organisatorische und sicherheitstechnische berlegungen zur Folge.
Insbesondere dann, wenn man dem Partner im
Ausland nicht 100% traut.
Und staatliche und private Organisationen
Begehrlichkeiten zeigen...
4 / 23

Probleme, die sich stellen

Wer darf welche Daten kriegen?

Wie werden die Daten verteilt?

www.fromdual.com

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?
5 / 23

Wer darf welche Daten kriegen?

www.fromdual.com

Welche Daten?

Anforderungen?

6 / 23

Wer darf welche Daten kriegen?

www.fromdual.com

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).
7 / 23

Wie werden Daten verteilt?

www.fromdual.com

Hinweg

8 / 23

Wie werden Daten verteilt?

www.fromdual.com

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

9 / 23

Produktionsdaten zurck?

www.fromdual.com

10 / 23

Produktionsdaten zurck?

www.fromdual.com

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 zentrale
SELECT * FROM land WHERE ts > <letzter_lauf>;

MySQL multi-Source Replikation noch nicht GA war

Sommer 2015
Betrieb nicht ganz trivial ist
11 / 23

multi-Source Replikation

www.fromdual.com

Master

Was wir bisher konnten:


Master/Slave
Slave 1

Slave 2

Slave 3

Master 1

und Master/Master:
Master 2

Master 1

Master 2

Master 3

neu ist multi-Source:


Slave
12 / 23

Betriebsverantwortung

www.fromdual.com

Wer hat die Verantwortung ber welche


Komponenten?

13 / 23

Hochverfgbarkeit
Wie wir das ganze noch hoch-

www.fromdual.com

verfgbar ausgelegt?

14 / 23

Sensitive Daten

www.fromdual.com

Wie stellen wir sicher, dass sensitive Daten,


das Haus nicht verlassen?
Wie funktioniert MySQL Replikation?
Application

Master (RAM)

Disk

Hauptsitz

Slave (RAM)

binary log

Disk

relay log

Land X
15 / 23

Wer darf welche Daten sehen?

www.fromdual.com

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!


16 / 23

Lsung?

www.fromdual.com

Blackhole Storage Engine!

/dev/null

Application

Master (RAM)

Disk

Hauptsitz

kein
Filter!

binary log

Slave (RAM)

/dev/null

Hauptsitz

Filtern!

relay log

Slave (RAM)

Disk

relay log

Land X
17 / 23

MySQL Row Filterung?

Schema Filterung?

Tabellen Filterung?

www.fromdual.com

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 ...
18 / 23

MySQL Row Filterung?

MySQL kann das nicht.

Aber, Lego-Kiste auf...

www.fromdual.com

CREATE TRIGGER filter_row


BEFORE INSERT ON manufacturing_data
FOR EACH ROW
BEGIN
IF ( NEW.manufacture_plant != 'China' ) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT
=
, CLASS_ORIGIN
=
, SUBCLASS_ORIGIN
=
, CONSTRAINT_SCHEMA =
, CONSTRAINT_NAME
=
, SCHEMA_NAME
=
, TABLE_NAME
=
, COLUMN_NAME
=
, MYSQL_ERRNO
=
;
END IF;
END;

'Row was filtered out.'


'FromDual filter trigger'
'filter_row'
'erp'
'filer_row'
'erp'
'manufacturing_data'
''
1644

19 / 23

Nachtrgliche Forderungen

www.fromdual.com

Wie stellen wir sicher, dass geheime Daten


nicht nachtrglich eingefordert werden
knnen?

Es will da mitgucken/mithren!

20 / 23

Nachtrgliche Forderungen

Gar nicht ausliefern

Nur so wenig wie mglich

Asap wieder sauber lschen

www.fromdual.com

Application

Master (RAM)

Disk

Hauptsitz

kein
Filter!

binary log

Slave (RAM)

/dev/null

Hauptsitz

Filtern!

relay log

Slave (RAM)

Disk

relay log

Land X
21 / 23

www.fromdual.com

http://fromdual.com/controlling-worldwide-manufacturing-plants-with-mysql

Schulung: MySQL Operations


und Hochverfgbarkeitsarchitekturen
ca. 6 x im Jahr (Berlin und Essen)
Stand 308

22 / 23

Q&A

www.fromdual.com

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
23 / 23