Heim > Datenbank > MySQL-Tutorial > MySQL – Cluster MySQL-Cluster

MySQL – Cluster MySQL-Cluster

Guanhui
Freigeben: 2020-05-28 11:48:55
nach vorne
2545 Leute haben es durchsucht

MySQL – Cluster MySQL-Cluster

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节点管理命令到本地,方便使用
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Speichern und beenden!

chown  mysql.mysql  /var/lib/mysql-cluster/config .ini
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:oschina.net
Erklärung dieser 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage