Optimisation MySQL - Explication détaillée des étapes du code de création de cluster (image)
黄舟
Libérer: 2017-03-10 10:54:25
original
1093 Les gens l'ont consulté
1 Présentation
MySQL Cluster est une version très pratique, évolutive, hautes performances et haute redondance de MySQL, adaptée aux environnements informatiques distribués. recherche et développement L'intention initiale de la conception est de répondre aux exigences d'application les plus strictes dans de nombreuses industries. Ces applications nécessitent souvent une fiabilité de fonctionnement de la base de données atteignant 99,999 %. MySQL Cluster permet le déploiement de clusters de bases de données « en mémoire » dans des systèmes sans partage. Grâce à l'architecture sans partage, le système peut utiliser du matériel bon marché et n'a aucune exigence particulière en matière de logiciels et de matériel. De plus, étant donné que chaque composant possède sa propre mémoire et son propre disque, il n’existe aucun point de défaillance unique.
En fait, MySQL Cluster intègre un moteur de stockage de cluster de mémoire appelé NDB avec le serveur MySQL standard. Il se compose d'un ensemble d'ordinateurs, chacun exécutant un ou plusieurs processus, pouvant inclure un serveur MySQL, un nœud de données, un serveur de gestion et un programme propriétaire d'accès aux données.
Le cluster MySQL a la capacité de 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. Voici le diagramme de structure du cluster MySQL,
MySQL est composé de trois types de nœuds (ordinateurs ou processus) d'un point de vue structurel , à savoir :
Nœud de gestion : utilisé pour fournir la configuration, la gestion, l'arbitrage et d'autres fonctions pour les autres nœuds de l'ensemble du cluster. En théorie, il suffit de fournir des services via un seul serveur.
Nœud de données : le cœur du cluster MySQL, qui stocke les données et les journaux et fournit divers services de gestion des données. Lorsqu'il y a plus de 2 nœuds, la garantie de haute disponibilité du cluster peut être obtenue. Lorsque le nombre de nœuds de base de données augmente, la vitesse de traitement du cluster ralentit.
Nœud SQL (API) : utilisé pour accéder aux données du cluster MySQL et fournir des services d'application externes. L'ajout de nœuds API améliorera la vitesse d'accès simultané et le débit global de l'ensemble du cluster. Le nœud peut être déployé sur le serveur d'applications Web, sur un serveur dédié ou sur le même serveur que la base de données.
2 Moteur NDB
MySQL Cluster utilise un moteur de stockage NDB dédié basé sur la mémoire. L'avantage est qu'il est rapide et n'a pas de goulot d'étranglement d'E/S de disque. , mais comme elle est basée sur la mémoire, la taille de la base de données est limitée par la mémoire totale du système si le serveur MySQL exécutant NDB doit disposer d'une mémoire suffisamment grande, comme 4G, 8G ou même 16G. Le moteur NDB est distribué et peut être configuré sur plusieurs serveurs pour assurer la fiabilité et l'évolutivité des données. En théorie, en configurant deux nœuds de stockage NDB, la redondance de l'ensemble du cluster de bases de données et le problème du point de défaillance unique peuvent être résolus.
2.1 Défauts
En fonction de la mémoire, la taille de la base de données est limitée par la taille totale de la mémoire du cluster
En fonction de la mémoire, des données peuvent être perdues après une panne de courant. Cela doit être vérifié par des tests.
Plusieurs nœuds mettent en œuvre la communication, la synchronisation des données, les requêtes et d'autres opérations via le réseau, de sorte que l'intégrité est affectée par la vitesse du réseau,
La vitesse est donc également relativement lente
2.2 Avantages
Plusieurs nœuds peuvent être distribués dans différents emplacements géographiques, c'est donc également une solution pour mettre en œuvre une base de données distribuée.
L'évolutivité est très bonne et le cluster de bases de données peut être étendu en ajoutant des nœuds.
La redondance est très bonne. Il existe des données de base de données complètes sur plusieurs nœuds, donc tout temps d'arrêt de nœud n'entraînera pas d'interruption de service.
Le coût de mise en œuvre de la haute disponibilité est relativement faible. Contrairement aux solutions de haute disponibilité traditionnelles qui nécessitent des périphériques de stockage partagés et des logiciels dédiés, NDB peut être mis en œuvre tant qu'il y a suffisamment de mémoire.
2. Construction du cluster
Un système de cluster MySQL le plus simple sera construit. Toutes les commandes de la méthode de configuration sont exécutées en tant que compte root. Ce cluster MySQL contient un nœud de gestion, deux nœuds de données et deux nœuds SQL. Ces cinq nœuds seront installés respectivement sur cinq machines virtuelles. Les noms et adresses IP des machines virtuelles sont les suivants :
.
Nœud de gestion
mysql-mgm
192.168.124.141
Nœud de données1
mysql-ndbd-1
192.168.124.142
Nœud de données2
mysql-ndbd-2
192.168.124.143
SQLNœud1
mysql-sql-1
192.168. 124.144
SQLNœud2
mysql-sql-2
192.168.124.145
>
Veuillez configurer les éléments de configuration ici sur les trois machines virtuelles respectivement. 1. Installez la machine virtuelle
Le système d'exploitation de la machine virtuelle installe la version x86_64 de CentOS 6.4, utilise le réseau NAT et installe également vmware-tools. la méthode d'installation spécifique est ici Non détaillée ici.
2. Copiez le cluster mysql
Téléchargez la version suivante de MySQL-Cluster :
http://www.php.cn/Copiez le package compressé téléchargé dans le répertoire /root/Downloads de la machine virtuelle, puis exécutez la commande suivante dans le shell :
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
Copier après la connexion
3. Désactivez la politique de sécurité
chkconfig --level 35 iptables off
Copier après la connexion
Désactivez la politique de sécurité. désactivez le pare-feu iptables (ou activez le pare-feu 1186, 3306 ports), exécutez la commande suivante dans le Shell :
gedit /etc/selinux/config
Copier après la connexion
# 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
Copier après la connexion
Désactivez SELinux et exécutez la commande suivante dans le Shell :
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
gedit config.ini
Installez le nœud de gestion, aucun fichier binaire mysqld n'est requis. Seuls le programme serveur MySQL Cluster (ndb_mgmd) et le programme client d'écoute (ndb_mgm) sont requis. Exécutez la commande suivante dans le shell :
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
Copier après la connexion
Copier après la connexion
<🎜><🎜><🎜>4. Configurer les nœuds SQL (<🎜><🎜>192.168.124.144 <🎜><🎜>, 192.168.124.145) <🎜><🎜><🎜><🎜><🎜>1. Ajoutez un groupe mysql et un utilisateur <🎜><🎜><🎜>Exécutez la commande suivante dans le shell : <🎜>
shell> /etc/init.d/mysql.server stop
Shutting down MySQL... SUCCESS!
Copier après la connexion
Copier après la connexion
<🎜><🎜><🎜><🎜><🎜>< 🎜>2. Configurez le fichier de configuration my.cnf<🎜 ><🎜><🎜>Exécutez la commande suivante dans le shell : <🎜>
<🎝><🎜 ><🎜><🎜><🎜><🎜>Le contenu du fichier de configuration my.cnf est le suivant : <🎜>
<🎝><🎜><🎜><🎜><🎜><🎜><🎜>3. Créez la base de données système <🎜> <🎜><🎜>Exécutez la commande suivante dans le shell : <🎜>
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn