MySQL-Beispielcode für bidirektionales Hot-Backup auf zwei Maschinen
1. Beschreibung
MySQL verwendet derzeit nicht die Dual-Machine-Hot-Backup-Strategie. Aufgrund der hohen Verfügbarkeit des Systems ist jedoch nach der Implementierung ein Dual-Machine-Hot-Backup erforderlich Daten-Hot-Backup. Es kann die Trennung von Lesen und Schreiben weiter realisieren und die Leistung des Datenzugriffs in Anwendungen verbessern. Warum habe ich derzeit nicht ein paar inaktive Computer, also habe ich damit begonnen?
Maschine A: (10.0.9.199), Maschine B: (10.0.9.1)
2. Implementierungsschritte
Da es sich zunächst um ein Zwei-Wege-Hot-Backup handelt Richten Sie eine Datenbank (db1) als Master und die Backup-Datenbank (db2) auf B als Slave ein. Dies ist eine Richtung. Konfigurieren Sie dann db2 als Master und db1 als Slave (1) Ändern Sie die Konfigurationsdatei my.cnf von A und B und fügen Sie den folgenden Inhalt hinzu
log-bin=mysql-0-bin #设定生成log文件名 #机器A配置 server-id=9199 # 主ID,与从ID不能相同 binlog-do-db=webgps4_0 #设置同步数据库名 binlog-ignore-db=mysql #避免同步mysql用户配置 replicate-do-db=webgps4_0 // 两处webgps4_0是一致的 replicate-ignore-db=mysql
log-bin=mysql-1-bin #设定生成log文件名 #以下为机器B配置 server-id=9001 # 主ID,与从ID不能相同 binlog-do-db=webgps4_0 #设置同步数据库名 binlog-ignore-db=mysql #避免同步mysql用户配置 replicate-do-db=webgps4_0 // 两处webgps4_0是一致的 replicate-ignore-db=mysql
(3) Benutzerberechtigungen festlegen
CREATE USER 'test'@'10.0.9.1' IDENTIFIED BY '123456'; //test为账号,10.0.9.1表示账号只能从指定id也就是B机器访问,最后123456是密码,机器A上执行 CREATE USER 'test'@'10.0.9.199' IDENTIFIED BY '123456'; //机器B上执行
(4) Legen Sie die Master-Slave-Beziehung zwischen A und B und die Master-Slave-Beziehung zwischen B und A fest
grant replication slave,reload,create user, super on *.* to 'test'@'10.0.9.1' IDENTIFIED BY '123456'; // 机器A上执行 grant replication slave,reload,create user, super on *.* to 'test'@'10.0.9.199' IDENTIFIED BY '123456'; // 机器B上执行
mysql> change master to -> master_host = '10.0.9.1', -> master_port = 3306, -> master_user = 'test', -> master_password = '123456'; //机器A上执行,A为slave mysql> change master to -> master_host = '10.0.9.199', -> master_port = 3306, -> master_user = 'test', -> master_password = '123456'; //机器B上执行,B为slave
3. Anweisungen zur bidirektionalen Sicherung
- Die Slave-Bibliothek muss genau wissen, von welcher Offset-Position welcher Bin-Protokolldatei in der Hauptbibliothek aus mit dem Kopieren begonnen werden soll.
- Die Slave-Bibliothek kann nur aus der Hauptbibliothek kopieren Die angegebene Datenbank oder einige Datentabellen der Datenbank
- Die Datenbanknamen der Master-Datenbank und der Slave-Datenbank können unterschiedlich sein, es wird jedoch dennoch empfohlen um denselben Namen zu verwenden
- Die MySQL-Versionen der Master-Datenbank und der Slave-Datenbank müssen konsistent sein
- Ab MySQL3.23.15, MySQL unterstützt die asynchrone Replikation in eine Richtung. Mit anderen Worten: Ein MySQL-Server fungiert als Master (Hauptdatenbank), ein oder mehrere MySQL-Server fungieren als Slaves (Slave-Datenbanken) und Daten werden asynchron vom Master auf die Slaves repliziert. Beachten Sie, dass diese Replikation asynchron ist und sich von der synchronen Replikationsimplementierung von MySQL unterscheidet (diese Implementierung wird MySQL Cluster genannt). Wenn die Hauptbibliothek aktualisiert wird, schreibt die Hauptbibliothek die SQL des Aktualisierungsvorgangs in das Binärprotokoll (Bin-Protokoll) und verwaltet einen Index der Binärprotokolldatei, um die Rotation der Protokolldatei zu erleichtern (Rotieren). Wenn die Slave-Bibliothek mit der asynchronen Replikation beginnt, startet die Slave-Bibliothek zwei E/A-Threads, von denen einer eine Verbindung zur Hauptbibliothek herstellt. Dadurch muss die Hauptbibliothek die Änderungen im Binärprotokoll an die Slave-Bibliothek übertragen und das zurückgegebene Protokoll schreiben lokal. Ein anderer Thread ist dafür verantwortlich, das lokal geschriebene Binärprotokoll zu lesen und es lokal auszuführen, um diese Änderung widerzuspiegeln. Die ältere Version ermöglichte beim Kopieren nur einen I/O-Thread, um diese beiden Teile der Funktion zu implementieren.
Das obige ist der detaillierte Inhalt vonMySQL-Beispielcode für bidirektionales Hot-Backup auf zwei Maschinen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fähigkeiten zur Verarbeitung von Big-Data-Strukturen: Chunking: Teilen Sie den Datensatz auf und verarbeiten Sie ihn in Blöcken, um den Speicherverbrauch zu reduzieren. Generator: Generieren Sie Datenelemente einzeln, ohne den gesamten Datensatz zu laden, geeignet für unbegrenzte Datensätze. Streaming: Lesen Sie Dateien oder fragen Sie Ergebnisse Zeile für Zeile ab, geeignet für große Dateien oder Remote-Daten. Externer Speicher: Speichern Sie die Daten bei sehr großen Datensätzen in einer Datenbank oder NoSQL.

Die MySQL-Abfrageleistung kann durch die Erstellung von Indizes optimiert werden, die die Suchzeit von linearer Komplexität auf logarithmische Komplexität reduzieren. Verwenden Sie PreparedStatements, um SQL-Injection zu verhindern und die Abfrageleistung zu verbessern. Begrenzen Sie die Abfrageergebnisse und reduzieren Sie die vom Server verarbeitete Datenmenge. Optimieren Sie Join-Abfragen, einschließlich der Verwendung geeigneter Join-Typen, der Erstellung von Indizes und der Berücksichtigung der Verwendung von Unterabfragen. Analysieren Sie Abfragen, um Engpässe zu identifizieren. Verwenden Sie Caching, um die Datenbanklast zu reduzieren. Optimieren Sie den PHP-Code, um den Overhead zu minimieren.

Das Sichern und Wiederherstellen einer MySQL-Datenbank in PHP kann durch Befolgen dieser Schritte erreicht werden: Sichern Sie die Datenbank: Verwenden Sie den Befehl mysqldump, um die Datenbank in eine SQL-Datei zu sichern. Datenbank wiederherstellen: Verwenden Sie den Befehl mysql, um die Datenbank aus SQL-Dateien wiederherzustellen.

Wie füge ich Daten in eine MySQL-Tabelle ein? Mit der Datenbank verbinden: Stellen Sie mit mysqli eine Verbindung zur Datenbank her. Bereiten Sie die SQL-Abfrage vor: Schreiben Sie eine INSERT-Anweisung, um die einzufügenden Spalten und Werte anzugeben. Abfrage ausführen: Verwenden Sie die Methode query(), um die Einfügungsabfrage auszuführen. Bei Erfolg wird eine Bestätigungsmeldung ausgegeben.

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

So verwenden Sie gespeicherte MySQL-Prozeduren in PHP: Verwenden Sie PDO oder die MySQLi-Erweiterung, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Bereiten Sie die Anweisung zum Aufrufen der gespeicherten Prozedur vor. Führen Sie die gespeicherte Prozedur aus. Verarbeiten Sie die Ergebnismenge (wenn die gespeicherte Prozedur Ergebnisse zurückgibt). Schließen Sie die Datenbankverbindung.

Das Erstellen einer MySQL-Tabelle mit PHP erfordert die folgenden Schritte: Stellen Sie eine Verbindung zur Datenbank her. Erstellen Sie die Datenbank, falls sie nicht vorhanden ist. Wählen Sie eine Datenbank aus. Tabelle erstellen. Führen Sie die Abfrage aus. Schließen Sie die Verbindung.

Oracle-Datenbank und MySQL sind beide Datenbanken, die auf dem relationalen Modell basieren, aber Oracle ist in Bezug auf Kompatibilität, Skalierbarkeit, Datentypen und Sicherheit überlegen, während MySQL auf Geschwindigkeit und Flexibilität setzt und eher für kleine bis mittlere Datensätze geeignet ist. ① Oracle bietet eine breite Palette von Datentypen, ② bietet erweiterte Sicherheitsfunktionen, ③ ist für Anwendungen auf Unternehmensebene geeignet; ① MySQL unterstützt NoSQL-Datentypen, ② verfügt über weniger Sicherheitsmaßnahmen und ③ ist für kleine bis mittlere Anwendungen geeignet.
