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

MySQL - Une introduction détaillée sur la façon d'ajouter une nouvelle base de données à la liste de réplication maître-esclave MySQL

黄舟
Libérer: 2017-03-09 11:33:37
original
1970 Les gens l'ont consulté

MySQL - Une introduction détaillée sur la façon d'ajouter une nouvelle base de données à la liste de réplication maître-esclave MySQL

Réplication maître-esclave MySQL Normalement, nous configurerons la base de données qui doit être synchronisé, à l'aide de l'option de configuration du paramètre, binlog-do-db, peut spécifier la base de données qui doit être synchronisée sur le maître, et répliquer-do-db spécifie la base de données qui doit être synchronisée à partir du point de données de voir. (En général, seul binlog-do-db sur le maître est défini, et il n'est pas nécessaire de définir les deux en même temps. Juste au cas où, vous pouvez également ajouter répliquer-ignore-db sur l'esclave).

Aujourd'hui, le problème que j'ai rencontré était qu'une nouvelle base de données a été ajoutée au maître. Comment ajouter la base de données nouvellement ajoutée à la chaîne de réplication maître-esclave de MySQL ? (C'est-à-dire, réinitialisez la réplication maître-esclave sans re-répliquer l'intégralité de la bibliothèque).

Tout d’abord, énumérons les étapes de base de la réplication maître-esclave (le maître-esclave MySQL doit d’abord être configuré sur leurs serveurs respectifs).

1. Copiez la base de données


mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz
Copier après la connexion

Remarque : innodb utilise –single-transaction, myisam doit utiliser –lock-all-. tableaux.

2. Copiez et importez les données

pv < all-db-with-master-data.sql.gz | zcat | mysql
Copier après la connexion

3. Démarrez la base de données esclave.

slave start
Copier après la connexion

Remarque : L'instruction permettant de passer au main est déjà dans l'instruction SQL exportée, veuillez la vérifier attentivement. remplacez master par master_log_file='(nom binlog dans relay_master_log_file)', master_log_pos=(numéro exec_master_log_pos).
Alors, comment ajouter une nouvelle base de données à la structure de réplication maître-esclave existante ? Par exemple, nous souhaitons ajouter une base de données sur le serveur maître, par exemple une base de données nommée newdb. Les opérations spécifiques sont les suivantes :

1. Depuis le service, arrêtez la base de données esclave.

stop slave;
Copier après la connexion

2. Sur le serveur principal, exportez la nouvelle base de données.

mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql
Copier après la connexion

3. Modifiez le fichier my.cnf sur le serveur principal

Sur le serveur principal, modifiez le fichier my.cnf, ajoutez la nouvelle bibliothèque au binlog-do-db paramètre et redémarrez MySQL.

4. Recherchez le fichier journal actuel et son emplacement

Trouvez le fichier journal actuel et son emplacement dans le newdb.sql exporté (remplacez master par…)
puis laissez slave Le serveur s'exécute à cet emplacement.

start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;
Copier après la connexion

Parmi eux, MASTER_LOG_FILE et MASTER_LOG_POS se retrouvent en haut de la base de données exportée newdb.sql.

5. Importez la nouvelle bibliothèque sur le serveur esclave.

mysql < newdb.sql
Copier après la connexion

6. Démarrez le serveur esclave

start slave
Copier après la connexion

Le plus important est la position du log (position A) lors de l'export de la nouvelle bibliothèque sur le serveur maître. important. Ce point sert de ligne de démarcation et est importé dans la nouvelle bibliothèque.
Cette méthode est également applicable aux situations où une certaine base de données ou une certaine table de données est désynchronisée. Par exemple, si une table de la base de données maître-esclave contient des données incohérentes pour certaines raisons, alors la méthode ci-dessus n'est nécessaire que. pour supprimer l'étape de redémarrage de la base de données, et le reste Les opérations sont fondamentalement les mêmes


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!

Étiquettes associées:
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!