Maison > base de données > tutoriel mysql > le corps du texte

Comment implémenter la réplication asynchrone et la réplication différée des données dans MySQL ?

王林
Libérer: 2023-07-31 12:58:49
original
1468 Les gens l'ont consulté

MySQL est un système de gestion de bases de données relationnelles couramment utilisé dans les applications pratiques, nous rencontrons souvent des scénarios nécessitant la réplication de données. La réplication des données peut être divisée en deux formes : la réplication synchrone et la réplication asynchrone. La réplication synchrone signifie que les données doivent être copiées dans la base de données esclave immédiatement après que la base de données maître ait écrit les données, tandis que la réplication asynchrone signifie que les données peuvent être retardées pendant un certain temps après que la base de données maître ait écrit les données avant la copie. Cet article se concentrera sur la façon d'implémenter la réplication asynchrone et la réplication différée des données dans MySQL.

Tout d'abord, afin d'implémenter la réplication asynchrone et la réplication différée, nous devons définir le format binlog dans le fichier de configuration MySQL en mode ROW. Ouvrez le fichier de configuration MySQL (généralement my.cnf) et ajoutez la configuration suivante :

[mysqld]
binlog_format=ROW
Copier après la connexion

Ensuite, nous devons créer un environnement de réplication maître-esclave. Tout d'abord, démarrez le service MySQL de la base de données principale, créez un compte pour la réplication et accordez les autorisations appropriées :

CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
GRANT replication slave ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;
Copier après la connexion
Copier après la connexion

Ensuite, modifiez le fichier de configuration MySQL et ajoutez la configuration suivante à la base de données principale :

[mysqld]
server-id=1
log-bin=master
Copier après la connexion

Ensuite, redémarrez MySQL dans la base de données principale. base de données Servir.

Ensuite, démarrez le service MySQL dans la bibliothèque esclave, créez également un compte pour la réplication et donnez les autorisations appropriées :

CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
GRANT replication slave ON *.* TO 'replication'@'%';
FLUSH PRIVILEGES;
Copier après la connexion
Copier après la connexion

Modifiez le fichier de configuration MySQL dans la bibliothèque esclave et ajoutez la configuration suivante :

[mysqld]
server-id=2
relay-log=slave
Copier après la connexion

Redémarrez la bibliothèque esclave Service MySQL.

Exécutez la commande suivante dans la bibliothèque principale pour obtenir les informations d'état de la bibliothèque principale actuelle :

SHOW MASTER STATUS;
Copier après la connexion

Enregistrez les valeurs de Fichier et de Position, qui seront utilisées pour configurer la réplication dans la bibliothèque esclave.

Ensuite, exécutez la commande suivante dans la bibliothèque esclave pour configurer la réplication :

CHANGE MASTER TO MASTER_HOST='主库IP地址', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='主库的File值', MASTER_LOG_POS=主库的Position值;
Copier après la connexion

Ensuite, démarrez le processus de réplication :

START SLAVE;
Copier après la connexion

Dans la bibliothèque esclave, vous pouvez utiliser la commande suivante pour afficher l'état de la réplication :

SHOW SLAVE STATUSG;
Copier après la connexion

Suivant , nous allons décrire comment implémenter la réplication retardée. Dans MySQL 5.6.6 et supérieur, MySQL fournit un paramètre pour contrôler le délai de réplication - slave_ending_jobs_size. Ce paramètre est utilisé pour contrôler le nombre de transactions en attente d'être répliquées à partir de la base de données. Nous pouvons implémenter une réplication retardée en définissant la valeur de ce paramètre de manière appropriée.

Exécutez la commande suivante dans la bibliothèque esclave pour définir le délai de réplication à 30 secondes :

SET GLOBAL slave_pending_jobs_size=100000;
Copier après la connexion

Enfin, vérifions si la réplication et la réplication différée ont réussi. Nous insérons une donnée dans la bibliothèque principale, puis vérifions si la copie est réussie dans la bibliothèque esclave :

Exécutez la commande suivante dans la bibliothèque principale pour insérer une donnée :

USE 数据库名;
INSERT INTO 表名 (字段1, 字段2) VALUES ('value1', 'value2');
Copier après la connexion

Ensuite, exécutez la commande suivante dans la bibliothèque esclave pour vérifier si la copie a réussi :

USE 数据库名;
SELECT * FROM 表名;
Copier après la connexion

Si les données insérées sont interrogées avec succès depuis la bibliothèque, cela signifie que la réplication et la réplication différée ont été mises en œuvre avec succès.

En résumé, cet article présente comment implémenter la réplication asynchrone et la réplication différée des données dans MySQL. La réplication asynchrone des données peut être obtenue en définissant le format binlog dans le fichier de configuration MySQL en mode ROW et en configurant les paramètres et autorisations correspondants dans la base de données maître-esclave. La réplication retardée des données peut être obtenue en définissant la valeur du paramètre de délai de réplication slave_ending_jobs_size. Ces fonctions peuvent nous aider à mieux gérer et utiliser la base de données MySQL.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!