Architecture maître-esclave commune : # 🎜 🎜#
一主一狠 : Un maître, un esclave
: Un maître, plusieurs esclaves
Détails d'implémentation
Détails d'implémentation sous-jacents de MySQL lors de la synchronisation du maître -esclave Qu'est-ce que c'est déjà ? Afin d'analyser ultérieurement les raisons du retard maître-esclave et le plan d'optimisation, effectuez des préparations théoriques.
En résumé, la réplication maître-esclave de MySQL : Asynchrone mono-thread.
Master
a 1 IO thread
, responsable de la transmission du journal binaire
à l'esclave (binlog
)
Il y a 2 threads sur Slave : Thread IO
et Thread d'exécution SQL, parmi lesquels : <code>Master
上 1 个IO线程
,负责向Slave传输 binary log
(binlog
)
Slave上 2 个线程:IO 线程
和执行SQL的线程
,其中:
IO线程
:将获取的日志信息,追加到relay log上;
执行SQL的线程
:检测到relay log中内容有更新,则在Slave上执行sql;
特别说明:MySQL 5.6.3 开始支持「
多线程
的主从复制
」,一个数据库
一个线程
,多个数据库
可多个线程
IO thread
: les informations du journal seront obtenu, ajouter au journal de relais ;
Thread qui exécute SQL
: S'il est détecté que le contenu du journal de relais a été mis à jour , exécutez SQL sur l'esclave ; code>Multi-threading Réplication maître-esclave
", une base de données
un thread
, plusieurs bases de données
peut plusieurs threads. <img src="https://img.php.cn/upload/article/000/000/164/168518061344456.png" alt="Quelle est la méthode pour ajouter une base de données esclave dans MYSQL ?">
#🎜 🎜 #2. Ajouter un esclave
Exigences :Analyse :
La clé est de trouver le point temporel du binlog#🎜 🎜 #
Opération :
1. Configurez les informations de l'esclave sur la machine esclave et modifiez le mysql. configuration cfg Et redémarrez la base de données esclaveAjoutez
replicate-do-db = ucenter #同步的数据库名字 slave-skip-errors=all #同步是忽略错误 server-id = 1112 #和master与其他slave保持不通
2 à [mysqld]. copiez-le sur la nouvelle machine esclave et importez la bibliothèque
[root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G ucenter_20171102.sql
[root@Ucenter /data/mysqldata]# ll -t *bin* -rw-rw---- 1 mysql mysql 30709744 Nov 2 21:32 mysql-bin.000268 -rw-rw---- 1 mysql mysql 171 Nov 2 19:41 mysql-bin.index -rw-rw---- 1 mysql mysql 1021101094 Nov 2 19:41 mysql-bin.000267 -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266 -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265 -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264 -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263 -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262 -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261 -rw-rw---- 1 mysql mysql 1073742184 Oct 7 09:49 mysql-bin.000260
[root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep '3:59:' |grep -v '13:59:' #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824386335 Query thread_id=3023086386 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar #171102 3:59:58 server id 21323 end_log_pos 824386698 Query thread_id=3023086386 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824387706 Query thread_id=3023086388 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar #171102 3:59:58 server id 21323 end_log_pos 824388209 Query thread_id=3023086388 exec_time=0 error_code=0 #171102 3:59:58 server id 21323 end_log_pos 824388534 Query thread_id=3023086398 exec_time=0 error_code=0
4. 🎜🎜#5 sur un autre esclave esclave Configurez l'esclave pour la synchronisation
Configurez les paramètres pertinents sur l'esclave pour indiquer à l'esclave comment se connecter au maître, y compris l'adresse de l'hôte, la connexion informations d'identification, etc.
[root@LeduPass02/data/mysqldata]# cat master.info 15 mysql-bin.000268 11367810 192.168.100.70 omsync om@123 3306 60 0 0 0
Open slave
[root@ucenter_slave /data]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.51-Community-Server-log Source Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql (none)>change master to master_host='192.168.100.70',master_port=3306,master_user='omsync',master_password='om@123',master_log_file='mysql-bin.000267',master_log_pos=824388534;
Vérifier le statut de l'esclave : #🎜 🎜#
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!