Maison > Article > base de données > MySQL-ClusterCluster MySQL
MySQL Cluster MySQL Cluster
Concept de base :
"NDB" est un " " Moteur de stockage "In-Memory", qui présente les caractéristiques d'une haute disponibilité et d'une bonne cohérence des données.
Le cluster MySQL peut configurer le moteur de stockage NDB avec une variété d'options de basculement et d'équilibrage de charge, mais il est plus simple de le faire sur le moteur de stockage au niveau du cluster. Le moteur de stockage NDB du cluster MySQL contient un ensemble de données complet et dépend uniquement des autres données du cluster lui-même.
Nœud de gestion (MGM) : le rôle de ce type de nœud est de gérer d'autres nœuds dans le cluster MySQL, comme fournir des données de configuration, démarrer et arrêter des nœuds, exécuter des sauvegardes, etc. Étant donné que ces nœuds gèrent la configuration des autres nœuds, ils doivent être démarrés avant les autres nœuds. Le nœud MGM est démarré avec la commande "ndb_mgmd".
Nœud de données : ce type de nœud est utilisé pour sauvegarder les données du cluster. Le nombre de nœuds de données est lié au nombre de répliques, qui est un multiple des fragments. Par exemple, avec deux répliques, chacune contenant deux fragments, il existe 4 nœuds de données. Il n’est cependant pas nécessaire de configurer plusieurs copies. Les nœuds de données sont démarrés avec la commande "ndbd".
Nœud SQL : Il s'agit du nœud utilisé pour accéder aux données du cluster. Pour MySQL Cluster, le nœud client est un serveur MySQL traditionnel utilisant le moteur de stockage NDB Cluster. Habituellement, le nœud SQL est démarré à l'aide de la commande "mysqld -ndbcluster" ou à l'aide de "mysqld" après avoir ajouté "ndbcluster" à "my.cnf".
Le serveur de gestion (nœud MGM) est responsable de la gestion des fichiers de configuration du cluster et des journaux du cluster. Chaque nœud du cluster récupère les données de configuration du serveur de gestion et demande un moyen de déterminer l'emplacement du serveur de gestion. Lorsque de nouveaux événements se produisent au sein d'un nœud de données, le nœud transmet des informations sur ces événements au serveur de gestion, puis écrit ces informations dans le journal du cluster.
Aperçu de la configuration du cluster :
Version installée : cluster mysql 7.3.2
Système d'exploitation : centos6.3 (X64)
Nom du logiciel : mysql- cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (version générale)
IP du nœud de gestion : 192.168.0.202
IP du nœud de données-nœud SQL : 192.168 .0.203
IP du nœud de données-nœud SQL : 192.168.0.204
Installer le package de dépendances : yum install -y glibc perl libaio-devel
Le système X32 bits doit être installé le groupe de bibliothèques de compatibilité : yum groupinstall « Bibliothèques de compatibilité »
1. Configuration de l'installation du nœud de gestion
1. Installez 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. Modifiez le fichier de configuration du maître mysql
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. Créez le fichier de configuration du cluster mysql
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
Enregistrez et quittez !
chown mysql.mysql /var/lib/mysql-cluster/config .ini
2. Les deux nœuds de données et les nœuds SQL ont la même configuration
1 Installez mysql-cluster
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. fichier de configuration
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 (éteignez d'abord le pare-feu (IPTABLES) et Selinux des trois serveurs)
1. Démarrez le nœud de gestion
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:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。.
Si le démarrage apparaît Erreur : supprimez simplement tous les nodeids définis dans config.ini !
2. Démarrez deux nœuds de données et des nœuds SQL
Nœud de données : /usr/local/mysql/bin/ndbd --initial
Nœud SQL : bin/mysqld_safe - -user=mysql & ou service mysqld start
3. Vérifiez l'état du cluster
ndb_mgm -e show #Affichez le nœud de gestion et le nœud de données, la configuration est réussie
4. Créez une base de données pour vérifier la synchronisation
mysql -u root -p
Mysql>create database test ;
Mysql>use test ;
Mysql>create table abc (id int) engine=ndbcluster; #Spécifiez le moteur de la table de base de données comme NDB, sinon la synchronisation échoue
Mysql>Insérer dans les valeurs abc () (1 );
Mysql> select * from abc;
#À ce stade, vérifiez si les deux données sont cohérentes. Si elles sont cohérentes, le cluster a réussi !
Remarques :
1. Lors de la création d'une table, assurez-vous d'utiliser ENGINE=NDB ou ENGINE=NDBCLUSTER pour spécifier le moteur de stockage du cluster NDB, ou utilisez l'option ALTER TABLE pour modifier le stockage. moteur de la table.
2. La table NDB doit avoir une clé primaire, la clé primaire doit donc être définie lors de la création de la table, sinon le moteur de stockage NDB générera automatiquement une clé primaire implicite.
3. La table des autorisations utilisateur du nœud SQL est toujours enregistrée à l'aide du moteur de stockage MYISAM, donc l'utilisateur MySql créé dans un nœud SQL ne peut accéder à ce nœud que si vous souhaitez utiliser le même utilisateur pour y accéder. d'autres nœuds SQL, vous devez ajouter des utilisateurs au nœud SQL correspondant.
4. Commandes de gestion et de maintenance
Arrêtez le cluster mysql : ndb_mgm -e shutdown
Redémarrez le cluster mysql : ndb_mgmd -f /var /lib/ mysql-cluster/config.ini
Redémarrer le nœud de données :/usr/local/mysql/bin/ndbd
Démarrer le nœud SQL :/usr/local/mysql/bin/mysqld_safe --user = mysql & ou service mysqld restart
Afficher l'état de mysql : ndb_mgm -e show
Séquence de démarrage :
Nœud de gestion-> node
Fermer la séquence :
SQL node-> Data node-> Management node
Tutoriel recommandé : "Tutoriel MySQL"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!