MySQL Architekturen für Oracle DBA's DOAG Konferenz, Nürnberg 16. November 2010 Oliver Sennhauser Senior MySQL Consultant, FromDual [email protected] http://www.fromdual.com www.fromdual.com 1 Inhalt MySQL Architekturen für Oracle DBA's Der LAMP Stack ➢ Geschichte von MySQL ➢ Open Source ➢ Branches und Forks ➢ Wechsel von Oracle? ➢ MySQL Architektur ➢ Pluggable Storage Engines ➢ Unterschiede zwischen Oracle und MySQL ➢ Scale-Up vs. Scale-Out ➢ HA Lösungen ➢ Architekturen aus der Praxis ➢ www.fromdual.com 2 Der LAMP Stack Wir sind das Web! Wer steht dahinter? Alternativen Zend Technologies Perl, Java, Python, Ruby MySQL MySQL/Oracle PostgreSQL, others Apache Apache Software Foundation Lighty (lighttpd), IIS Linux Linux Foundation Windows, Solaris, BSD, others PHP www.fromdual.com 3 Geschichte von MySQL 1995: Projektstart durch Monty Widenius, David Axmark und Allan Larsson Oracle versucht MySQL zu kaufen Okt 5.0 GA 2. Sem. 5.5 GA (Prognose) Okt Oracle kauft Innobase OY InnoDB Friday Ca. July 5.6 (nicht publik) IPO wird für 2008 angekündigt Mar 4.0 GA ... 2000 01 02 03 Okt 4.1 GA Jun GPL 04 2005 06 07 08 09 2010 Jan Sun kauft MySQL für USD 1000 Mio Jan 3.23 GA Nov 5.1 GA Dez 5.5 Apr Oracle kauf Sun für USD 7400 Mio www.fromdual.com 4 Open Source ● ● ● ● Grundsätzliches: ● Code ist verfügbar und einsehbar (Transparenz) ● Code darf abgeändert, angepasst oder anderweitig verwendet werden ● JeKaMi (Jeder Kann Mitmachen): Communities Vorteile ● „kein“ Vendor Lock-in ● Geringere Kosten ● Mehr Flexibilität ● Bessere Qualität ● Grössere Zuverlässigkeit Nachteile ● Es wird nicht immer alles auf dem goldenen Tablett serviert: „read the source“! ● Konfliktpotential wenn Kommerz ins Spiel kommt Für mich persönlich: Wissenstransfer und Wissensfreiheit www.fromdual.com 5 Branches und Forks Google patches Okt OurDelta MySQL Branch Jul ProvenScaling MySQL Branch (†) Mai MariaDB/Aria MySQL/MyISAM Branch Fork ? MySQL 2008 2009 2010 Dez XtraDB InnoDB Branch / Percona Build / Percona Server Jul Drizzle MySQL Fork www.fromdual.com 6 Wechsel von Oracle? Oracle MySQL Es braucht etwas Umgewöhnungszeit (3-6 M?)! www.fromdual.com 7 MySQL Architektur Application / Client Thread Cache Logging Query Cache Connection Manager mysqld Parser Optimizer User Authentication MySQL ist eine multi-Thread und NICHT eine multi-Prozess Applikation! Access Control Command Dispatcher Query Cache Module Table Manager Table Open Cache (.frm, fh) Table Definition Cache (tbl def.) Handler Interface MyISAM InnoDB Memory NDB PBXT Aria www.fromdual.com XtraDB Federated-X ... 8 Pluggable Storage Engines Konventionelles (R)DBMS = Monolith MYSQL SE Handler Interface ISAM MyISAM BDB ... built-in plug-in MYSQL pluggable SE Handler Interface InnoDB MyISAM PBXT www.fromdual.com NDB ... 9 Die wichtigsten Storage Engines ● MyISAM/Aria ● InnoDB/XtraDB/PBXT (Transaktionen) ● MEMORY ● NDB (MySQL Cluster) ● Federated-X (~ Oracle DB-Link) ● CSV, Archive, Blackhole ● Infobright/InfiniDB (Columnar SE) ● Sphinx-SE ● Spider, etc. www.fromdual.com 10 Weitere Unterschiede zwischen Oracle und MySQL ● Transaktionen/Locking ist SE-abhängig → Welche Eigenschaften sind wo untergebracht? ● Einige Buffers/Caches sind SE-abhängig andere nicht → Separat konfigurieren, je nach Bedarf ● ● Connections in Oracle sind teuer, in MySQL billig Oracle Multi-Prozess Modell, MySQL MultiThread Modell www.fromdual.com 11 Weitere Unterschiede zwischen Oracle und MySQL ● MySQL hat verschiedene Logs: ● Error log (= alert.log) ● Binary log (~ archive log) ● ● Transaction Log (~ REDO log, aber binary log != transaction log) General Query log (Oracle ?) ● Schema in Orcl: User + Objekte ● Backup in MySQL kann man falsch machen. ● Oracle: Scale-up, MySQL: Scale-out www.fromdual.com 12 Scale-Up vs. Scale-Out Scale-Up Kosten ● MySQL Design ● Physikalische Flaschenhälse ● „Relaxation of Constraints“ ● Scale-Out www.fromdual.com 13 Der MySQL Scale-Out Ansatz Application ro rtw Master Slave Reporting Slave Backup Slave 1 Slave 2 Slave 3 ... Load balancer www.fromdual.com 14 Aktiv/passiv fail-over mit SAN App App App VIP M' M SAN Slave1 Slave2 Slave3 Load balancing (LB) www.fromdual.com 15 Aktiv/passiv fail-over mit SAN ● SPOF! App App App VIP M' !!! Slave1 M SAN Slave2 Slave3 Load balancing (LB) www.fromdual.com 16 Aktiv/passiv fail-over mit DRBD App App App VIP M' M DRBD Slave1 Slave2 Slave3 Load balancing (LB) www.fromdual.com 17 Activ/passiv fail-over mit DRBD App App App VIP M' M DRBD Slave1 Slave2 Slave3 Load balancing (LB) www.fromdual.com 18 MySQL Cluster Application Application NDB-API NDB-API Application Application Application Load balancer SQL Node 1 SQL Node 2 Mgm Node 1 SQL Node 3 ... Mgm Node 2 Data Node 1 Data Node 2 Sw. Sw. Data Node 3 Data Node 4 www.fromdual.com 19 Laser-Schweissgerät aus der Automobilindustrie www.fromdual.com 20 Daten sammeln der Lasergeräte www.fromdual.com 21 Messen von Medienkonsum www.fromdual.com 22 Car-Sharing Plattform www.fromdual.com 23 Solarzellenproduktion www.fromdual.com 24 Solarzellenproduktion www.fromdual.com 25 Online Börsenplattform www.fromdual.com 26 Fragen und Antworten ? Sonst: Slides: www.fromdual.com oder [email protected] www.fromdual.com 27