Maison base de données tutoriel mysql mysql半同步复制的实现_MySQL

mysql半同步复制的实现_MySQL

Jun 01, 2016 pm 01:08 PM

bitsCN.com

mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master Sever就自动返回数据给客户端,而不管slave上是否接受到了这个二进制日志。在半同步复制的架构下,当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志以后,才会返回数据给客户端。对比两种架构:异步复制对于用户来说,可以确保得到快速的响应结构,但是不能确保二进制日志确实到达了slave上;半同步复制对于客户的请求响应稍微慢点,但是他可以保证二进制日志的完整性。

下面来配置一个半同步复制实现的主从架构:

192.168.1.141为mysql的主服务器

192.168.1.142为mysql的从服务器

1.为mysql主服务器提供配置

编辑/etc/my.cnf,提供以下的配置

log_bin=index

server_id=1

在主服务器上授权

# mysql> grant replication slave,replication client on user@'192.168.1.142' identified by "123456";

# mysql> flush privileges;

2.为mysql从服务提供配置

编辑/etc/my.cnf,提供以下的配置

server_id=10

relay_log=relay

read_only=on

skip-slave-start=1

进入mysql命令行接口

# mysql > change master to MASTER_HOST="192.168.1.141",MASTER_USER="user",MASTER_PASSWORD="123456",MASTER_LOG_FILE="index.000004",MASTER_LOG_POS=429;

# mysql > start slave;

如果能够看到Slave_IO_Running: Yes和Slave_SQL_Running:Yes两行信息的话,证明主从配置已经成功。

要使用mysql的半同步复制功能需要为mysql装插件,mysql默认支持的插件在/usr/local/mysql/lib/plugin/,里面有两个semisync_master.so和semisync_slave.so的共享库是我们实现mysql半同步复制的关键

3.设置半同步复制

在mysql主服务器的命令行接口下执行如下代码:

# mysql > install plugin rpl_semi_sync_master SONAME 'semisync_master.so';

# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)

| rpl_semi_sync_master_enabled       | OFF   | 是否启动半同步复制,默认关闭

| rpl_semi_sync_master_timeout        | 10000 | 等待从服务器告诉接受到的超时时间,如果时间到了,还没接受到,自动降级为异步

| rpl_semi_sync_master_trace_level   | 32    | 运行级别

| rpl_semi_sync_master_wait_no_slave | ON    | 没有slave的时候是否也需要等待,默认为也需要等待

# mysql > set global rpl_semi_sync_master_enabled = 1;

# mysql > set global rpl_semi_sync_master_timeout = 1000;

在mysql从服务器的命令行接口下执行如下代码:

# mysql > install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';

# mysql > show variables like "%semi%";(如果看到新增的semi变量的话证明安装模块成功)

# mysql > set global rpl_semi_sync_slave_enabled = 1;

# stop slave;

# start slave;

最后把常用的配置参数写如配置文件中:

192.168.1.141:

[mysqld]

rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=1000

192.168.1.142:

[mysqld]

rpl_semi_sync_slave_enabled=1

4.查看半同步复制的状况信息

在192.168.1.141执行如下命令:

mysql> show status like "%semi%";

+-------------------------------------------------------------------+----------+

| Variable_name                                                                | Value |

+-------------------------------------------------------------------+----------+

| Rpl_semi_sync_master_clients                                    | 1     |   半同步复制客户端的个数

| Rpl_semi_sync_master_net_avg_wait_time              | 555   |   平均等待时间(默认毫秒)

| Rpl_semi_sync_master_net_wait_time                      | 1665  |   总共等待时间

| Rpl_semi_sync_master_net_waits                              | 3     |   等待次数

| Rpl_semi_sync_master_no_times                              | 0     |   关闭半同步复制的次数

| Rpl_semi_sync_master_no_tx                                      | 0     |   表示没有成功接收slave提交的次数

| Rpl_semi_sync_master_status                                   | ON    |   表示当前是异步模式还是半同步模式,on为半同步

| Rpl_semi_sync_master_timefunc_failures               | 0     |   调用时间函数失败的次数

| Rpl_semi_sync_master_tx_avg_wait_time              | 575   |   事物的平均传输时间

| Rpl_semi_sync_master_tx_wait_time                      | 1725  |   事物的总共传输时间

| Rpl_semi_sync_master_tx_waits                                | 3     |   事物等待次数

| Rpl_semi_sync_master_wait_pos_backtraverse    | 0     |  

| Rpl_semi_sync_master_wait_sessions                    | 0     |   当前有多少个session因为slave的回复而造成等待

| Rpl_semi_sync_master_yes_tx                                   | 3     |   成功接受到slave事物回复的次数

+-------------------------------------------------------------------+---------+

5.取消半同步复制的插件

192.168.1.141上:

# mysql > uninstall plugin rpl_semi_sync_master;

# mysql > show status like "%semi%"

192.168.1.142上:

# mysql > uninstall plugin rpl_semi_sync_slave;

# mysql > show status like "%semi%"

bitsCN.com
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quand une analyse de table complète pourrait-elle être plus rapide que d'utiliser un index dans MySQL? Quand une analyse de table complète pourrait-elle être plus rapide que d'utiliser un index dans MySQL? Apr 09, 2025 am 12:05 AM

La numérisation complète de la table peut être plus rapide dans MySQL que l'utilisation d'index. Les cas spécifiques comprennent: 1) le volume de données est petit; 2) Lorsque la requête renvoie une grande quantité de données; 3) Lorsque la colonne d'index n'est pas très sélective; 4) Lorsque la requête complexe. En analysant les plans de requête, en optimisant les index, en évitant le sur-index et en maintenant régulièrement des tables, vous pouvez faire les meilleurs choix dans les applications pratiques.

Expliquez les capacités de recherche en texte intégral InNODB. Expliquez les capacités de recherche en texte intégral InNODB. Apr 02, 2025 pm 06:09 PM

Les capacités de recherche en texte intégral d'InNODB sont très puissantes, ce qui peut considérablement améliorer l'efficacité de la requête de la base de données et la capacité de traiter de grandes quantités de données de texte. 1) INNODB implémente la recherche de texte intégral via l'indexation inversée, prenant en charge les requêtes de recherche de base et avancées. 2) Utilisez la correspondance et contre les mots clés pour rechercher, prendre en charge le mode booléen et la recherche de phrases. 3) Les méthodes d'optimisation incluent l'utilisation de la technologie de segmentation des mots, la reconstruction périodique des index et l'ajustement de la taille du cache pour améliorer les performances et la précision.

Puis-je installer mysql sur Windows 7 Puis-je installer mysql sur Windows 7 Apr 08, 2025 pm 03:21 PM

Oui, MySQL peut être installé sur Windows 7, et bien que Microsoft ait cessé de prendre en charge Windows 7, MySQL est toujours compatible avec lui. Cependant, les points suivants doivent être notés lors du processus d'installation: téléchargez le programme d'installation MySQL pour Windows. Sélectionnez la version appropriée de MySQL (communauté ou entreprise). Sélectionnez le répertoire d'installation et le jeu de caractères appropriés pendant le processus d'installation. Définissez le mot de passe de l'utilisateur racine et gardez-le correctement. Connectez-vous à la base de données pour les tests. Notez les problèmes de compatibilité et de sécurité sur Windows 7, et il est recommandé de passer à un système d'exploitation pris en charge.

Différence entre l'index cluster et l'index non cluster (index secondaire) dans InnODB. Différence entre l'index cluster et l'index non cluster (index secondaire) dans InnODB. Apr 02, 2025 pm 06:25 PM

La différence entre l'index cluster et l'index non cluster est: 1. Index en cluster stocke les lignes de données dans la structure d'index, ce qui convient à la requête par clé et plage primaire. 2. L'index non clumpant stocke les valeurs de clé d'index et les pointeurs vers les lignes de données, et convient aux requêtes de colonne de clés non primaires.

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)? Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]

Comment gérez-vous les grands ensembles de données dans MySQL? Comment gérez-vous les grands ensembles de données dans MySQL? Mar 21, 2025 pm 12:15 PM

L'article traite des stratégies pour gérer de grands ensembles de données dans MySQL, y compris le partitionnement, la rupture, l'indexation et l'optimisation des requêtes.

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

La relation entre l'utilisateur de MySQL et la base de données La relation entre l'utilisateur de MySQL et la base de données Apr 08, 2025 pm 07:15 PM

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

See all articles