Seminarunterlage Version: 3.02 Version 3.02 vom 23. Oktober 2014
Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Marlene-Dietrich-Str. 5 D-89231 Neu-Ulm Tel.: (+49) 07 31 / 9 85 88 550 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: training@ordix.de Seite 2 Version: 3.02
Inhaltsverzeichnis 1 Einleitung... 7 1.1 Überblick... 8 1.2 Entwicklungsgeschichte... 10 1.3 Bezugsquellen... 12 1.4 Dokumentationen... 13 1.5 Lizenzmodell... 14 2 Installation... 16 2.1 Installation unter Windows... 17 2.2 Installation unter UNIX... 18 2.3 CMake... 19 2.3.1 Installation mit CMake... 20 2.3.2 CMake-Befehle... 21 2.4 Voraussetzung zur Quellinstallation... 22 2.4.1 Vorbereitung der Quellen... 23 2.4.2 Benutzer und Gruppe anlegen... 24 2.5 Konfiguration der Quellen... 26 2.6 Übersetzung und Installation... 27 2.7 Anlegen der Systemdatenbanken... 28 2.8 Berechtigungen anpassen... 29 2.9 Start des Servers... 30 2.10 Skriptbasiertes Starten / Stoppen des Servers... 31 2.11 Zusammenfassung der Installation... 33 2.12 Log-Dateien... 34 2.12.1 Fehler Log-Datei... 34 2.12.2 Allgemeine Anfragen-Log-Datei... 35 2.12.3 Binäre Update-Log-Datei... 36 2.12.4 Log-Datei für langsame Anfragen... 37 3 Konfiguration des Servers... 38 3.1 Default-Einstellungen... 39 3.2 Konfigurationsänderung... 40 3.3 Die Konfigurationsdatei... 41 3.4 Zusäzliche Konfigurationsdateien... 42 3.5 Inhalt der Konfigurationsdatei... 43 4 Schnelleinstieg... 45 4.1 Verbindungsaufbau... 46 4.2 Der Client... 48 4.3 Arbeiten mit der Datenbank... 50 4.4 Datenbank verwalten... 51 4.5 Batchbetrieb... 52 4.6 Serverinformationen... 54 4.7 Systemdatenbanken... 55 5 Storage Engines... 56 5.1 Überblick... 57 5.2 InnoDB... 60 5.2.1 Beispiel für InnoDB... 65 5.3 MyISAM... 66 5.3.1 Beispiel für MyISAM... 67 5.4 Federated... 68 5.4.1 Beispiel für Federated... 69 5.5 Archive... 72 5.5.1 Beispiel für Archive... 73 6 User-Verwaltung... 74 Version: 3.02 Seite 3
6.1 Überblick... 75 6.2 Anlegen von Usern... 76 6.3 Berechtigungsebenen... 77 6.4 Berechtigungen... 78 6.5 Privilegien... 79 7 Multi-Server-Betrieb... 81 7.1 Was ist ein Multi-Server-Betrieb?... 82 7.2 Voraussetzung... 83 7.3 mysqld_multi... 84 7.4 Konfigurationsbeispiel... 85 7.5 Starten und Stoppen der Instanzen... 86 8 Backup und Recovery... 87 8.1 Backup-Konzepte... 88 8.2 Offline Backup... 89 8.3 Online Backup... 90 8.4 mysqldump... 91 8.5 Inkrementelles Backup / Point-in-time Recovery... 93 8.6 Backup mit LVM... 94 8.7 Umgang mit LVM... 95 8.8 MySQL Enterprise Backup... 97 8.9 Funktionsumfang - MySQL Enterprise Backup... 98 8.10 Beispiel - MySQL Enterprise Backup... 100 9 Replikation... 102 9.1 Nutzen einer Replikation?... 103 9.2 Replikationsmechanismus... 104 9.3 Konfiguration des Masters... 105 9.4 Konfiguration des Slaves... 107 9.5 Replikationskommandos... 110 9.6 Replikationsvariablen... 114 9.7 Log-Format... 115 9.8 Master-Wechsel... 116 9.9 Statusinformationen auf dem Master... 117 9.10 Asynchrone Replikation... 118 9.11 Semi-synchrone Replikation... 119 9.12 Installation und Monitoring der semi-synchronen Replikation... 120 9.13 Replikationsdelay... 121 9.14 Multi Threaded Slaves... 123 9.15 Multi Threaded Slaves... 124 9.16 Globale Identität von Transaktion... 125 10 Tuning und Performance... 126 10.1 MySQL-Kennzahlen... 127 10.1.1 InnoDB Buffer... 127 10.1.2 MyISAM Buffer... 129 10.1.3 TMP Tables... 131 10.1.4 Full Table Scans (FTS)... 133 10.1.5 Logging... 134 10.1.6 Problematische Statements finden... 135 10.1.7 Ausführungspläne erstellen... 136 10.1.8 Der Query Cache... 137 10.2 Performanceschema... 139 10.3 MySQL-Partitionierung... 142 10.3.1 Range-Partitionierung... 143 10.3.2 List-Partitionierung... 144 10.3.3 Hash-Partitionierung... 145 10.3.4 Key-Partitionierung... 146 Seite 4 Version: 3.02
10.4 Benchmarking mit super-smack... 147 10.5 Session-Profiling... 148 11 Funktionen, Stored Procedures, Trigger und Events... 151 11.1 Was ist eine Funktion?... 152 11.2 Beispiel für eine Funktion... 153 11.3 Was ist eine Stored Procedure?... 156 11.3.1 Beispiel für eine Stored Procedure... 157 11.4 Was ist ein Trigger?... 159 11.4.1 Beispiel für einen Trigger... 160 11.5 Was ist ein Event?... 161 11.5.1 Beispiel für ein Event... 163 12 Tools... 165 12.1 MySQL Enterprise Monitor... 166 12.1.1 Bestandteile - MySQL Enterprise Monitor... 167 12.1.2 Überblick MySQL Enterprise Monitor... 168 12.1.3 Aufbau MySQL Enterprise Monitor... 169 12.1.4 Settings MySQL Enterprise Monitor... 170 12.2 MySQL GUI Tools... 172 12.2.1 MySQL Workbench... 173 12.2.2 SQL Development - MySQL Workbench... 174 12.2.3 Data Modeling - MySQL Workbench... 175 12.2.4 Server Administration - MySQL Workbench... 176 12.3 TOAD for MySQL... 177 12.3.1 Definition... 178 12.3.2 Übersicht... 179 12.3.3 Installation... 180 12.3.4 Failover Beispiel... 182 12.3.5 Load Balancing - Beispiel... 183 13 Hochverfügbarkeit... 184 13.1 HV - Replikation... 185 13.1.1 HV - Replikation - Topologie-Beispiele... 186 13.1.2 HV - Replikation - Scale Out... 187 13.1.3 HV - Replikation - Failover... 188 13.2 HV - Linux Heartbeat und Replikation... 190 13.2.1 HV - Linux Heartbeat und Replikation - Architektur... 191 13.2.2 HV - Linux Heartbeat und Replikation - Failover... 192 13.2.3 HV - Linux Heartbeat, Pacemaker und DRBD... 193 13.2.4 HV - Linux Heartbeat und Replikation... 194 13.2.5 HV - Linux Heartbeat und Replikation - Failover... 195 13.3 HV - MySQL Cluster - Architektur... 196 13.3.1 HV - MySQL Cluster - Failover... 198 13.3.2 HV - MySQL Cluster - Failover (3.1)... 200 13.3.3 HV - MySQL Cluster - Failover (3.2)... 201 13.3.4 HV - MySQL Cluster - Failover (3.3)... 202 13.4 HV - MySQL Cluster und MySQL-Replikation... 203 13.4.1 HV - MySQL Cluster und MySQL-Replikation - Überblick... 204 13.5 HV - Galera... 205 13.5.1 HV - Galera - Architektur... 206 14 Übungen... 207 14.1 Aufgabe 1 Installation von MySQL... 208 14.2 Aufgabe 2 - Aufbau einer Datenbank... 210 14.3 Aufgabe 2.2 - Erstellungsskript... 213 14.4 Aufgabe 2.3 - Tabellenbeziehungen... 215 14.5 Aufgabe 3 - Multi-Server-Betrieb... 216 14.6 Aufgabe 4 - Backup und Recovery... 218 14.7 Aufgabe 5 - Aufbau einer Replikation... 221 Version: 3.02 Seite 5
14.8 Aufgabe 6 - Performance & Partitionieren... 224 Seite 6 Version: 3.02