Hintergrund:Da die Projekte des Unternehmens dem Druck der Parallelität in letzter Zeit nicht standhalten zu können scheinen, steht eine Optimierung unmittelbar bevor. Da es sich bei dem aktuellen System um ein Einzeldatenbanksystem handelt, haben wir unser Bestes getan, um es nach Möglichkeit zu optimieren. Der Datenbankengpass begrenzt die gleichzeitigen Kapazitäten des Projekts jedoch immer noch erheblich. Daher haben wir überlegt, eine Datenbank hinzuzufügen, um die Parallelitätsfunktionen des Projekts zu verbessern. Ideen:1: Erstellen Sie eine zentrale Bibliothek: hauptsächlich zum Speichern historischer Daten. Als Abfrage verwenden. 2: Erstellen Sie mehrere Geschäftsbibliotheken, um die hohen Parallelitätsfunktionen des Projekts zu erfüllen. Demo-Umgebung:1: VM Ware virtuelle Maschine - CentOS 7
2: MySQL 5.7 Schritt1: Hauptbibliothek 100 Richten Sie my.cnf ein. [mysqld] lower_case_table_names = 1 # Bei Tabellennamen wird die Groß-/Kleinschreibung nicht beachtet server-id = 100 log_bin = mysql-bin #Binlog-Aufzeichnung starten binlog_format = MIXED #Jedes Mal, wenn eine Transaktion festgeschrieben wird, leert MySQL das Binärprotokoll. Dies ist die sicherste Einstellung, hat aber den größten Leistungsverlust. #In diesem Fall kann das System die Daten einer einzigen Transaktion verlieren, wenn das Host-Betriebssystem, auf dem sich die Datenbank befindet, beschädigt ist oder die Stromversorgung plötzlich ausfällt. #Obwohl Binlog sequentielle IO ist, werden jedoch mehrere Transaktionen gleichzeitig übermittelt, wenn sync_binlog=1 gesetzt ist. #Es wirkt sich auch erheblich auf die MySQL- und IO-Leistung aus. Nach Bedarf einstellen. sync_binlog = 1 # Anzahl der Tage, nach denen Binärprotokolle automatisch gelöscht werden/ablaufen. Der Standardwert ist 0, was bedeutet, dass keine automatische Löschung erfolgt. Ablaufdatum der Protokolle: 7 #binlog_cache_size = 128 m #max_binlog_cache_size = 512 m #max_binlog_size = 256 M # Die Datenbank muss synchronisiert werden binlog-do-db = dev # Es ist keine Synchronisierungsbibliothek erforderlich. binlog-ignore-db = mysql binlog_ignore_db = Informationsschema binlog_ignore_db = Leistungsschema binlog_ignore_db = sys Datenverzeichnis=/var/lib/mysql Einrichten von Slave-Benutzern #mysql -uroot -p # Passwort: xxxxxx # mysql> GRANT REPLICATION SLAVE ON *.* TO ‚slave‘@‚%‘ IDENTIFIED BY ‚root1234‘; # mysql> Berechtigungen leeren; # aufhören; # systemctl mysqld neu starten; # Masterstatus anzeigen \G #**************************** 1. Zeile ************************** Datei:mysql-bin.000001 Position: 886 Binlog_Do_DB: Entwickler Binlog_Ignore_DB: MySQL, Informationsschema, Leistungsschema, Sys Ausgeführtes_Gtid_Set: 1 Zeile im Satz (0,00 Sek.) 2: Hauptbibliothek 200 Richten Sie my.cnf ein. [mysqld] lower_case_table_names = 1 # Bei Tabellennamen wird die Groß-/Kleinschreibung nicht beachtet server-id = 200 log_bin = mysql-bin #Binlog-Aufzeichnung starten binlog_format = MIXED #Jedes Mal, wenn eine Transaktion festgeschrieben wird, leert MySQL das Binärprotokoll. Dies ist die sicherste Einstellung, hat aber den größten Leistungsverlust. #In diesem Fall kann das System die Daten einer einzigen Transaktion verlieren, wenn das Host-Betriebssystem, auf dem sich die Datenbank befindet, beschädigt ist oder die Stromversorgung plötzlich ausfällt. #Obwohl Binlog sequentielle IO ist, werden jedoch mehrere Transaktionen gleichzeitig übermittelt, wenn sync_binlog=1 gesetzt ist. #Es wirkt sich auch erheblich auf die MySQL- und IO-Leistung aus. Nach Bedarf einstellen. sync_binlog = 1 # Anzahl der Tage, nach denen Binärprotokolle automatisch gelöscht werden/ablaufen. Der Standardwert ist 0, was bedeutet, dass keine automatische Löschung erfolgt. Ablaufdatum der Protokolle: 7 #binlog_cache_size = 128 m #max_binlog_cache_size = 512 m #max_binlog_size = 256 M # Die Datenbank muss synchronisiert werden binlog-do-db = dev # Es ist keine Synchronisierungsbibliothek erforderlich. binlog-ignore-db = mysql binlog_ignore_db = Informationsschema binlog_ignore_db = Leistungsschema binlog_ignore_db = sys Datenverzeichnis=/var/lib/mysql Einrichten von Slave-Benutzern #mysql -uroot -p # Passwort: xxxxxx # mysql> GRANT REPLICATION SLAVE ON *.* TO ‚slave‘@‚%‘ IDENTIFIED BY ‚root1234‘; # mysql> Berechtigungen leeren; # aufhören; # systemctl mysqld neu starten; # Masterstatus anzeigen \G #**************************** 1. Zeile ************************** Datei:mysql-bin.000001 Position: 154 Binlog_Do_DB: Entwickler Binlog_Ignore_DB: MySQL, Informationsschema, Leistungsschema, Sys Ausgeführtes_Gtid_Set: 1 Zeile im Satz (0,00 Sek.) 3: Aus Bibliothek 300 Richten Sie my.cnf ein. [mysqld] lower_case_table_names = 1 # Bei Tabellennamen wird die Groß-/Kleinschreibung nicht beachtet server-id = 300 master_info_repository = Tabelle relay_log_info_repository = Tabelle Datenverzeichnis=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolische Links = 0 log-error=/var/log/mysqld.log pid-Datei=/var/run/mysqld/mysqld.pid Festlegen der Masterdatenbankinformationen #mysql -uroot -p # Passwort: xxxxxx # Legen Sie die Informationen zur Master-Datenbank fest# mysql> CHANGE MASTER TO # ->MASTER_HOST='192.168.194.3', # ->MASTER_PORT=3306, MASTER_USER='Slave', # ->MASTER_PASSWORD='root1234', # ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=886 für Kanal '100'; # mysql> ÄNDERN SIE MASTER IN # ->MASTER_HOST='192.168.194.4', # ->MASTER_PORT=3306, MASTER_USER='Slave', # ->MASTER_PASSWORD='root1234', # ->MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154 für Kanal '200'; # Legen Sie die Informationen zur Masterdatenbank fest# mysql> flush privileges; # Slave starten; # mysql>Slave-Status anzeigen \G Identifikationssynchronisierung erfolgreich
prüfen. Zufällige Hauptdatenbank: Erstellen Sie eine Tabelle und fügen Sie einen Datensatz ein. Tabelle „t_user“ erstellen ( `id` varchar(32) NOT NULL COMMENT 'Primärschlüssel-ID', `name` varchar(32) CHARACTER SET utf8mb4 NULL COMMENT 'Benutzername', `code` varchar(32) CHARACTER SET utf8mb4 NULL COMMENT 'Benutzercode', `phone_number` varchar(300) CHARACTER SET utf8mb4 NULL COMMENT 'Telefonnummer', `create_date` datetime NULL KOMMENTAR 'Erstellungszeit', `update_date` datetime NULL COMMENT 'Änderungszeitpunkt', PRIMÄRSCHLÜSSEL (`id`) ) COMMENT = 'Benutzerinformationstabelle'; INSERT INTO t_user (`id`, `name`, `code`, `telefonnummer`, `erstellungsdatum`, `aktualisierungsdatum`) WERTE ('userId_4', 'Benutzer-ID_4', '123456789', '123456789632', '27.04.2020 22:05:00', '27.04.2020 22:05:00'); Abfrage aus der Bibliothek Wählen Sie * aus t_user; ------+--------+----------+--------------+---------------------+-------------+ | ID | Name | Code | Telefonnummer | Erstellungsdatum | Aktualisierungsdatum | +-------+--------+----------+-----------+---------------------+----------+ | Benutzer-ID_4 | Zhang San|123456789|123456789632|2020-04-27 22:05:00|2020-04-27 22:05:00 ZusammenfassenDamit ist dieser Artikel über die Implementierungsideen und -schritte der MySQL-Master-Slave-Konstruktion (mehrere Master und ein Slave) abgeschlossen. Weitere relevante Inhalte zur MySQL-Master-Slave-Konstruktion finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Designtheorie: Hierarchie im Design
>>: So fügen Sie einem Hintergrundbild in CSS3 eine Farbmaske hinzu
Inhaltsverzeichnis Vorwort Eingabefeldkomponente ...
Vorwort Vor Kurzem wurde ein Teil der Geschäftstä...
Kobold-Kuh herunterladen CSS-Fussel herunterladen...
Fragen zu Select-Elementen in HTML wurden an viel...
Inhaltsverzeichnis Erster Blick-Index Das Konzept...
Es gibt viele MySQL-Variablen, von denen einige u...
In diesem Artikelbeispiel wird der spezifische JS...
Eigentlich ist das ganz einfach. Wir fügen ein a-...
Inhaltsverzeichnis Werkzeug: Anmeldeszenario: übe...
Inhaltsverzeichnis Ereignisse in js Ereignistyp H...
Inhaltsverzeichnis Einführung in das Decorator-Mu...
In diesem Artikel wird hauptsächlich das Vue-Proj...
1. CSS-Hintergrund-Tag 1. Stellen Sie die Hinterg...
<br />Die offizielle Version der Baidu-Enzyk...
Das Datenwörterbuch in MySQL ist eine der wichtig...