Analyse détaillée de la copie dans Mysql
Cet article présente principalement l'analyse détaillée de la réplication dans Mysql. Il présente les concepts de base, les utilisations, les méthodes d'implémentation et les modes centralisés, puis partage le code d'implémentation spécifique, qui a une certaine valeur de référence. Les amis qui en ont besoin peuvent en savoir plus. .
1.le concept de réplication mysql
fait référence à la transmission des opérations DDL et DML de la base de données principale au serveur de réplication via le journal binaire, puis à la transmission sur le serveur de réplication. Ces fichiers journaux sont réexécutés, gardant les données sur les serveurs répliqués et maîtres synchronisées. Pendant le processus de réplication, un serveur agit en tant que maître et un ou plusieurs autres serveurs en tant qu'esclaves. Le maître réécrit les mises à jour des fichiers journaux binaires et conserve un index des fichiers pour suivre la rotation des journaux. Ces journaux enregistrent les mises à jour envoyées aux serveurs esclaves. Lorsqu'un esclave se connecte au maître, il informe le maître de l'emplacement de la dernière mise à jour réussie que l'esclave a lue dans le journal. L'esclave accepte toutes les mises à jour effectuées depuis, puis bloque et attend que le maître soit informé des nouvelles mises à jour.
2. Objectif de la réplication
Synchronisez les données via la réplication maître-esclave, puis séparez la lecture et l'écriture (mysql-proxy) pour améliorer la capacité de charge simultanée de la base de données, ou pour être utilisée comme machine principale et de sauvegarde pour garantir que l'application peut être basculée vers la machine de sauvegarde pour continuer à s'exécuter dans un court laps de temps après que l'hôte cesse de répondre.
Avantages :
(1) Le système de cluster de bases de données comporte plusieurs nœuds de base de données. En cas de panne d'un seul nœud, d'autres nœuds normaux. Les services peuvent continuer à être fournis.
(2) Si un problème survient sur le serveur maître, vous pouvez basculer vers le serveur esclave
(3) Les opérations de requête peuvent être effectuées sur le serveur esclave via la réplication, ce qui réduit la pression d'accès sur le serveur maître et réalise la distribution des données et l'équilibrage de charge
(4) La sauvegarde peut être effectuée sur le serveur esclave pour éviter d'affecter le service du serveur maître lors de la sauvegarde.
3. Mise en œuvre de la réplication (3 méthodes)
(1) DRBD est une solution de réplication de stockage basée sur un logiciel et sans partage. pour mettre en miroir le contenu du périphérique de bloc entre les serveurs.
(2) Cluster Mysql (également connu sous le nom de cluster mysql). La réplication MySQL (réplication) elle-même est une structure relativement simple, c'est-à-dire qu'un serveur esclave (esclave) lit le journal binaire à partir d'un serveur maître (maître), puis l'analyse et l'applique à lui-même.
(3) Un environnement de réplication simple ne nécessite que deux hôtes exécutant MySQL, et vous pouvez même démarrer deux instances mysqld sur un hôte de serveur physique. L’un sert de maître et l’autre d’esclave pour terminer la configuration de l’environnement de réplication. Cependant, dans les environnements d'application réels, vous pouvez utiliser la fonction de réplication MySQL pour créer d'autres architectures de réplication plus propices à l'expansion en fonction des besoins réels de l'entreprise, telles que l'architecture maître-esclave la plus couramment utilisée.
L'architecture maître-esclave fait référence à l'utilisation d'un serveur MySQL comme maître, d'un ou plusieurs serveurs MySQL comme esclave et à la copie des données du maître sur l'esclave. Dans les applications pratiques, le mode d'architecture maître-esclave est le plus couramment utilisé pour la réplication MySQL. Généralement, dans le cadre de cette architecture, les opérations d'écriture du système sont effectuées dans le maître, tandis que les opérations de lecture sont dispersées sur divers esclaves. Par conséquent, cette architecture est particulièrement adaptée aux problèmes élevés de lecture et d'écriture de l'Internet actuel.
L'opération de réplication de la base de données MySQL est grossièrement divisée en les étapes suivantes :
(1) Le maître active les journaux binaires. L'opération d'activation des journaux binaires est décrite en détail dans Log Management.
(2) Le processus d'E/S sur l'esclave se connecte au maître et demande le contenu du journal à partir de la position spécifiée du fichier journal spécifié (ou depuis le début du journal).
(3) Après avoir reçu la demande de processus d'E/S de l'esclave, le maître lit les informations du journal après la position spécifiée du journal spécifié en fonction des informations de la demande via le processus d'E/S responsable de la réplication, et les renvoie aux E/S de l'esclave. Outre les informations contenues dans le journal, les informations renvoyées incluent également le nom du fichier bin-log et l'emplacement du bin-log dans lequel les informations renvoyées ont été envoyées au maître.
(4) Après avoir reçu les informations, le processus d'E/S de l'esclave ajoutera le contenu du journal reçu à la fin du fichier journal-relais du côté esclave, et ajoutera le nom du fichier et le nom du fichier bin-log. du côté maître lu L'emplacement est enregistré dans le fichier master-info.
(5) Une fois que le processus SQL de Slave a détecté le nouveau contenu dans le journal-relais, il analysera immédiatement le contenu du journal-relais et l'exécutera lui-même.
4. Mode centralisé de réplication mysql
Dans les versions après mysql5.1, l'amélioration de la réplication est l'introduction d'une nouvelle technologie de réplication - Réplication basée sur les lignes. Cette technologie se concentre sur les enregistrements qui ont changé dans la table, plutôt que de copier le mode binlog précédent. À partir de mysql5.1.12, les trois modes suivants peuvent être utilisés pour y parvenir.
(1) Réplication basée sur les instructions (sbr)
(2) Réplication basée sur les lignes (rbr)
(3) Réplication en mode mixte (mbr)
En conséquence, il existe trois formats de binlog : instruction, ligne et mixte. En mode Mbr, le mode sbr est le mode par défaut. Le format du binlog peut être modifié dynamiquement au moment de l'exécution. La méthode de définition du mode de réplication maître-esclave est très simple. Ajoutez simplement un autre paramètre basé sur la configuration de réplication précédemment définie, comme suit :
binlog_format=”statement” #binlog_format=”row” #binlog_format=”mixed”
Bien sûr, vous pouvez également modifier dynamiquement le format du binlog au moment de l'exécution
Mysql> set session binlog_format=”statement”
5 .Contrôler le fonctionnement du serveur maître
Maître : 192.168.11.139
Esclave : 192.168.11.130
(1) Serveur maître :
mysql> show variables like '%datadir%'; +---------------+--------------------------+ | Variable_name | Value | +---------------+--------------------------+ | datadir | /application/mysql/data/ | +---------------+--------------------------+
Activer la journalisation binaire sur le serveur maître :
mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ row in set (0.00 sec)
OFF signifie que le journal binaire est désactivé
3 étapes pour ouvrir le journal :
① Ouvrez le répertoire d'installation mysql/my.cnf
②Trouvez l'étiquette [mysqld] Dans la ligne sous cette étiquette, ajoutez l'instruction suivante :
log_bin[filename]
Dans cette instruction, log-bin indique que le fichier binaire doit être ouvert ; le nom de fichier est le nom du journal binaire. S'il n'est pas spécifié, la valeur par défaut est le nom d'hôte suivi de -bin comme nom de fichier, qui est stocké par défaut dans le répertoire datadir. Spécifiez binaire_log ici Si le fichier binaire est généré uniquement pour la base de données spécifiée, vous devez ajouter l'instruction suivante
Binlog-do-db=db_name(数据库名称)
. S'il n'est pas généré pour la base de données spécifiée. Pour les journaux de fichiers binaires, vous devez ajouter les instructions suivantes
Binlog-ignore-db-db_name(数据库名称)
③ Redémarrer le service mysql. Vous pouvez voir le fichier "binary_log.numeric number" dans le répertoire/dossier d'installation de mysql, tel que binaire_log.00001. Chaque fois que le service mysql sera redémarré à l'avenir, le fichier binaire sera régénéré et le numéro numérique dans le fichier. le nom du fichier augmentera.
Après un démarrage réussi, modifiez le fichier de configuration mysql my.cnf et définissez l'ID du serveur. Le code est le suivant
Server-id=1 Binlog-do-db=xscj Binlog-ignore-db=mysql Server-id=1:每一个数据库服务器都要指定一个唯一的server-id,通常主服务器为1,master和slave的server-id不能相同。 Binlog-do-db:表示需要复制的数据库,这里以xscj为例 Binlog-ignore-db:表示不需要复制的数据库
mysql> grant replication slave on *.* to rep_user@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec mysql> show master status\G *************************** 1. row *************************** File: binary_log.000001 Position: 303 Binlog_Do_DB: Binlog_Ignore_DB: row in set (0.00 sec)
[root@localhost bin]# mysqldump -h localhost>/data/binary_dump.txt
Modifier le fichier de configuration de la base de données du serveur esclave, la configuration est la suivante :
Server-id=2 ##设置从服务器id Master-host=192.168.11.129 Master-user=rep_user Master-password= ##设置连接主服务器的密码 Replicate-do-db ##设置你要同步的数据库,可以设置多个 Master-port=<port> ##配置端口号 重启slave,在slave主机的mysql重新执行如下命令,关闭slave服务 Mysql>stop slave; 设置slave实现复制相关的信息,执行如下命令 Mysql>change master to >master_host='', >master_user='', >master_password='', >master_log_file='binary_log.000007', >master_log_pos=120; 输入:show slave status\G用于提供有关从服务器线程的关键参数信息。
选项 功能 Slave start 启动复制线程 Slave stop 停止复制线程 Reset slave 重置复制线程 Show slave status 显示复制线程状态 Show slave statusg 显示复制线程状态(分行显示) Show master statusG 显示主数据库的状态(分行显示) Show master logs 显示主数据库日志 Change master to 动态改变到主数据库的配置 Show processlistv 显示有哪些线程正在运行 Démarrer le fil de réplication
Options
Fonction
Démarrage de l'esclave
Arrêter le thread de réplication
Réinitialiser le thread de réplication
Afficher l'état du thread de réplication
Afficher l'état de l'esclave td>
Afficher l'état du thread de réplication (affichage sur des lignes séparées)
Afficher l'état principalG
Afficher l'état de la base de données principale (affiché sur des lignes séparées)
Afficher journaux principaux
Afficher le journal de la base de données principale
Changer le maître en Modifications dynamiques de la configuration de la base de données maître
Est-ce que tout le monde l'a appris ? Dépêchez-vous et essayez-le. Recommandations associées : Résumé des méthodes de copie des structures de tables dans mysql_MySQLCopie de tables de données dans MySQL Tutoriel sur la façon pour transférer des données vers une nouvelle table_MySQLAperçu, installation, pannes, techniques et outils de réplication MySQL (Partagé par Huo Ding)Afficher processlistv
Afficher quels threads sont en cours d'exécution
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

La surveillance efficace des bases de données Redis est essentielle pour maintenir des performances optimales, identifier les goulots d'étranglement potentiels et assurer la fiabilité globale du système. Le service Redis Exporter est un utilitaire puissant conçu pour surveiller les bases de données Redis à l'aide de Prometheus. Ce didacticiel vous guidera à travers la configuration et la configuration complètes du service Redis Exportateur, en vous garantissant de créer des solutions de surveillance de manière transparente. En étudiant ce tutoriel, vous réaliserez les paramètres de surveillance entièrement opérationnels

Les méthodes de visualisation des erreurs de base de données SQL sont: 1. Afficher directement les messages d'erreur; 2. Utilisez des erreurs d'affichage et des commandes d'avertissement Show; 3. Accédez au journal d'erreur; 4. Utiliser les codes d'erreur pour trouver la cause de l'erreur; 5. Vérifiez la connexion de la base de données et la syntaxe de requête; 6. Utilisez des outils de débogage.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.
