Maison base de données tutoriel mysql MySQL主从复制不一致的解决办法

MySQL主从复制不一致的解决办法

Jun 07, 2016 pm 05:52 PM
主从复制

稍微有些规模的网站,基本上都会配置mysql主从复制,一方面用mysql的主从做数据库的读写分离,另一方面mysql本身的单机备份不是很强,一般采用主从架构,在从上进行数据备份。

在MySQL主从复制程中或多少出现一些主从不同步的情况,本文将对数据主从不同步的情况进行简单的总结,请注意本文主要从数据库层面上探讨数据库的主从不一致的情况。
1.网络的延迟

由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。

2.主从两台机器的负载不一致

由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况。

3.max_allowed_packet设置不一致

主数据库上面设置的max_allowed_packet比从数据库大,当一个大的sql语句,能在主数据库上面执行完毕,从数据库上面设置过小,无法执行,导致的主从不一致。

4.key自增键开始的键值跟自增步长设置不一致引起的主从不一致。

5.mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏,导致主从不一致。

6.mysql本身的bug引起的主从不同步。

7.版本不一致,特别是高版本是主,低版本为从的情况下,主数据库上面支持的功能,从数据库上面不支持该功能。

以上就是常见的一些主从不同步的情况。或许还有其他的一些不同步的情况,请说出你所遇到的主从不一致的情况。

基于以上情况,先保证max_allowed_packet、自增键开始点和增长点设置一致,再者牺牲部分性能在主上面开启sync_binlog,对于采用innodb的库,推荐配置下面的内容

 代码如下 复制代码

1、innodb_flush_logs_at_trx_commit = 1
2、innodb-support_xa = 1 # Mysql 5.0 以上
3、innodb_safe_binlog      # Mysql 4.0

同时在从数据库上面推荐加入下面两个参数

1、skip_slave_start
2、read_only

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)

Comment implémenter la réplication maître-esclave de la base de données MySQL en PHP Comment implémenter la réplication maître-esclave de la base de données MySQL en PHP May 17, 2023 am 08:18 AM

Avec le développement rapide d'Internet, les applications Web intègrent de plus en plus les opérations de bases de données. MySQL est un système de base de données relationnelle de renommée mondiale et largement utilisé. Dans les applications Web hautement concurrentes, la réplication maître-esclave MySQL est un moyen important d'améliorer les performances et la disponibilité des bases de données. Cet article explique comment utiliser PHP pour implémenter la réplication maître-esclave de la base de données MySQL. 1. Qu'est-ce que la réplication maître-esclave MySQL ? La réplication maître-esclave MySQL fait référence à la copie de données d'un serveur de base de données MySQL vers un autre serveur.

Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge Sep 09, 2023 am 10:57 AM

Construire un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge Ces dernières années, avec le développement rapide d'Internet, la base de données est devenue l'un des principaux moteurs de stockage et de traitement de données pour la plupart des applications Web. Dans ce scénario, la haute disponibilité et l’équilibrage de charge sont devenus des considérations importantes dans la conception de l’architecture de base de données. En tant que l'une des bases de données relationnelles open source les plus populaires, la solution de déploiement de cluster de MySQL a attiré beaucoup d'attention. Cet article explique comment implémenter un cluster de bases de données hautement disponible via la réplication maître-esclave MySQL et l'équilibrage de charge.

Technologie de réplication maître-esclave de données dans MySQL Technologie de réplication maître-esclave de données dans MySQL Jun 14, 2023 pm 02:10 PM

La base de données MySQL est un système de gestion de bases de données relationnelles très populaire qui prend en charge une variété de technologies de réplication de données, parmi lesquelles la plus couramment utilisée est la technologie de réplication maître-esclave. Cet article présentera la technologie de réplication de données maître-esclave dans MySQL, y compris les principes, les méthodes de mise en œuvre, les problèmes courants et les contre-mesures. 1. Principe de la technologie de réplication maître-esclave La technologie de réplication maître-esclave de MySQL peut copier les données d'une base de données MySQL sur d'autres serveurs pour réaliser la sauvegarde des données, l'équilibrage de charge, la séparation en lecture-écriture et d'autres fonctions. Son principe de base est de convertir la base de données principale

Explication détaillée de la fonction de réplication maître-esclave de Redis Explication détaillée de la fonction de réplication maître-esclave de Redis May 11, 2023 am 10:00 AM

Redis est un système de stockage clé-valeur open source basé sur la mémoire qui est couramment utilisé dans des scénarios tels que la mise en cache, la mise en file d'attente et le traitement des données en temps réel. Dans les applications à grande échelle, afin d'améliorer la disponibilité et les performances de Redis, il est souvent nécessaire d'adopter une architecture distribuée, dans laquelle la réplication maître-esclave est un mécanisme couramment utilisé. Cet article présentera la fonction de réplication maître-esclave de Redis, y compris la définition, le principe, la configuration et les scénarios d'application. 1. La définition de la réplication maître-esclave Redis fait référence à la synchronisation automatique des données d'un nœud Redis (c'est-à-dire le nœud maître) vers d'autres nœuds (c'est-à-dire le nœud esclave).

Comment configurer la réplication maître-esclave de la base de données MySQL ? Comment configurer la réplication maître-esclave de la base de données MySQL ? Jul 13, 2023 pm 10:05 PM

Comment configurer la réplication maître-esclave de la base de données MySQL ? La réplication maître-esclave de la base de données MySQL est une solution courante de sauvegarde des données et de haute disponibilité. En configurant la réplication maître-esclave, vous pouvez synchroniser les données d'un serveur MySQL (serveur maître) à un autre (serveur esclave), améliorant ainsi la disponibilité et les performances de la base de données. Ce qui suit décrit comment configurer la réplication maître-esclave dans une base de données MySQL et fournit des exemples de code correspondants. Assurez-vous que le serveur MySQL est installé et démarré. Tout d'abord, assurez-vous que MySQL est installé sur votre système.

Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL Sep 11, 2023 pm 05:51 PM

Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL Avec le développement rapide de l'industrie Internet, la demande de stockage et de traitement des données est de plus en plus élevée. En réponse à un accès simultané élevé et à un stockage massif de données, le mode cluster est devenu une solution courante. L'équilibrage de charge et la reprise après sinistre sont des composants importants du système de cluster, et la réplication maître-esclave MySQL est une méthode largement utilisée. Cet article abordera l'équilibrage de charge et la reprise après sinistre en mode cluster, en se concentrant sur le principe de la réplication maître-esclave MySQL.

Réplication maître-esclave et architecture haute disponibilité dans MySQL Réplication maître-esclave et architecture haute disponibilité dans MySQL Sep 09, 2023 pm 12:03 PM

Réplication maître-esclave et architecture haute disponibilité dans MySQL À mesure que les applications Internet et les volumes de données continuent de croître, la haute disponibilité et l'évolutivité de la base de données deviennent de plus en plus importantes. En tant que base de données relationnelle open source largement utilisée, MySQL fournit des solutions de réplication maître-esclave et d'architecture haute disponibilité. La réplication maître-esclave fait référence au processus d'utilisation d'une instance de base de données MySQL comme base de données maître et de réplication de ses données vers une ou plusieurs bases de données esclaves (esclave). Cette méthode de réplication peut réaliser une sauvegarde redondante des données et une séparation de la lecture et de l'écriture.

Comment implémenter la réplication maître-esclave de la base de données Memcached en PHP Comment implémenter la réplication maître-esclave de la base de données Memcached en PHP May 15, 2023 pm 06:40 PM

Memcached est un système de mise en cache d'objets à mémoire distribuée open source et hautes performances qui peut être utilisé pour accélérer les applications Web et fonctionne particulièrement bien dans la mise en cache de données à grande échelle. Pour ce système, la réplication maître-esclave est une fonction très importante, qui peut être utilisée pour garantir la fiabilité et la haute disponibilité des données. Cet article explique comment utiliser PHP pour implémenter la réplication maître-esclave de la base de données Memcached. Introduction au mode maître-esclave Le mode maître-esclave est une structure distribuée du serveur Memcached. Il est constitué d'au moins deux serveurs : un.

See all articles