Quelles sont les techniques de reprise après sinistre et de basculement de base de données pour apprendre MySQL ?
1. Introduction générale
À l'ère d'Internet d'aujourd'hui, la base de données est le cœur de l'application et stocke une grande quantité de données. Cependant, les serveurs de bases de données rencontrent également diverses pannes, telles que des pannes matérielles, des interruptions de réseau, des pannes de courant, etc. Afin de garantir une haute disponibilité continue et la sécurité des données, la reprise après sinistre et le basculement des bases de données sont devenus des tâches importantes dans l’exploitation et la maintenance des bases de données. En tant que l'une des bases de données relationnelles les plus populaires, MySQL dispose d'une variété de technologies de reprise après sinistre et de basculement. Voici quelques techniques couramment utilisées.
2. Compétences en matière de reprise après sinistre MySQL
Les étapes de configuration pour la réplication maître-esclave sont les suivantes :
1) Activez la fonction de journal binaire (binlog) sur la base de données maître et configurez un server_id unique.
2) Configurez les paramètres de réplication sur la base de données esclave, tels que la spécification de master_host, master_user, master_password, etc.
3) Démarrez la base de données esclave, connectez-la à la base de données maître et copiez les données.
Exemple de code :
Sur le maître :
# 在配置文件中开启binlog [mysqld] server_id=1 log_bin=mysql-bin
Sur l'esclave :
# 在配置文件中配置复制参数 [mysqld] server_id=2 log_bin=mysql-bin [mysqldump] master_host=master_ip master_user=replication_user master_password=replication_password
Exemple de code :
Sur Master1 :
[mysqld] server_id=1 log_bin=mysql-bin # 配置与下一个主库的连接 log_slave_updates=1 relay_log=mysql-relay-bin replicate_do_db=db1 replicate-ignore-db=mysql replicate-ignore-db=source_db replicate-ignore-db=destination_db replicate-ignore-db=performance_schema replicate-ignore-db=information_schema replicate-ignore-db=innodb replicate-ignore-db=slave_lab replicate-wild_ignore-table=server1_db1.binlogtest* replicate-wild_ignore-table=*.hg.*,*.git.* replicate-wild-ignore-table=db2_v2p2_gfhb.*.* replicate-wild=wild123.blog_table_name_to_replicate [mysqldump] master_host=master2_ip master_user=master2_user master_password=master2_password
Sur Master2 :
[mysqld] server_id=2 log_bin=mysql-bin # 配置与下一个主库的连接 log_slave_updates=1 relay_log=mysql-relay-bin replicate_do_db=db2 replicate-ignore-db=mysql replicate-ignore-db=source_db replicate-ignore-db=destination_db replicate-ignore-db=performance_schema replicate-ignore-db=information_schema replicate-ignore-db=innodb replicate-ignore-db=slave_lab replicate-wild_ignore-table=server2_db1.binlogtest* replicate-wild_ignore-table=*.hg.*,*.git.* replicate-wild-ignore-table=db3_v2p2_gfhb.*.* replicate-wild=wild321.blog_table_name_to_replicate [mysqldump] master_host=master3_ip master_user=master3_user master_password=master3_password
Les deux premières étapes sont configurées sur la première bibliothèque principale et la configuration sur la deuxième bibliothèque principale est similaire. Chaque base de données sert de base de données esclave de la base de données maître suivante, formant ainsi une chaîne de réplication.
3. Compétences de basculement MySQL
Détection des battements de cœur : vérifiez si la base de données principale est active en envoyant régulièrement des paquets de battements de cœur à la base de données principale.
Mécanisme de basculement : lorsque la détection du rythme cardiaque détecte que la base de données principale n'est pas disponible, la base de données esclave est automatiquement promue vers la base de données principale et les configurations pertinentes sont mises à jour.
Exemple de code :
#!/usr/bin/env python import os import time VIP = '192.168.1.100' Script = '/opt/mysql_failover.sh' def detect_db(): while True: ret = os.system('ping -c 1 '+VIP) if ret: print('MySQL is down') os.system(Script + ' down') else: print('MySQL is up') os.system(Script + ' up') time.sleep(5) detect_db()
Pacemaker est une solution open source mature qui gère les ressources et la gestion dynamique dans un cluster via un gestionnaire de ressources et un moteur de décision.
Keepalived est une solution légère à haute disponibilité qui s'appuie sur VRRP (Virtual Router Redundancy Protocol) et LVS (Linux Virtual Server) pour le basculement.
Les deux solutions ci-dessus peuvent fournir des fonctions de haute disponibilité et de basculement automatique. Pour des détails de configuration spécifiques, veuillez vous référer à la documentation officielle.
Pour résumer, apprenez les compétences de reprise après sinistre et de basculement de la base de données MySQL, vous pouvez utiliser la réplication maître-esclave pour réaliser la sauvegarde et le basculement des données, la chaîne de réplication pour réaliser une sauvegarde distribuée, la détection automatique des pannes et la commutation pour obtenir un basculement automatique et configurer des niveaux élevés. clusters de disponibilité Assurer une haute disponibilité. L'application flexible de ces techniques peut non seulement garantir la disponibilité continue de la base de données, mais également améliorer la stabilité et la fiabilité du système.
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!