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

MySQL的半同步复制_MySQL

May 30, 2016 pm 05:11 PM

1>半同步复制的出现:

 

默认情况下,复制是异步的,就是客户端提交事务给主库,主库将事务写入到存储引擎和binlog中后会立即返回给客户端告诉其事务执行成功。如果此时该事务还未来得及复制到从库上,如果主库在此时发生崩溃或者服务器宕机,会导致主从切换,此时客户端访问新选举的主库时,就会看不到刚提交的数据。

 

2>半同步复制的原理:

 

mysql5.5开始通过插件的方式支持半同步复制,主库执行完客户端提交的事务后不会立即返回给客户端,而是等待至少一个从库接收到该事务后才返回给客户端。

 

半同步复制是全同步和异步同步的一个折中方案。与异步复制相比,半同步复制提高数据的安全性---可以保证至少两个地方存在该事务,同时也增加了一定的延迟(至少是一个tcp/ip往返的时间),最好在低延迟的网络中使用,比如局域网。

MySQL的半同步复制_MySQL

3>半同步复制的安装配置

 

须满足以下条件:

 

MySQL5.5或者以上版本

 

has_dynamic_loading系统变量设置为YES

 

复制已经配置并且在运行。

 

半同步复制是以插件形式实现的。所以讲semisync_master*文件复制到主库的plugins文件夹中,讲semisync_slave*文件复制到所有从库的plugins文件夹中。

 

接下来分别在主库和从库上执行INSTALL PLUGIN命令加载插件。

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME "semisync_master.so";

 

从库上执行

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME "semisync_slave.so";

 

查看插件的安装情况:

mysql>SHOW PLUGINS;

 

主从都开启半同步插件:

 

   主库上开启半同步插件:

   mysql>SET GLOBAL rpl_semi_sync_master_enabled = 1;

   mysql>SET GLOBAL rpl_semi_sync_master_timeout = N;//单位是毫秒

 

   在从库上开启半同步插件:

   mysql>SET GLOBAL rpl_semi_sync_slave_enabled = 1;

 

rpl_semi_sync_master_timeout表示主库等待从库相应的超市时间,如果在时间内没有收到从库相应,复制切换到异步模式。

 

停止slave IO 线程,然后重新开启该线程。以使slave IO 线程从新连接到主库,并以半同步方式在主库注册。

 

在从库上执行以下命令重启slave IO线程:

mysql>STOP SLAVE IO_THREAD;

mysql>START SLAVE IO_THREAD;

 

注意点:

 

在mysql启动前将全局变量写入到配置文件中。以避免忘记设置使半同步不生效。

 

主库配置文件

 [mysqld]

 rpl_semi_sync_master_enabled = 1

 rpl_semi_sync_master_timeout=10000 #10秒

 

从库配置文件

 [mysqld]

 rpl_semi_sync_slave_enabled = 1

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Réduisez l'utilisation de la mémoire MySQL dans Docker Réduisez l'utilisation de la mémoire MySQL dans Docker Mar 04, 2025 pm 03:52 PM

Cet article explore l'optimisation de l'utilisation de la mémoire MySQL dans Docker. Il traite des techniques de surveillance (statistiques Docker, du schéma de performance, des outils externes) et des stratégies de configuration. Il s'agit notamment des limites de mémoire Docker, de l'échange et des CGROUP, à côté

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Mar 04, 2025 pm 04:01 PM

Cet article aborde l'erreur "Implom Open Open Wibrary" de MySQL. Le problème découle de l'incapacité de MySQL à localiser les bibliothèques partagées nécessaires (fichiers .so / .dll). Les solutions impliquent la vérification de l'installation de la bibliothèque via le package du système m

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Mar 19, 2025 pm 03:51 PM

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Mar 04, 2025 pm 03:54 PM

Cet article compare l'installation de MySQL sur Linux directement par rapport à l'utilisation de conteneurs Podman, avec / sans phpmyadmin. Il détaille les étapes d'installation pour chaque méthode, mettant l'accent sur les avantages de Podman isolément, portabilité et reproductibilité, mais aussi

Qu'est-ce que Sqlite? Aperçu complet Qu'est-ce que Sqlite? Aperçu complet Mar 04, 2025 pm 03:55 PM

Cet article fournit un aperçu complet de SQLite, une base de données relationnelle autonome et sans serveur. Il détaille les avantages de SQLite (simplicité, portabilité, facilité d'utilisation) et les inconvénients (limitations de concurrence, défis d'évolutivité). C

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Mar 04, 2025 pm 03:49 PM

Ce guide démontre l'installation et la gestion de plusieurs versions MySQL sur MacOS à l'aide de Homebrew. Il met l'accent sur l'utilisation de Homebrew pour isoler les installations, empêchant les conflits. L'article détaille l'installation, les services de démarrage / d'arrêt et le meilleur PRA

Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Mar 18, 2025 pm 12:01 PM

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

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]

See all articles