www.fromdual.com1 / 31MySQL für Oracle DBAsDOAG Webinar 14. Juni 2013Oli SennhauserSenior MySQL Consultant, FromDual GmbHo...
www.fromdual.com2 / 31Über FromDual GmbH● FromDual bietet neutral und unabhängig:● Beratung für MySQL● Support für MySQL u...
www.fromdual.com3 / 31InhaltHA Solutions➢Read scale-out➢Replication set-up for HA➢Active/passive fail-over➢MySQL Cluster➢R...
www.fromdual.com4 / 31Einsatz von MySQL●Wo wird MySQL eingesetzt:● Facebook – 1 Mia User, 72 M QPS● Google – Adwords, Mia ...
www.fromdual.com5 / 31InstallationOracle: OUI (Oracle Universal Installer)● MySQL: Windows: InstallerC:Program filesmysqlm...
www.fromdual.com6 / 31MySQL Plattform● „Exotische“ Plattformen führen ausstatistischen Gründen eher zu Problemen!● 85.7% L...
www.fromdual.com7 / 31KonfigurationOracle: $ORACLE_HOME/dbs/init<SID>.ora●MySQL:● Windows:C:Program Filesmysqlmysql­server...
www.fromdual.com8 / 31Konfigurations-Parameter● my.cnf / my.ini● mysql> SHOW GLOBAL VARIABLES;● 5.1.69: 277● 5.5.31: 317● ...
www.fromdual.com9 / 31Starten / stoppenOracle: sqlplus / as sysdba STARTUP● MySQL Linux:● Alt: shell> /etc/init.d/mysql st...
www.fromdual.com10 / 31Tools● Tools:● sqlplus → mysql● srvmgrl → mysqladmin● MySQL Workbench● Admin● Query Browser● ER - D...
www.fromdual.com11 / 31Prozess-ArchitekturOracle: Multi-Prozess ModellShared MemoryPMON, SMON, RECO, DBW0, LGWR, ARC0, ......
www.fromdual.com12 / 31MySQL Thread Architekturmysql> SELECT thread_id, name AS thread_name, type, processlist_user AS use...
www.fromdual.com13 / 31Connections / Connectors● Verbindung● In MySQL billig: oft KEIN Connection-Pooling● 1 Verbindung = ...
www.fromdual.com14 / 31User und Schema● User● oli@localhost → Unix Socket● oli@127.0.0.1 → TCP Port● oli@% → TCP von übera...
www.fromdual.com15 / 31Storage EnginesmysqldApplication / ClientThreadCacheConnectionManagerUser Au-thenticationCommandDis...
www.fromdual.com16 / 31InnoDB (default SE >= 5.5.)● Transaktionen (ACID)● Isolation Level (repeatable-read vs read-committ...
www.fromdual.com17 / 31Logging● Error Log (~ alert_<SID>.log)● /var/log/mysql*● General Query Loggeneral_log = 1● Slow Que...
www.fromdual.com18 / 31Logisches BackupOracle: exp/imp (vor Datapump)● MySQL: mysqldump/mysql● Jede Row wird angelangt:● L...
www.fromdual.com19 / 31Physisches BackupOracle: rman, ALTER TABLESPACE ... BEGIN|END BACKUP;● MySQL:● Snapshot mit LVM, Bt...
www.fromdual.com20 / 31Binary Log~ Oracle Archive Logs● MySQL Binary-Log:● DDL + DML aller SE (nicht nur InnoDB)!● für:●Re...
www.fromdual.com21 / 31Point-in-Time-Recovery (PITR)Application ApplicationApplicationmysqldbinarylogwriterthreadbin-log.1...
www.fromdual.com22 / 31MySQL Replikation● MySQL Basis-Fuktionalität● Sehr einfach aufzusetzen (5 min)● Streaming-Replicati...
www.fromdual.com23 / 31...Master – Slave ReplikationApplicationMasterlog_bin = onserver_id = 42Slave● Wir brauchen:● Binar...
www.fromdual.com24 / 31High-Availability mit ReplikationApplicationMasterSlave BackupSlave ReportingrtwLoad balancerread o...
www.fromdual.com25 / 31RAC: Galera ClusterApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep ws...
www.fromdual.com26 / 31Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsr...
www.fromdual.com27 / 31Monitoring● OEM/DBC/Grid-Control/Cloud-Control● MySQL Enterprise Monitor (MEM) €€€● MySQL Performan...
www.fromdual.com28 / 31Performance Tuning● mysql> SHOW GLOBAL STATUS;● PERFORMANCE_SCHEMA● Slow Query Log● slow_query_log ...
www.fromdual.com29 / 31Stored ProgramsOracle: PL/SQL, Java● MySQL:● Stored Procedures● Stored Functions● User Defined Func...
www.fromdual.com30 / 31Volltext-SucheOracle: Kostenpflichtiges Modul?● MySQL: Standardmässig dabei!ALTER TABLE test ADD FU...
www.fromdual.com31 / 31Q & AFragen ?Diskussion?Wir haben Zeit für ein persönliches Gespräch...● FromDual bietet neutral un...
Upcoming SlideShare
Loading in...5
×

MySQL for Oracle DBAs

260

Published on

Some explanations for Oracle DBAs how MySQL works and what MySQL features relate to what Oracle Features...

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
260
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MySQL for Oracle DBAs

  1. 1. www.fromdual.com1 / 31MySQL für Oracle DBAsDOAG Webinar 14. Juni 2013Oli SennhauserSenior MySQL Consultant, FromDual GmbHoli.sennhauser@fromdual.com
  2. 2. www.fromdual.com2 / 31Über FromDual GmbH● FromDual bietet neutral und unabhängig:● Beratung für MySQL● Support für MySQL und Galera Cluster● Remote-DBA Dienstleistungen für MySQL● MySQL Schulungen● Oracle Silver Partner (OPN)● Mitglied der SOUG, DOAG, /ch/openwww.fromdual.com
  3. 3. www.fromdual.com3 / 31InhaltHA Solutions➢Read scale-out➢Replication set-up for HA➢Active/passive fail-over➢MySQL Cluster➢Replication Cluster➢Storage-Engine-ReplicationMySQL für Oracle DBAs➢Einsatz von MySQL➢Installation, Konfiguration, Starten/Stoppen➢Architektur, Storage Engines➢InnoDB➢Monitoring, Logging➢Backup, Restore, Point-in-Time-Recovery➢Replikation➢Hochverfügbarkeit➢RAC für MySQL
  4. 4. www.fromdual.com4 / 31Einsatz von MySQL●Wo wird MySQL eingesetzt:● Facebook – 1 Mia User, 72 M QPS● Google – Adwords, Mia Umsatz/Jahr(M→O→M→F1)● Wikipedia – z. Zt. #6 weltweit● BörseGo – Online Börsenhandel● Playboy – Drupal CMS● EMKA – ERP, 1000 MA● V-Zug – Hybris Webshop● Buch.de – #2 online Buchhändler in D● Kikxxl – Callcenter, 1000 MA● Integrics – VoIP Lösungen, 1000e Anschlüssen● RePower – zig 1000 Windmühlen
  5. 5. www.fromdual.com5 / 31InstallationOracle: OUI (Oracle Universal Installer)● MySQL: Windows: InstallerC:Program filesmysqlmysql­server­5.6C:Program filesmysqlmysql­server­5.6data● MySQL Linux:● Pakete: *.rpm, *.deb/usr//var/lib/mysql● Binary Tar-Ball: mysql­5.7.1­linux­x86_64.tar.gz● Quellen → Kompilieren: cmake; make; make install● MySQL Community vs. Enterprise, Drittanbieter
  6. 6. www.fromdual.com6 / 31MySQL Plattform● „Exotische“ Plattformen führen ausstatistischen Gründen eher zu Problemen!● 85.7% Linux● 10.5% Windows● 1.7% Solaris● 1.4% BSD● 0.7% Others
  7. 7. www.fromdual.com7 / 31KonfigurationOracle: $ORACLE_HOME/dbs/init<SID>.ora●MySQL:● Windows:C:Program Filesmysqlmysql­server­5.6my.ini● Linux:/etc/my.cnf, /etc/mysql/my.cnf, $basedir/my.cnf● !includedir /etc/mysql/conf.d/● ­­defaults­file, ­­defaults­extra­file
  8. 8. www.fromdual.com8 / 31Konfigurations-Parameter● my.cnf / my.ini● mysql> SHOW GLOBAL VARIABLES;● 5.1.69: 277● 5.5.31: 317● 5.6.11: 429● mysql> SET GLOBAL variable = value;● Kein Persistieren (spfile)
  9. 9. www.fromdual.com9 / 31Starten / stoppenOracle: sqlplus / as sysdba STARTUP● MySQL Linux:● Alt: shell> /etc/init.d/mysql start|stop|restart● Neu: shell> service mysql start|stop|restart● „von Hand“:● shell> bin/mysqld_safe &● shell> bin/mysqld &● shell> mysqladmin ­­user=root shutdown● MySQL Windows● Windows Service Utility● cmd> net start|stop|restart MySQL
  10. 10. www.fromdual.com10 / 31Tools● Tools:● sqlplus → mysql● srvmgrl → mysqladmin● MySQL Workbench● Admin● Query Browser● ER - Diagramme● Heidi SQL, phpMyAdmin
  11. 11. www.fromdual.com11 / 31Prozess-ArchitekturOracle: Multi-Prozess ModellShared MemoryPMON, SMON, RECO, DBW0, LGWR, ARC0, ...● MySQL: Multi-Thread Modellmysqld● Angel-Prozessmysqld_safe● Vordergrund- und Hintergrund-Threads:
  12. 12. www.fromdual.com12 / 31MySQL Thread Architekturmysql> SELECT thread_id, name AS thread_name, type, processlist_user AS userFROM performance_schema.threads;+-----------+----------------------------------------+------------+------+| thread_id | thread_name | type | user |+-----------+----------------------------------------+------------+------+| 1 | thread/sql/main | BACKGROUND | NULL || 2 | thread/innodb/io_ibuf_thread | BACKGROUND | NULL || 3 | thread/innodb/io_log_thread | BACKGROUND | NULL || 4 | thread/innodb/io_read_thread | BACKGROUND | NULL || 11 | thread/innodb/io_write_thread | BACKGROUND | NULL || 14 | thread/innodb/srv_error_monitor_thread | BACKGROUND | NULL || 15 | thread/innodb/srv_lock_timeout_thread | BACKGROUND | NULL || 16 | thread/innodb/srv_monitor_thread | BACKGROUND | NULL || 17 | thread/innodb/srv_master_thread | BACKGROUND | NULL || 18 | thread/innodb/srv_purge_thread | BACKGROUND | NULL || 19 | thread/innodb/page_cleaner_thread | BACKGROUND | NULL || 20 | thread/sql/signal_handler | BACKGROUND | NULL || 22 | thread/sql/one_connection | FOREGROUND | root || 28 | thread/sql/one_connection | FOREGROUND | oli |+-----------+----------------------------------------+------------+------+shell> ps -efL | egrep mysqld|PIDUID PID PPID LWP C NLWP STIME TTY TIME CMDmysql 3248 1 3248 0 1 16:28 pts/0 00:00:00 /bin/sh bin/mysqld_safemysql 3925 3248 3925 0 23 16:28 pts/0 00:00:00 bin/mysqld...mysql 3925 3248 4088 0 23 16:31 pts/0 00:00:00 bin/mysqld
  13. 13. www.fromdual.com13 / 31Connections / Connectors● Verbindung● In MySQL billig: oft KEIN Connection-Pooling● 1 Verbindung = 1 Thread → 1 Query → 1 Core● Thread Pool (1000e von Verbindungen)● Connectors:● JDBC/ODBC● PHP, Perl, Python, Ruby, .NET
  14. 14. www.fromdual.com14 / 31User und Schema● User● oli@localhost → Unix Socket● oli@127.0.0.1 → TCP Port● oli@% → TCP von überall her● Privilegien● Global: *.*, pro Schema , pro Tabelle, pro Spalte● Schema (= Database)● Unabhängig vom User (→ gehört System)
  15. 15. www.fromdual.com15 / 31Storage EnginesmysqldApplication / ClientThreadCacheConnectionManagerUser Au-thenticationCommandDispatcherLoggingQuery CacheModuleQueryCacheParserOptimizerAccess ControlTable ManagerTable OpenCache (.frm, fh)Table DefinitionCache (tbl def.)Handler InterfaceMyISAM Memory NDB TokutekInnoDB ...AriaBright-houseFederated-X
  16. 16. www.fromdual.com16 / 31InnoDB (default SE >= 5.5.)● Transaktionen (ACID)● Isolation Level (repeatable-read vs read-committed)● Tabelspaces● System TS = ibdata1● Table TS (innodb_files_per_table = 1)● InnoDB: PK geclusterte Tabellen → IOT● InnoDB Buffer Pool (16k Block Buffer)● REDO Logs: ib_logfile? (5M default)
  17. 17. www.fromdual.com17 / 31Logging● Error Log (~ alert_<SID>.log)● /var/log/mysql*● General Query Loggeneral_log = 1● Slow Query Log● slow_query_log = 1● Binary Log (~ archive.log)● log_bin = 1 / binary­log● DML + DDL aller SE● (Transaktions-Log, ib_logfile?, SE abhängig) (~ redo.log)● DML InnoDB
  18. 18. www.fromdual.com18 / 31Logisches BackupOracle: exp/imp (vor Datapump)● MySQL: mysqldump/mysql● Jede Row wird angelangt:● Langsam● Restore SEHR langsam!mysql> mysqldump ­­all­databases ­­single­transaction ­­master­data=1 > full_dump.sqlmysql> mysql < full_dump.sql
  19. 19. www.fromdual.com19 / 31Physisches BackupOracle: rman, ALTER TABLESPACE ... BEGIN|END BACKUP;● MySQL:● Snapshot mit LVM, BtreeFS oder ZFS● mylvmbackup● Xtrabackup, MySQL Enterprise Backup (MEB)shell> innobackupex /data/backupsshell> innobackupex ­­apply­log /data/backups/2012­11­13/shell> innobackupex ­­copy­back /data/backups/2012­11­13/shell> chown ­R mysql:mysql /var/lib/mysql● Links:http://www.lenzg.net/mylvmbackup/● http://www.percona.com/doc/percona-xtrabackup
  20. 20. www.fromdual.com20 / 31Binary Log~ Oracle Archive Logs● MySQL Binary-Log:● DDL + DML aller SE (nicht nur InnoDB)!● für:●Replikation● Point-in-Time-Recovery (PiTR)● 3 Varianten:● Statement Based Replication (SBR) <= 5.0● Row Based Replication (RBR) ab 5.1● Transaction Based Replication (TBR) ab 5.6
  21. 21. www.fromdual.com21 / 31Point-in-Time-Recovery (PITR)Application ApplicationApplicationmysqldbinarylogwriterthreadbin-log.1 bin-log.2 bin-log.n...log_bin = ontfullbackuppos/time?
  22. 22. www.fromdual.com22 / 31MySQL Replikation● MySQL Basis-Fuktionalität● Sehr einfach aufzusetzen (5 min)● Streaming-Replication (kein Log Shipping)● Basiert auf MySQL Binary Logs● Braucht:● Unique server_id (Master und Slave) (restart)● Binary Loggin auf Master einschalten (restart)● Replikations-User● Konsistentes Backup + Binary Log Position
  23. 23. www.fromdual.com23 / 31...Master – Slave ReplikationApplicationMasterlog_bin = onserver_id = 42Slave● Wir brauchen:● Binary Log● Server Id● User für die Replikation (auf dem Master)● Konsistentes Backup MIT Binary Log Positionbin-log.m bin-log.n relay-log.m relay-log.n...IO_threadSQL_thread
  24. 24. www.fromdual.com24 / 31High-Availability mit ReplikationApplicationMasterSlave BackupSlave ReportingrtwLoad balancerread onlySlave 1Slave 2Slave 3 ...async!Slave MVIP
  25. 25. www.fromdual.com25 / 31RAC: Galera ClusterApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep wsreprwrwOracle Real Application Cluster (RAC)● MySQL: Galera Cluster● Shared-Nothing Architektur
  26. 26. www.fromdual.com26 / 31Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep wsrep● Hardware-Ausfall● Wartungsarbeiten● HW/OS/DB Upgrade● 5x9 HA: 99.999%
  27. 27. www.fromdual.com27 / 31Monitoring● OEM/DBC/Grid-Control/Cloud-Control● MySQL Enterprise Monitor (MEM) €€€● MySQL Performance Monitor (mpm)● mysql> SHOW GLOBAL STATUS;● Nagios / Icinga● Links:http://www.mysql.com/products/enterprise/monitor.htmlhttp://www.fromdual.com/mysql-performance-monitorhttp://www.fromdual.com/download#nagios
  28. 28. www.fromdual.com28 / 31Performance Tuning● mysql> SHOW GLOBAL STATUS;● PERFORMANCE_SCHEMA● Slow Query Log● slow_query_log = 1● long_query_time = 0.5● shell> mysqldumpslow ­s t slow.log > profile● Query Execution Plan:mysql> EXPLAIN SELECT * FROM test;
  29. 29. www.fromdual.com29 / 31Stored ProgramsOracle: PL/SQL, Java● MySQL:● Stored Procedures● Stored Functions● User Defined Functions (UDF): C/C++● Plugin: C/C++
  30. 30. www.fromdual.com30 / 31Volltext-SucheOracle: Kostenpflichtiges Modul?● MySQL: Standardmässig dabei!ALTER TABLE test ADD FULLTEXT INDEX (data);SELECT * FROM test WHERE MATCH data AGAINST(DBA);+----+----------------------------------------+| id | data |+----+----------------------------------------+| 1 | Wir suchen zur Zeit einen Support DBA! |+----+----------------------------------------+
  31. 31. www.fromdual.com31 / 31Q & AFragen ?Diskussion?Wir haben Zeit für ein persönliches Gespräch...● FromDual bietet neutral und unabhängig:● Beratung● Remote-DBA● Support für MySQL, Galera, Percona Server und MariaDB● Schulungwww.fromdual.com/presentations
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×