Partage de technologie

Réplication MySQL-maître-esclave et séparation lecture-écriture

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

La réplication maître-esclave et la séparation lecture-écriture de MySQL sont des moyens techniques importants pour améliorer les performances et la disponibilité des bases de données.

 

Réplication maître-esclave :

 

L'objectif principal de la réplication maître-esclave est de réaliser une sauvegarde redondante des données, d'améliorer la disponibilité des données et de réaliser une séparation lecture-écriture de la base de données pour améliorer les performances.

 

Configuration du serveur maître :

 

1. Activer le journal binaire (Binary Log) : enregistre toutes les opérations de modification dans la base de données.

2. Configurez un ID de serveur unique : utilisé pour identifier les serveurs maître et esclave.

 

Configuration esclave :

 

1. Configurez également un ID de serveur unique, qui ne peut pas être identique à celui du serveur principal.

2. Spécifiez les informations de connexion du serveur principal, y compris le nom d'hôte, le port, le nom d'utilisateur et le mot de passe.

 

Le processus spécifique de réplication maître-esclave :

 

1. Le thread d'E/S du serveur esclave se connecte au serveur maître et demande au serveur maître de commencer à envoyer des journaux binaires à partir de la position spécifiée.

2. Une fois que le serveur maître a reçu la requête, il démarre un thread pour envoyer le contenu du journal binaire au serveur esclave.

3. Recevez les données du journal binaire du thread d'E/S du serveur et écrivez-les dans le journal de relais local (Relay Log).

4. Lisez le contenu du journal de relais à partir du thread SQL du serveur et relisez les opérations dans le journal dans la base de données locale pour réaliser la synchronisation des données.

 

Mode copie :

 

1. Réplication basée sur les instructions : le serveur maître enregistre les instructions SQL exécutées dans le journal binaire et le serveur esclave relit ces instructions. Cette méthode est simple, mais peut entraîner des incohérences pour certaines déclarations non déterministes.

2. Réplication basée sur les lignes : enregistre les modifications dans les lignes de données, ce qui est plus précis mais génère une plus grande quantité de journaux.

3. Réplication hybride : sélectionnez automatiquement la réplication basée sur les instructions ou sur les lignes en fonction de la situation.

 

Délai de réplication maître-esclave :

En raison du retard du réseau, des performances du serveur esclave et d'autres facteurs, il peut y avoir un certain délai entre les données du serveur esclave et celles du serveur maître.

 

Séparation en lecture et en écriture :

 

La séparation lecture-écriture est mise en œuvre sur la base de la réplication maître-esclave. Les opérations de lecture de la base de données sont affectées au serveur esclave et les opérations d'écriture sont affectées au serveur maître.

 

Moyens de parvenir à la séparation de la lecture et de l’écriture :

 

1. Configuration manuelle dans l'application : Envoi de requêtes vers différents serveurs selon le type d'opération (lecture ou écriture).

2. Utilisez des middlewares : tels que MyCat, ProxySQL, etc., qui peuvent automatiquement acheminer le trafic vers le serveur maître ou le serveur esclave en fonction du type de demande.

 

Avantages de la séparation lecture et écriture :

 

1. Améliorer les performances : les opérations d'écriture sont concentrées sur le serveur maître et les opérations de lecture sont dispersées sur plusieurs serveurs esclaves, améliorant ainsi les capacités de traitement simultané du système.

2. Équilibrage de charge : répartissez raisonnablement les opérations de lecture sur différents serveurs esclaves pour éviter une charge excessive sur un seul serveur.

 

Défis de la séparation de la lecture et de l’écriture :

 

1. Cohérence des données : en raison du retard du serveur esclave, des données non récentes peuvent être lues.

2. Basculement : lorsque le serveur maître tombe en panne, les opérations d'écriture doivent être basculées vers le nouveau serveur maître en temps opportun, et en même temps, il est nécessaire de s'assurer que le serveur esclave peut maintenir la synchronisation avec le nouveau serveur maître.

 

En résumé, la réplication maître-esclave et la séparation lecture-écriture de MySQL sont une solution d'optimisation de base de données complexe mais efficace qui doit être soigneusement conçue et configurée en fonction des besoins réels de l'entreprise et de l'architecture du système pour tirer pleinement parti de ses avantages et faire face aux problèmes possibles. .