Heim >
Datenbank >
MySQL-Tutorial >
MySQL-Optimierung – Detaillierte Erläuterung der Schritte zum Cluster-Building-Code (Bild)
MySQL-Optimierung – Detaillierte Erläuterung der Schritte zum Cluster-Building-Code (Bild)
黄舟
Freigeben: 2017-03-10 10:54:25
Original
1135 Leute haben es durchsucht
1 Übersicht
MySQL Cluster ist eine äußerst praktische, skalierbare, leistungsstarke und hochredundante Version von MySQL, die für verteilte Computerumgebungen geeignet ist Forschung und Entwicklung Die ursprüngliche Absicht des Designs besteht darin, die strengsten Anwendungsanforderungen in vielen Branchen zu erfüllen. Diese Anwendungen erfordern häufig eine Zuverlässigkeit des Datenbankbetriebs von 99,999 %. MySQL Cluster ermöglicht die Bereitstellung von „In-Memory“-Datenbankclustern in Shared-Nothing-Systemen. Durch die Shared-Nothing-Architektur kann das System kostengünstige Hardware verwenden und stellt keine besonderen Anforderungen an Software und Hardware. Da außerdem jede Komponente über einen eigenen Speicher und eine eigene Festplatte verfügt, gibt es keinen Single Point of Failure.
Tatsächlich integriert MySQL Cluster eine Speicher-Cluster-Speicher-Engine namens NDB in den Standard-MySQL-Server. Es besteht aus einer Reihe von Computern, auf denen jeweils ein oder mehrere Prozesse ausgeführt werden, zu denen ein MySQL-Server, ein Datenknoten, ein Verwaltungsserver und ein proprietäres Datenzugriffsprogramm gehören können.
MySQL-Cluster bietet die Möglichkeit, die NDB-Speicher-Engine mit einer Vielzahl von Failover- und Lastausgleichsoptionen zu konfigurieren. Am einfachsten ist dies jedoch auf der Speicher-Engine auf Cluster-Ebene. Das Folgende ist das MySQL-Clusterstrukturdiagramm:
MySQL besteht aus struktureller Sicht aus drei Arten von Knoten (Computern oder Prozessen). , nämlich:
Verwaltungsknoten: Wird verwendet, um Konfigurations-, Verwaltungs-, Vermittlungs- und andere Funktionen für andere Knoten im gesamten Cluster bereitzustellen. Theoretisch reicht es aus, Dienste über einen Server bereitzustellen.
Datenknoten: Der Kern des MySQL-Clusters, der Daten und Protokolle speichert und verschiedene Verwaltungsdienste für Daten bereitstellt. Wenn mehr als zwei Knoten vorhanden sind, kann die Hochverfügbarkeitsgarantie des Clusters erreicht werden. Wenn die Anzahl der DB-Knoten zunimmt, verlangsamt sich die Verarbeitungsgeschwindigkeit des Clusters.
SQL-Knoten (API): Wird für den Zugriff auf MySQL-Cluster-Daten und die Bereitstellung externer Anwendungsdienste verwendet. Durch das Hinzufügen von API-Knoten wird die Geschwindigkeit des gleichzeitigen Zugriffs und der Gesamtdurchsatz des gesamten Clusters verbessert. Der Knoten kann auf dem Webanwendungsserver, auf einem dedizierten Server oder auf demselben Server wie die Datenbank bereitgestellt werden.
2 NDB-Engine
MySQL Cluster verwendet eine dedizierte speicherbasierte Speicher-Engine – NDB-Engine. Der Vorteil davon ist, dass es schnell ist und keinen Festplatten-E/A-Engpass aufweist. Da es jedoch auf dem Speicher basiert, ist die Größe der Datenbank durch den Gesamtspeicher des Systems begrenzt. Wenn der MySQL-Server, auf dem NDB ausgeführt wird, über ausreichend Speicher verfügen muss, z. B. 4G, 8G oder sogar 16G. Die NDB-Engine ist verteilt und kann auf mehreren Servern konfiguriert werden, um Datenzuverlässigkeit und Skalierbarkeit zu erreichen. Theoretisch kann durch die Konfiguration von zwei NDB-Speicherknoten die Redundanz des gesamten Datenbankclusters erreicht und das Single-Point-of-Failure-Problem gelöst werden. .
2.1 Mängel
Basierend auf dem Speicher ist die Größe der Datenbank durch die Gesamtspeichergröße des Clusters begrenzt
Aufgrund des Speichers können Daten nach einem Stromausfall verloren gehen. Dies muss durch Tests überprüft werden.
Mehrere Knoten implementieren Kommunikation, Datensynchronisation, Abfrage und andere Vorgänge über das Netzwerk, sodass die Integrität von der Netzwerkgeschwindigkeit beeinflusst wird.
Daher ist die Geschwindigkeit auch relativ langsam
2.2 Vorteile
Mehrere Knoten können an verschiedenen geografischen Standorten verteilt werden, daher ist es auch eine Lösung zur Implementierung einer verteilten Datenbank.
Die Skalierbarkeit ist sehr gut und der Datenbankcluster kann durch Hinzufügen von Knoten erweitert werden.
Die Redundanz ist sehr gut. Es liegen vollständige Datenbankdaten auf mehreren Knoten vor, sodass Knotenausfallzeiten nicht zu Dienstunterbrechungen führen.
Die Kosten für die Implementierung von Hochverfügbarkeit sind relativ gering. Im Gegensatz zu herkömmlichen Hochverfügbarkeitslösungen, die gemeinsam genutzte Speichergeräte und dedizierte Software erfordern, kann NDB implementiert werden, solange genügend Speicher vorhanden ist.
2. Clusteraufbau
Ein einfachstes MySQL-Clustersystem wird als Root-Konto ausgeführt. Dieser MySQL-Cluster enthält einen Verwaltungsknoten, zwei Datenknoten und zwei SQL-Knoten. Die Namen und IPs der virtuellen Maschinen lauten wie folgt:
Verwaltungsknoten
mysql-mgm
192.168.124.141
Datenknoten1
mysql-ndbd-1
192.168.124.142
Datenknoten2
mysql-ndbd-2
192.168.124.143
SQLKnoten1
mysql-sql-1
192.168. 124.144
SQLKnoten2
mysql-sql-2
192.168.124.145
>
Bitte konfigurieren Sie die Konfigurationselemente hier jeweils auf den drei virtuellen Maschinen. 1. Installieren Sie die virtuelle Maschine
Das Betriebssystem der virtuellen Maschine installiert die x86_64-Version von CentOS 6.4, verwendet das NAT-Netzwerk und installiert auch VMware-Tools Die spezifische Installationsmethode finden Sie hier. Hier nicht näher erläutert.
2. MySQL-Cluster kopieren
Laden Sie die folgende Version von MySQL-Cluster herunter:
http://www.php.cn/Kopieren Sie das heruntergeladene komprimierte Paket in das Verzeichnis /root/Downloads der virtuellen Maschine und führen Sie dann den folgenden Befehl in der Shell aus:
cd /root/Downloads
tar -xvzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64 /usr/local/mysql
Nach dem Login kopieren
3. Schalten Sie die Sicherheitsrichtlinie aus
chkconfig --level 35 iptables off
Nach dem Login kopieren
Einschalten Deaktivieren Sie die iptables-Firewall (oder schalten Sie die Ports 1186 und 3306 der Firewall ein) und führen Sie den folgenden Befehl in der Shell aus:
gedit /etc/selinux/config
Nach dem Login kopieren
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Nach dem Login kopieren
Schalten Sie SELinux aus und führen Sie den folgenden Befehl in der Shell aus:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
gedit config.ini
Installieren Sie den Verwaltungsknoten, es ist keine mysqld-Binärdatei erforderlich. Nur das MySQL-Cluster-Serverprogramm (ndb_mgmd) und das Listening-Client-Programm (ndb_mgm) sind erforderlich. Führen Sie den folgenden Befehl in der Shell aus:
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
Nach dem Login kopieren
Nach dem Login kopieren
<🎜><🎜><🎜>4. SQL-Knoten konfigurieren (<🎜><🎜>192.168.124.144 <🎜><🎜>, 192.168.124.145) <🎜><🎜><🎜><🎜><🎜>1. MySQL-Gruppe und Benutzer hinzufügen <🎜><🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
shell> /etc/init.d/mysql.server stop
Shutting down MySQL... SUCCESS!
Nach dem Login kopieren
Nach dem Login kopieren
<🎜><🎜><🎜><🎜><🎜>< 🎜>2. Konfigurieren Sie die my.cnf-Konfigurationsdatei<🎜 ><🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
<🎝><🎜 ><🎜><🎜><🎜><🎜>Der Inhalt der Konfigurationsdatei my.cnf lautet wie folgt: <🎜>
<🎝><🎜><🎜><🎜><🎜><🎜><🎜>3. Erstellen Sie die Systemdatenbank <🎜> <🎜><🎜>Führen Sie den folgenden Befehl in der Shell aus: <🎜>
Das obige ist der detaillierte Inhalt vonMySQL-Optimierung – Detaillierte Erläuterung der Schritte zum Cluster-Building-Code (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn