Maison > Article > base de données > Comment implémenter la réplication asynchrone et la réplication différée des données dans MySQL ?
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
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;
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
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;
Modifiez le fichier de configuration MySQL dans la bibliothèque esclave et ajoutez la configuration suivante :
[mysqld] server-id=2 relay-log=slave
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;
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值;
Ensuite, démarrez le processus de réplication :
START SLAVE;
Dans la bibliothèque esclave, vous pouvez utiliser la commande suivante pour afficher l'état de la réplication :
SHOW SLAVE STATUSG;
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;
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');
Ensuite, exécutez la commande suivante dans la bibliothèque esclave pour vérifier si la copie a réussi :
USE 数据库名; SELECT * FROM 表名;
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!