mysql sauvegarde configuration maître-esclave

MySQL replication principe maître-esclave
enregistré sur celui - ci le mysql-bin.xxx binaire (qui peut être vu dans le répertoire de fichiers de données dans le répertoire mysql) sont dans chaque opération du serveur de base de données primaire, le numéro de compte dédié à partir du serveur de fils I / O connectez - vous au serveur principal pour lire le fichier binaire, le contenu du fichier sont écrits dans votre fichier relais journal de journal de relais local, et exécute ensuite des instructions SQL des threads du serveur SQL basé sur le journal de relais contenu.

principe

Préparation
serveur maître doit avoir le même état initial

Le serveur principal pour synchroniser les chaînes de base de données, d'éviter les changements de données synchrones

MySQL> db utiliser;
MySQL> Tableaux avec la chasse d' eau Verrouillage de lecture,
serveur de base de données d'exportation de données primaires (un exemple où db)

MySQL> -pxxxx la mysqldump -uroot-DB> db.sql;
MySQL> -R & lt -ndt la mysqldump -uroot-DB -pxxxx> db.sql
la sauvegarde est terminée, le déverrouillage serveur de base de données maître

mysql> tables de déverrouillage, les
données initiales importées à partir de la base de données de serveur

MySQL> Créer la base de données DB,
MySQL> utilisation DB,
MySQL> Source db.sql,
À ce stade, le maître de la base de données cohérente. Ici configuré synchronisation maître-esclave.

La commande ci-dessus est d'exporter toutes les tables et structures de données, les fonctions, et si vous voulez exporter d'utiliser des procédures stockées

serveur principal est configuré
pour modifier la configuration de MySQL

vi /etc/my.cnf
ajoutée [mysqld] dans laquelle:

# Base de données client maître numéro d'identification
server_id = 1
# activer la journalisation binaire
log-bin = mysql-bin
nom de la base # vous voulez copier, si vous copiez plusieurs bases de données, définissez cette option pour répéter les
binlog-do-db = db
# à partir du serveur mise à jour reçue du serveur principal crédité sur les fichiers de log binaires de l'esclave dans le
journal-Slave-les mises à jour
# binlog écriture fréquence de contrôle. Combien de transactions par exécution en écriture une fois (ce paramètre et une grande performance, mais peut réduire les pertes causées par l'effondrement de MySQL)
sync_binlog = 1
# Ce paramètre est généralement utilisé dans la synchronisation principale principale décalée de la valeur ajoutée, pour empêcher la violation clé
=. 1 auto_increment_offset
# ce paramètre est généralement utilisé dans la synchronisation primaire principal, étant donné que la valeur de décalage est utilisée pour empêcher la violation de clé
auto_increment_increment = 1
# lorsque le nombre de jours de log binaire supprimé automatiquement, la valeur par défaut est 0, ce qui indique « pas automatiquement supprimés », et commencer peut être retiré lorsque le cycle de log binaire
expire_logs_days = 7
# fonction de copie à l' esclave
log_bin_trust_function_creators = 1
redémarrage MySQL, permet aux données synchrones à partir du serveur pour créer un compte

# Créer un compte esclave sync_account, mot de passe mot de passe
MySQL> Grant réplication esclave sur . Pour « sync_account » @ « slave_db_ip » Identifié par « mot de passe »;
# mise à jour les privilèges de base de données
mysql> flush privileges,
afficher l'état du serveur principal

Rappelez-vous les valeurs de résultat suivantes: Fichier et position, lors de la configuration de la bibliothèque sera utilisée.

MySQL> Afficher maître Status \ G;
******************************************************** 1. Ligne ****************
fichier: MySQL-bin. # 000033 actuelle enregistrement du journal
position: 337523 # position d'enregistrement du journal
Binlog_Do_DB:
Binlog_Ignore_DB:
après cette étape est de ne pas utiliser la base de données principale, la valeur d'état est modifiée pour éviter

Configuration du serveur
pour modifier la configuration de MySQL

vi /etc/my.cnf
ajoutée [mysqld] dans

2 = le server_id
log = MySQL-bin bin -
log-Slave-Mises à jour
sync_binlog = 0
opérations #log tampon une fois par seconde pour écrire le fichier journal, le fichier journal et de rinçage (disque de brosse) sont réalisées simultanément. Dans ce mode lorsque la transaction est validée, ne prendra pas l'initiative d'écrire à l' opération disque est déclenchée
innodb_flush_log_at_trx_commit = 0
# spécifier quelle bibliothèque que vous souhaitez copier esclave
replicate-do-db = db
#mysql copie maître du temps, quand entre maître et esclave pannes de réseau, mais le cas de indétectable maître et esclave ( par exemple un problème de pare - feu ou de routage). Après l'esclave attendra le nombre de secondes slave_net_timeout mis à considérer le réseau tombe en panne, puis reconnectez et rattraper son retard avant cette fois -ci les données principales bibliothèque
Slave-NET-timeout = 60
log_bin_trust_function_creators = 1
redémarrage du serveur.

exécution de la commande synchrone

# Pour effectuer les commandes synchrones, le serveur primaire IP, compte synchronisation de mot de passe, la position de synchronisation
mysql> maître de changement de MASTER_HOST = '10 .10.20.111 'MASTER_USER =' sync_account 'MASTER_PASSWORD =' mot de passe 'MASTER_LOG_FILE =' mysql-bin.000033 ' , MASTER_LOG_POS = 337 523;
synchronisation # tour
mysql> start esclave
Vue de l'état du serveur

MySQL> Afficher esclave Status \ G;
*************************** 1. Ligne ************ ***************
Slave_IO_State: En attente de maître à l'envoi de l' événement
MASTER_HOST: 10.10.20.111
MASTER_USER: le compte
MASTER_PORT: 3306
Connect_Retry: 60
MASTER_LOG_FILE: MySQL-bin.000033
Read_Master_Log_Pos: 337 523
Relay_Log_File: DB2 bin.000002 - relais
RELAY_LOG_POS: 337 686
Relay_Master_Log_File: MySQL-bin.000033
Slave_IO_Running: Oui
Slave_SQL_Running: Oui
Replicate_Do_DB:
Replicate_Ignore_DB:
Slave_IO_Running et processus Slave_SQL_Running doivent fonctionner correctement, que l' état Oui, sinon votre synchronisation a échoué. Si le défaut de voir erreur mysql détails de l' erreur spécifique du journal pour localiser le problème. Enfin , vous pouvez aller à la base de données sur le serveur principal, créez des données de table de mise à jour ou à la synchronisation de test.

Je suppose que tu aimes

Origine www.cnblogs.com/MartyCode/p/12512253.html
conseillé
Classement