Diese Woche war so arbeitsreich wie ein Krieg. Ich habe das Gefühl, von anderen an der Nase herumgeführt zu werden. Ich gehe jeden Tag früh raus und komme spät zurück, und es gibt endlos viel zu tun. Manchmal habe ich das Gefühl, dass DBA kein guter Job ist. Er erfordert eine hohe Stressresistenz und psychische Ausdauer. Als ich heute Nachmittag zu Mittag aß, hatte ich das Gefühl, jeden Moment zusammenzubrechen. Aber nach dem Abendessen beschloss ich trotzdem, von der Arbeit nach Hause zu gehen. Als ich auf der Straße ging und die Menschenmassen sah, die von der Arbeit gingen, dachte ich mir: Ist das nicht eine ganz normale Zeit, um von der Arbeit wegzugehen? Warum schäme ich mich immer noch, dass ich so früh gehe? Vielleicht wurde die ganze Person einer Gehirnwäsche unterzogen. Die Aktualisierung der offiziellen Kontoinhalte hat sich diese Woche um zwei Tage verzögert. Ich war am Dienstag so müde, dass ich mich einfach ausgeruht habe. Als ich gestern Abend ging, war es etwa neun Uhr. Ich war nach einem Arbeitstag sehr müde und mein Gehirn hörte nicht auf mich. Ich verursachte eine Fehlfunktion und löschte die Kontoberechtigungstabelle einer Online-Umgebung. Dann stellte ich fest, dass die Umgebung neu war und nicht gesichert worden war. Ich war am Boden zerstört und hatte das Gefühl, als würde der Himmel einstürzen. Glücklicherweise habe ich normalerweise die Angewohnheit, Änderungen beizubehalten, und ich fand einige Kontoberechtigungen, die ich zuvor für die Geschäftspartei geöffnet hatte, in meiner eigenen TXT-Datei. Ich brauchte zwei Stunden, um das Problem zu beheben, einschließlich des Tests, ob der Dienst verfügbar ist und ob die Synchronisierung rechtzeitig erfolgt. Als ich zurückkam und auf die Uhr schaute, war es bereits halb zwölf. Ich beeilte mich, auf dem offiziellen Konto zu schreiben, aber als ich fertig war, war es bereits Mitternacht, also aktualisierte ich das offizielle Konto einfach nicht. Dieses Gefühl ist wirklich schlimm. Ich weiß nicht, wo ich diesen Satz gelesen habe: „Der beste Weg, einen IT-Mitarbeiter zu ruinieren, ist, ihn so beschäftigt zu halten, dass er keine Zeit hat, sich weiterzuentwickeln.“ Ich habe das Gefühl, dass ich mich jetzt in diesem Teufelskreis befinde, und ich erinnere mich daran, was ein Kumpel einmal zu mir sagte: „Wenn Sie damit beschäftigt sind, für die Firma zu arbeiten, sollten Sie von Zeit zu Zeit aufschauen, um den Weg vor sich zu sehen.“ Ich hoffe, ich kann mich schnell anpassen. Ich glaube, dass Leute, die nach Peking gezogen sind, einige der gleichen Gefühle haben wie ich. Jeder hat vielleicht seine eigene Definition von „beschäftigt“ oder „beschäftigt sein“. In diesem Punkt denke ich, dass ich bei einigen Lesern des öffentlichen Accounts Anklang finden kann ^_^. Ich habe so viel Unsinn gesagt. Sich nur zu beschweren wird das Problem nicht lösen. Ich sollte mich auf die Gegenwart konzentrieren und etwas Nützliches schreiben. Ich hoffe, es wird allen helfen. Es kann auch als meine eigene Zusammenfassung angesehen werden. Eine Möglichkeit, ein Master-Slave-System in einer großen Datenbank zu erstellenAls ich heute Morgen zur Firma ging, stieß ich auf ein Problem. Die Alarminformationen zeigten, dass einige Master-Slave-Beziehungen in einem verteilten Cluster unterbrochen waren, d. h. die Slave-Datenbank war getrennt. Dann überprüfte ich den Grund und stellte fest, dass dies daran lag, dass der Geschäftspartner und ein anderer Kollege gleichzeitig Daten in die Master-Datenbank importierten. Die von diesen beiden Personen durchgeführten Vorgänge waren abhängig und umfassten eine große Anzahl von Transaktionen. Aufgrund von Konflikten wurden die Transaktionen zurückgesetzt, und die Slave-Datenbank stellte fest, dass die zurückzusetzenden Daten nicht mehr vorhanden waren, sodass die Slave-Datenbank getrennt wurde. Als ich dieses Problem sah, versuchte ich zunächst, die Slave-Bibliothek zu reparieren. Da es sich um eine mit gtid erstellte Master-Slave-Replikation handelte, versuchte ich, sie mit der Methode „Set Next gtid“ zu reparieren. Die spezifische Methode ist im gtid-Artikel zu sehen. Der Artikel ist unten im offiziellen Konto klassifiziert. Dann beginne ich, übernehme die Arbeit, setze automatisch GTID und stelle fest, dass das Problem behoben ist, aber nach etwa fünf Minuten ist es wieder kaputt gegangen. Offensichtlich ist diese Methode keine langfristige Lösung, und es sind noch viele Daten von der Geschäftsseite nicht eingeflossen. Nachdem wir verschiedene Optionen in Betracht gezogen hatten, mussten wir die Slave-Bibliothek schließlich neu aufbauen. Ich habe das Datenvolumen der Hauptdatenbank überprüft, das etwa 100 G beträgt. Die beiden intuitiven Methoden, die mir eingefallen sind, sind folgende: 1. Sichern Sie direkt auf dem Server 2. Backup auf der per Remote-NFS gemounteten Backup-Maschine Bei diesen beiden Methoden hat der Server selbst nicht mehr so viel freien Speicherplatz. Eine erzwungene Sicherung ist ebenfalls möglich, führt jedoch zu Festplattenalarmen, was definitiv keine gute Methode ist. Darüber hinaus dauern die beiden Schritte „Protokoll anwenden“ und „Zurückkopieren“ bei Verwendung der Xtrabackup-Methode sehr lange. Schauen wir uns die Remote-NFS-Sicherungsmaschine an. Die Sicherungsmaschine hat eine große Kapazität und löst das Festplattenproblem, kann aber die für die Remote-Übertragung erforderliche Bandbreite nicht bereitstellen. Wenn die Sicherung parallel durchgeführt wird, reicht die Bandbreite definitiv nicht aus und der gleichzeitige Sicherungsvorgang wird langsamer. Eine vorsichtige Schätzung geht davon aus, dass 5 Master-Slave-Sätze etwa 8 Stunden dauern sollten. Was sollen wir also tun? Hier wird eine relativ grobe Methode verwendet. Wir kommunizieren direkt mit der Geschäftspartei, stoppen den Dienst vorübergehend, öffnen das gegenseitige SSH-Vertrauen zwischen den beiden Maschinen, konfigurieren das SCP-Tool und kopieren die Datei durch physisches Kopieren direkt in die Slave-Bibliothek. Es wird keine Komprimierung durchgeführt, da das Komprimieren und Dekomprimieren einer 100-G-Datei viel Zeit in Anspruch nimmt. Dies bietet folgende Vorteile: Erstens: Jedes Backup ist entkoppelt und wird nicht von anderen Umgebungen beeinflusst. Zweitens: Die nativen Dateien der Master-Datenbank können über die Bandbreite zwischen Maschinen in die Slave-Datenbank importiert werden, um vollständige Datenkonsistenz sicherzustellen. Drittens: Schnellere Zeit Also habe ich es getan und nach kurzem Überlegen festgestellt, dass das Kopieren einer 100-GB-Datei mit SCP nur etwa 17 Minuten dauert, wodurch das Problem der langen Sicherungszeit gelöst wurde. Bei fünf parallel laufenden Fenstern ohne gegenseitige Beeinflussung dauert das Hochladen der Daten aus fünf Umgebungen nur etwa 30 Minuten. Nun sind die Daten der Master- und Slave-Datenbanken vollständig konsistent. Nun beginnen wir mit dem Aufbau der Slave-Datenbank. Dazu müssen wir mehrere Dinge tun: 1. Ersetzen Sie die kopierte my.cnf-Datei der Master-Datenbank durch die ursprüngliche my.cnf-Datei in der Slave-Datenbank. Andernfalls wird die Server-ID wiederholt, was zu Fehlern im Master-Slave-Setup führt. 2. Kopieren Sie die ursprüngliche Datei „slave-relay-log.index“ in der Bibliothek in das neue Verzeichnis. Andernfalls wird beim Erstellen des Master-Slaves eine Meldung angezeigt, dass die Datei nicht gefunden werden kann. 3. Ändern Sie die UUID der Slave-Bibliothek. Dies muss beim Erstellen einer GTID-Replikation verwendet werden. Die Master-Slave-Umgebung kann nicht wiederholt werden, da der Dienst sonst nicht verfügbar ist. Die Änderung dieser UUID erfolgt im Allgemeinen in der Datei auto.cnf, in der der UUID-Wert der aktuellen Bibliothek gespeichert ist. 4. Setzen Sie alle Slaves in der Slave-Datenbank zurück und verwenden Sie dann den Replikationsmodus auto_position=1, um die Master-Slave-Replikation zu erstellen. Überprüfen Sie nach dem Erstellen des Master-Slaves die Konsistenz der Master-Slave-Daten. 5. Legen Sie die schreibgeschützte Option für die Slave-Datenbank fest, um direkte DML-Operationen auf der Slave-Datenbank zu verhindern. Oben finden Sie ausführliche Informationen zum Teilen einer Idee zum Erstellen einer Master-Slave-Beziehung für eine große MySQL-Datenbank. Weitere Informationen zum Erstellen einer Master-Slave-Beziehung für eine große MySQL-Datenbank finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Eine kurze Erläuterung der HTML-Tabellen-Tags
>>: Mehrere gängige Methoden für CSS-Layouts mit gleicher Höhe
MYSQL 5.6 Bereitstellung und Überwachung der Slav...
1. v-on-Ereignisüberwachung Um DOM-Ereignisse abz...
Inhaltsverzeichnis 1 Testfälle 2 JS-Array-Dedupli...
Problembeschreibung: Nachdem das Front-End Daten ...
CSS-Transformationen sind zwar cool, wurden aber ...
Führen Sie den Befehl aus: glxinfo | grep renderi...
Inhaltsverzeichnis 1. Zusatzfunktionen 2. Beispie...
<br />Dies ist nicht nur ein Zeitalter der I...
herunterladen Download-Adresse: https://redis.io/...
In diesem Artikel wird der spezifische Code zur z...
Bei der Onlinesuche nach Methoden zur Installatio...
1. Ursache: Der Effekt, nachdem die Subbox auf Fl...
Beginnen wir mit dem Körper: Wenn Sie eine Webseit...
In diesem Artikel wird der spezifische Code des W...
In diesem Artikelbeispiel wird der spezifische Co...