MySQL-Cluster MySQL-Cluster
Grundkonzept:
„NDB“ ist ein „ „ „In-Memory“-Speicher-Engine, die sich durch hohe Verfügbarkeit und gute Datenkonsistenz auszeichnet.
MySQL-Cluster kann die NDB-Speicher-Engine mit einer Vielzahl von Failover- und Lastausgleichsoptionen konfigurieren, aber am einfachsten ist dies auf der Speicher-Engine auf Cluster-Ebene zu tun. Die NDB-Speicher-Engine von MySQL Cluster enthält einen vollständigen Datensatz und ist nur von anderen Daten innerhalb des Clusters selbst abhängig.
Verwaltungsknoten (MGM): Die Rolle dieses Knotentyps besteht darin, andere Knoten im MySQL-Cluster zu verwalten, z. B. Konfigurationsdaten bereitzustellen, Knoten zu starten und zu stoppen, Sicherungen auszuführen usw. Da diese Knoten die Konfiguration anderer Knoten verwalten, sollten sie vor anderen Knoten gestartet werden. Der MGM-Knoten wird mit dem Befehl „ndb_mgmd“ gestartet.
Datenknoten: Dieser Knotentyp wird zum Speichern von Clusterdaten verwendet. Die Anzahl der Datenknoten hängt von der Anzahl der Replikate ab, die ein Vielfaches der Fragmente ist. Bei zwei Replikaten mit jeweils zwei Fragmenten gibt es beispielsweise 4 Datenknoten. Es ist jedoch nicht erforderlich, mehrere Kopien einzurichten. Datenknoten werden mit dem Befehl „ndbd“ gestartet.
SQL-Knoten: Dies ist der Knoten, der für den Zugriff auf Clusterdaten verwendet wird. Für MySQL Cluster ist der Clientknoten ein herkömmlicher MySQL-Server, der die NDB Cluster-Speicher-Engine verwendet. Normalerweise wird der SQL-Knoten mit dem Befehl „mysqld -ndbcluster“ oder mit „mysqld“ gestartet, nachdem „ndbcluster“ zu „my.cnf“ hinzugefügt wurde.
Der Verwaltungsserver (MGM-Knoten) ist für die Verwaltung von Cluster-Konfigurationsdateien und Cluster-Protokollen verantwortlich. Jeder Knoten im Cluster ruft Konfigurationsdaten vom Verwaltungsserver ab und fordert eine Möglichkeit an, festzustellen, wo sich der Verwaltungsserver befindet. Wenn innerhalb eines Datenknotens neue Ereignisse auftreten, übermittelt der Knoten Informationen über solche Ereignisse an den Verwaltungsserver und schreibt diese Informationen dann in das Cluster-Protokoll.
Cluster-Konfigurationsübersicht:
Installierte Version: MySQL-Cluster 7.3.2
Betriebssystem: Centos6.3 (X64)
Softwarename: MySQL- Cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (allgemeine Version)
Verwaltungsknoten-IP: 192.168.0.202
Datenknoten-SQL-Knoten-IP: 192.168 .0.203
Datenknoten-SQL-Knoten-IP: 192.168.0.204
Abhängigkeitspaket installieren: yum install -y glibc perl libaio-devel
x32-Bit-System muss installiert werden die Kompatibilitätsbibliotheksgruppe: yum groupinstall „Kompatibilitätsbibliotheken“
1. Installationskonfiguration des Verwaltungsknotens
1. Installieren Sie mysql-cluster
groupadd mysql useradd -g mysql -s /sbin/nologin mysql tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster chown -R root.mysql /usr/local/mysql/ chown -R mysql.mysql /usr/local/mysql/data/ /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp -rf /usr/local/mysql/bin/ndb_mgm * /usr/local/bin/ #复制ndb节点管理命令到本地,方便使用
2. Ändern Sie die MySQL-Master-Konfigurationsdatei
vi /etc/my .cnf [MYSQLD] user = mysql socket = /tmp/mysql .sock basedir = /usr/local/mysql #安装目录 datadir = /usr/local/mysql/data #数据库存放目录 character-sets-server=UTF8 ndbcluster #运行NDB存储引擎 ndb-connectstring=192.168.0.202 lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的 [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP
3. Erstellen Sie die MySQL-Cluster-Konfigurationsdatei
mkdir /var/lib/mysql-cluster vi /var/lib/mysql-cluster/config .ini [ndbd default] NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4 DataMemory=256M #分配的数据内存大小,根据本机服务器内存适量来分配 IndexMemory=256M #设定用于存放索引(非主键)数据的内存段大小 #一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。 [ndb_mgmd] nodeid=1 hostname =192.168.0.202 datadir= /var/lib/mysql-cluster/ [ndbd] nodeid=2 hostname =192.168.0.203 datadir= /usr/local/mysql/data [ndbd] nodeid=3 hostname =192.168.0.204 datadir= /usr/local/mysql/data [mysqld] nodeid=4 hostname =192.168.0.203 [mysqld] nodeid=5 hostname =192.168.0.204
Speichern und beenden!
chown mysql.mysql /var/lib/mysql-cluster/config .ini
Die beiden Datenknoten und SQL-Knoten haben die gleiche Konfiguration
1. MySQL-Cluster installieren
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql groupadd mysql useradd -g mysql -s /sbin/nologin mysql chown -R root.mysql /usr/local/mysql chown -R mysql.mysql /usr/local/mysql/data /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld cp /usr/local/mysql/support-files/medium .cnf /etc/my .cnf chmod +x /etc/init .d /mysqld
2 Konfigurationsdatei
vi /etc/my .cnf [MYSQLD] user=mysql character_set_server=utf8 ndbcluster ndb-connectstring=192.168.0.202 default-storage-engine=ndbcluster #设置默认是NDB存储引擎 datadir= /usr/local/mysql/data basedir= /usr/local/mysql [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #mysql cluster 管理节点IP
3. Test (schalten Sie zuerst die Firewall (IPTABLES) und Selinux der drei Server aus)
1. Starten Sie den Verwaltungsknoten
ndb_mgmd -f /var/lib/mysql-cluster/config .ini --initial netstat -tuplna | grep 1186 #默认连接端口1186,启动成功 tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369 /ndb_mgmd #--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。
Wenn beim Start ein Fehler auftritt: Löschen Sie einfach alle in config.ini festgelegten Knoten-IDs!
2. Starten Sie zwei Datenknoten und SQL-Knoten
Datenknoten: /usr/local/mysql/bin/ndbd --initial
SQL-Knoten: bin/mysqld_safe - -user=mysql & or service mysqld start
3. Überprüfen Sie den Clusterstatus
ndb_mgm -e show #Zeigen Sie den Verwaltungsknoten und den Datenknoten an, die Konfiguration ist erfolgreich
4. Erstellen Sie eine Datenbank, um die Synchronisierung zu überprüfen
mysql -u root -p
Mysql>Datenbanktest erstellen ;
Mysql>Test verwenden ;
Mysql>create table abc (id int) engine=ndbcluster; #Geben Sie die Engine der Datenbanktabelle als NDB an, sonst schlägt die Synchronisierung fehl
Mysql>In abc()-Werte einfügen (1);
Mysql> select * from abc;
#Überprüfen Sie zu diesem Zeitpunkt, ob die beiden Daten konsistent sind. Wenn sie konsistent sind, war der Cluster erfolgreich!
Hinweise:
1. Stellen Sie beim Erstellen einer Tabelle sicher, dass Sie ENGINE=NDB oder ENGINE=NDBCLUSTER verwenden, um die NDB-Cluster-Speicher-Engine anzugeben, oder verwenden Sie die Option ALTER TABLE, um den Speicher zu ändern Motor des Tisches.
2. Die NDB-Tabelle muss einen Primärschlüssel haben, daher muss der Primärschlüssel beim Erstellen der Tabelle definiert werden, andernfalls generiert die NDB-Speicher-Engine automatisch einen impliziten Primärschlüssel.
3. Die Benutzerberechtigungstabelle des SQL-Knotens wird weiterhin mit der MYISAM-Speicher-Engine gespeichert, sodass der in einem SQL-Knoten erstellte MySql-Benutzer nur dann auf diesen Knoten zugreifen kann, wenn Sie denselben Benutzer verwenden möchten Bei anderen SQL-Knoten müssen Sie Benutzer zum entsprechenden SQL-Knoten hinzufügen.
4. Verwaltungs- und Wartungsbefehle
Herunterfahren des MySQL-Clusters: ndb_mgm -e Shutdown
Starten Sie den MySQL-Cluster neu: ndb_mgmd -f /var /lib/ mysql-cluster/config.ini
Datenknoten neu starten:/usr/local/mysql/bin/ndbd
SQL-Knoten starten:/usr/local/mysql/bin/mysqld_safe --user =mysql & or service mysqld restart
Mysql-Status anzeigen: ndb_mgm -e show
Startsequenz:
Datenknoten-> SQL Knoten
Abfolge schließen:
SQL-Knoten-> Datenknoten-> Verwaltungsknoten
Empfohlenes Tutorial: „MySQL-Tutorial“
Das obige ist der detaillierte Inhalt vonMySQL – Cluster MySQL-Cluster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!