1. Konzept 1. Der Unterschied zwischen Hot Backup und Backup Hot Backup steht für: High Available (HA), während Backup sich auf Backup bezieht, eine Art der Datensicherung. Dabei handelt es sich um zwei unterschiedliche Konzepte und auch die dazugehörigen Produkte sind hinsichtlich ihrer Funktionen zwei völlig unterschiedliche Produkte. Hot Backup stellt in erster Linie die Geschäftskontinuität sicher und die Implementierungsmethode besteht in der Übertragung des Fehlerpunkts. Der Hauptzweck einer Datensicherung besteht darin, durch die Erstellung einer Kopie einen Datenverlust zu verhindern. Daher liegt beim Backup der Schwerpunkt eher auf der Datenwiederherstellung als auf einem Anwendungsfailover. 2. Was ist Hot-Standby? Im weiteren Sinne bedeutet Hot-Standby, dass sich zwei Server gegenseitig sichern und für wichtige Dienste gemeinsam den gleichen Dienst ausführen. Bei einem Serverausfall kann ein anderer Server die Serviceaufgabe übernehmen und so automatisch sicherstellen, dass das System seine Dienste weiterhin bereitstellen kann, ohne dass ein menschliches Eingreifen erforderlich ist. Im engeren Sinne ist Hot-Standby die Verwendung von zwei Servern, die sich gegenseitig sichern und gemeinsam denselben Dienst ausführen, wobei einer der Arbeitsserver (Primärserver) und der andere der Sicherungsserver (Standbyserver) ist. Wenn das System normal läuft, stellt die Arbeitsmaschine Dienste für das Anwendungssystem bereit, und die Backup-Maschine überwacht den Betrieb der Arbeitsmaschine (normalerweise durch Heartbeat-Diagnose, und die Arbeitsmaschine erkennt auch, ob die Backup-Maschine normal läuft). Wenn die Arbeitsmaschine abnormal wird und den Betrieb des Anwendungssystems nicht unterstützen kann, übernimmt die Backup-Maschine aktiv die Arbeit der Arbeitsmaschine und unterstützt weiterhin wichtige Anwendungsdienste, um einen unterbrechungsfreien Betrieb des Systems sicherzustellen. Hot-Standby ist eine Hochverfügbarkeitslösung für Ausfälle von IT-Kernservern, Speichern und Netzwerk-Routing-Switches. OK, lassen Sie mich vorstellen, wie MySQL Dual-Machine Hot Standby auf Alibaba Cloud Server implementiert wird. Die Details sind wie folgt: Da der Alibaba Cloud Server keine Keepalive-virtuelle IP unterstützt, ist es unmöglich, MySQL Dual-Machine-Hot-Standby über Keepalive zu implementieren. Es gibt zwei Möglichkeiten, den Dual-Machine-Hot-Standby von Alibaba Cloud zu implementieren: 1. Kaufen Sie die erweiterte Version der Cloud-Datenbank von Alibaba Cloud, die mit einer Slave-Datenbank geliefert wird. Wenn die Master-Datenbank ausfällt, wird automatisch auf die Slave-Datenbank umgeschaltet. 2Hier sprechen wir hauptsächlich über die zweite Methode, bei der MySQL jeweils auf zwei Alibaba Cloud-Servern bereitgestellt wird, um eine Master-Master-Synchronisierung von MySQL zu erreichen. Ich werde mich hier nicht auf die MySQL-Master-Master-Synchronisation konzentrieren. Sie können selbst auf Baidu danach suchen. Wenn Sie es brauchen, schreibe ich vielleicht später einen Artikel. Angenommen, die MySQL-Master-Master-Synchronisierung wurde implementiert. Wie geht man damit um? Da Springboot verwendet wird, müssen Sie die YML-Datei verarbeiten und dann eine E-Mail an mehrere Personen senden. Hier führt der Host die geplante Aufgabe aus, und die Sicherungsmaschine kann sie bei Bedarf auch entsprechend ausführen. Da ich MySQL über Docker bereitgestellt habe, habe ich # Kodierung: utf8 Unterprozess importieren von email.mime.text importiere MIMEText smtplib importieren Betriebssystem importieren #Da hier Java Springboot verwendet wird, müssen Sie beim Wechsel zum Standby-Computer einige YML-Dateien ändern YML_PATH = '' NEW_YML = '' msg_from = '' # E-Mail-Adresse des Absenders passwd = '' # Geben Sie den Autorisierungscode der E-Mail-Adresse des Absenders ein msg_to = [] def check_mysql(): res = Unterprozess.Popen('docker ps |grep mysql', stdout=Unterprozess.PIPE, stderr=Unterprozess.PIPE, shell=True) stdout, stderr = res.communicate() wenn stdout: res_status = Unterprozess.Popen("docker ps |grep mysql| awk '{print $7}'", stdout=Unterprozess.PIPE, stderr=Unterprozess.PIPE, Shell=True) aus, err = res_status.communicate() wenn out.strip() == "Nach oben": drucken 'mysql ist ok' anders: Drucken Sie „MySQL ist defekt. Wechseln Sie zur Standby-Maschine“. Flagge = judge_mysql_string() if-Flag: print 'Bereits mit der Backup-Maschine verbunden, kein Wechsel nötig' anders: switch_mysql() anders: Drucken Sie „MySQL ist defekt. Wechseln Sie zur Standby-Maschine“. Flagge = judge_mysql_string() if-Flag: print 'Bereits mit der Backup-Maschine verbunden, kein Wechsel nötig' anders: switch_mysql() def switch_mysql(): drucken '---yml kopieren----' Unterprozess.Aufruf('cp {} {}'.format(NEW_YML, YML_PATH), shell=True) subprocess.call('Docker startet Tomcat neu', Shell=True) Betreff = „MySQL-Hostfehler“ info = 'MySQL-Hostfehler, wurde auf die Backup-Maschine umgeschaltet, bitte überprüfen Sie das Hostproblem und beheben Sie es rechtzeitig, wenn Sie zurückschalten müssen,' \ Inhalt = '<html><meta charset="UTF-8"><body><p style="color: red">{}</p> </body></html>'.Format(Info) send_email(Betreff, Inhalt) drucken '----Endschalter---' def send_email(Betreff, Inhalt): msg = MIMEText(Inhalt, 'html', 'utf-8') msg['Betreff'] = Betreff msg['Von'] = msg_von msg['An'] = ','.join(msg_an) versuchen: s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(msg_from, passwd) s.sendmail(msg_from, msg_to, msg.als_string()) außer Ausnahme als e: drucken Endlich: s.beenden() def judge_mysql_string(): mit open(os.path.join(YML_PATH, 'application.yml'),'r') als f: res = f.lesen() wenn „Ihre IP“ in res: returniere True anders: returniere False mysql() Zusammenfassen Oben sind zwei Möglichkeiten, MySQL Dual-Machine Hot Standby auf Alibaba Cloud Server manuell zu implementieren. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Notieren Sie einen Fehlerbehebungsbericht für die hohe CPU-Auslastung des Tomcat-Prozesses
>>: Eine kurze Erläuterung der Rolle und Funktionsweise von Schlüsseln in Vue3
In diesem Artikelbeispiel wird der spezifische Co...
Viele Leute sagen, dass IE6 PNG-Transparenz nicht...
Umfeld: 1 CentOS Linux-Version 7.5.1804 (Core) Fi...
MySQL 8.0.12 Download- und Installations-Tutorial...
Unordentliches Protokoll Nginx wird im täglichen ...
Definition Calcite kann SQL vereinheitlichen, ind...
Der von ${param} übergebene Parameter wird als Te...
In früheren Blogbeiträgen habe ich mich auf einige...
<br />Das Internet verändert sich ständig un...
1. Mehrere Grenzen[1] Hintergrund: Box-Shadow, Um...
Das Erstellen neuer Images aus vorhandenen Images...
Index Condition Pushdown (ICP) wird in MySQL 5.6 ...
Kapitel 1 <br />Das wichtigste Prinzip, um ...
In diesem Artikel wird der spezifische Code von j...
nginx Übersicht nginx ist ein kostenloser, quello...