So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

Einführung

Das mysql-utilities-Toolset ist eine Sammlung verschiedener Tools, die als Werkzeugkasten eines DBAs verstanden werden können. Dieser Artikel stellt vor, wie Sie mit dem mysqlreplicate-Tool schnell eine MySQL-Master-Slave-Umgebung erstellen können.

HE1:192.168.1.248 Sklave

HE3:192.168.1.250 Master

Tatsächlicher Kampf

Teil 1: MySQL-Dienstprogramme installieren

[root@HE1 ~]# tar xvf mysql-utilities-1.5.4.tar.gz

[root@HE1 ~]# cd mysql-utilities-1.5.4

[root@HE1 mysql-utilities-1.5.4]# python setup.py build

[root@HE1 mysql-utilities-1.5.4]# python setup.py installieren

Teil 2: Grundlegende Verwendung

[root@HE1 ~]# mysqlreplicate --help
MySQL-Dienstprogramme mysqlreplicate Version 1.5.4 
Lizenztyp: GPLv2
Verwendung: mysqlreplicate --master=root@localhost:3306 --slave=root@localhost:3310 --rpl-user=rpl:passwd 
mysqlreplicate - Replikation mit einem Master einrichten
Optionen:
 --version zeigt die Versionsnummer des Programms an und beendet das Programm
 --help zeigt eine Hilfemeldung an und beendet das Programm.
 --license zeigt die Lizenz des Programms an und beendet es
 --master=MASTER Verbindungsinformationen zum Master-Server in der Form:
      <Benutzer>[:<Passwort>]@<Host>[:<Port>][:<Socket>] oder
      <login-path>[:<port>][:<socket>] oder <config-
      Pfad>[<[Gruppe]>].
 --slave=SLAVE Verbindungsinformationen für Slave-Server in der Form:
      <Benutzer>[:<Passwort>]@<Host>[:<Port>][:<Socket>] oder
      <login-path>[:<port>][:<socket>] oder <config-
      Pfad>[<[Gruppe]>].
 --rpl-user=RPL_USER: Benutzer und Passwort für den Replikationsbenutzer
      Voraussetzung ist, in der Form: <Benutzer>[:<Passwort>] oder
      <Anmeldepfad>. Beispiel: rpl:passwd
 -p, --pedantic schlägt fehl, wenn sich die Speicher-Engines zwischen Master und Slave unterscheiden.
 --test-db=TEST_DB -Datenbankname zur Verwendung beim Testen der Replikationseinrichtung
      (optional)
 --master-log-file=HAUPTLEGSDATEI
      Verwenden Sie diese Master-Protokolldatei, um den Slave zu initialisieren.
 --master-log-pos=MASTER_LOG_POS
      Verwenden Sie diese Position in der Master-Logdatei, um
      der Sklave.
 -b, --start-from-beginning
      Starten Sie die Replikation ab dem ersten aufgezeichneten Ereignis im
      Binäres Logging des Masters. Nicht gültig mit --master-
      log-file oder --master-log-pos.
 --ssl-ca=SSL_CA Der Pfad zu einer Datei, die eine Liste vertrauenswürdiger SSL-
      Zertifizierungsstellen.
 --ssl-cert=SSL_CERT Der Name der zu verwendenden SSL-Zertifikatsdatei für
      Herstellen einer sicheren Verbindung.
 --ssl-key=SSL_KEY Der Name der SSL-Schlüsseldatei, die zum Erstellen einer
      sichere Verbindung.
 --ssl=SSL Gibt an, ob die Serververbindung die Verwendung von erfordert
      SSL. Wenn keine verschlüsselte Verbindung aufgebaut werden kann,
      der Verbindungsversuch schlägt fehl. Standardmäßig 0 (SSL nicht
      erforderlich).
 -v, --verbose steuert, wie viele Informationen angezeigt werden. zB -v =
      ausführlich, -vv = ausführlicher, -vvv = debuggen
 -q, --quiet schaltet alle Nachrichten für eine stille Ausführung aus.

Teil 3: Vorbereitung der Hauptbibliothek

Erstellen eines Replikationsbenutzers in der Masterdatenbank

[root@HE3 ~]# mysql -uroot -p
Passwort eingeben: 
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID lautet 23329
Serverversion: 5.7.16-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.
Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.
Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.
mysql> gewähre Replikationsclient, Replikations-Slave auf *.* an 'mysync'@'%', identifiziert durch 'MANAGER';
Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,01 Sek.)
mysql> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

Teil 4: Ein-Klick-Konfiguration

Konfigurieren Sie die Slave-Bibliothek und führen Sie den folgenden Befehl aus [root@HE1 ~]# mysqlreplicate --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 --rpl-user=mysync:MANAGER -b
WARNUNG: Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein.
# Master auf 192.168.1.250: ... verbunden.
# Slave auf 192.168.1.248: ... verbunden.
# Überprüfung der binären Protokollierung auf dem Master …
# Replikation einrichten...
# ...Erledigt.

prüfen

Teil 1:mysqlrplcheck

[root@HE1 ~]# mysqlrplcheck --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 -s
WARNUNG: Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein.
# Master auf 192.168.1.250: ... verbunden.
# Slave auf 192.168.1.248: ... verbunden.
Test Beschreibung Status
---------------------------------------------------------------------------
Überprüfung auf binäres Logging auf dem Master [bestanden]
Gibt es Binlog-Ausnahmen? [Passwort]
Replikationsbenutzer vorhanden? [Passwort]
Überprüfen der Server-ID-Werte [Pass]
Überprüfen der Server_UUID-Werte [Pass]
Ist der Slave mit dem Master verbunden? [Passwort]
Stamminformationsdatei prüfen [bestanden]
InnoDB-Kompatibilität prüfen [bestanden]
Kompatibilität der Speicher-Engines prüfen [bestanden]
Überprüfen der lower_case_table_names-Einstellungen [bestanden]
Überprüfung der Slave-Verzögerung (Sekunden hinter dem Master) [bestanden]

#
# Slave-Status: 
#
    Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
     Master_Host: 192.168.1.250
     Master_Benutzer: mysync
     Master_Port: 3306
     Verbindungswiederholung: 60
    Master_Log_File: mysql-bin.000003
   Read_Master_Log_Pos: 384741
    Relay-Log-Datei: HE1-relay-bin.000004
     Relay_Log_Pos: 384954
   Relay_Master_Log_File: mysql-bin.000003
    Slave_IO_Running: Ja
    Slave_SQL_Running: Ja
    Replicate_Do_DB: 
   Replikat_Ignorieren_DB: 
   Tabelle_replizieren: 
  Tabelle_Ignorieren_replizieren: 
  Wild_Do_Tabelle replizieren: 
 Tabelle_Wild_Ignore_replizieren: 
     Last_Errno: 0
     Letzter_Fehler: 
     Skip_Counter: 0
   Exec_Master_Log_Pos: 384741
    Relay_Log_Space: 1743112
    Until_Condition : Keine
    Bis_Log_Datei: 
     Bis_Log_Pos: 0
   Master_SSL_Allowed: Nein
   Master_SSL_CA_Datei: 
   Master_SSL_CA_Pfad: 
    Master_SSL_Zertifikat: 
    Master_SSL_Chiffre: 
    Master_SSL_Schlüssel: 
   Sekunden_Hinter_Master: 0
 Master_SSL_Verify_Server_Cert: Nein
     Last_IO_Errno: 0
     Letzter_E/A-Fehler: 
    Last_SQL_Errno: 0
    Letzter SQL-Fehler: 
 Server-IDs_replizieren_ignorieren: 
    Master_Server_Id: 1250
     Master_UUID: 1b1daad8-b501-11e6-aa21-000c29c6361d
    Master_Info_Datei: /data/mysql/master.info
      SQL_Delay: 0
   SQL_Remaining_Delay: Keine
  Slave_SQL_Running_State: Slave hat alle Relay-Logs gelesen; wartet auf weitere Updates
   Master_Retry_Count: 86400
     Master_Bind: 
  Zeitstempel des letzten IO-Fehlers: 
  Letzter_SQL_Fehler_Zeitstempel: 
    Master_SSL_Crl: 
   Master_SSL_Crlpfad: 
   Abgerufenes_Gtid_Set: 
    Ausgeführtes_Gtid_Set: 
     Auto_Position: 0
   DB replizieren_neu schreiben: 
     Kanalname: 
   Master_TLS_Version: 
# ...Erledigt.

Andere gängige Werkzeuge

Teil 1: mysqldiskusage prüft die Größe des Datenbankspeicherplatzes

[root@HE1 ~]# mysqldiskusage --server=sys_admin:MANAGER@localhost
WARNUNG: Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein.
# Quelle auf lokalem Host: ... verbunden.
# Datenbanksummen:
+---------------------+--------------+
| Datenbankname | Gesamt |
+---------------------+--------------+
| maxscale_schema | 14.906 |
|mysql | 14.250.013 |
| Leistungsschema | 818.071 |
| System | 500.802 |
| wms | 925.929.868 |
+---------------------+--------------+
Gesamte Datenbank-Festplattennutzung = 941.513.660 Bytes oder 897,90 MB
#...Erledigt.

Teil 2: mysqlindexcheck prüft auf redundante Indizes

[root@HE1 ~]# mysqlindexcheck --server=sys_admin:MANAGER@localhost wms
WARNUNG: Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein.
# Quelle auf lokalem Host: ... verbunden.
# Der folgende Index ist ein Duplikat oder redundant für die Tabelle wms.auth_user:
#
ERSTELLEN SIE DEN EINDEUTIGEN INDEX `index_user_name` AUF `wms`.`auth_user` (`user_name`) MIT BTREE
# kann redundant oder Duplikat sein von:
CREATE INDEX `Benutzername` ON `wms`.`auth_user` (`Benutzername`, `Status`) USING BTREE
# Der folgende Index ist ein Duplikat oder redundant für die Tabelle wms.basic_storeage_sapce:
#
ERSTELLEN SIE INDEX `idx_store_district_space_no` AUF `wms`.`basic_storeage_sapce` (`store_id`, `district_id`, `store_space_no`) MIT BTREE
# kann redundant oder Duplikat sein von:
ERSTELLEN SIE DEN EINDEUTIGEN INDEX `idx_store_district_space_no_un` AUF `wms`.`basic_storeage_sapce` (`store_id`, `district_id`, `store_space_no`) MIT BTREE

--Zusammenfassen--

Sie sehen, dass es sehr einfach ist, MySQL Master-Slave mit mysqlreplicate im mysql-utilities-Toolset zu konfigurieren. mysqlreplicate bietet auch verschiedene Parameter. Das -b in diesem Artikel bedeutet, dass die Replikation mit dem ersten Ereignis im Master-Binärprotokoll beginnt. Das -s in mysqlrplcheck bezieht sich auf die Ausgabe von show slave status\G. Aufgrund der begrenzten Kenntnisse des Autors und der Eile, den Artikel zu schreiben, enthält der Artikel zwangsläufig einige Fehler oder Ungenauigkeiten. Ich bitte die Leser aufrichtig, etwaige Unangemessenheiten zu kritisieren und zu korrigieren.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierungsschritte zum Erstellen einer MySQL Master-Slave-Replikationsumgebung basierend auf Docker
  • So erstellen Sie einen MySQL-Master-Slave-Server auf CentOS7 (grafisches Tutorial)
  • So erstellen Sie eine MySQL-Master-Slave-Replikation und Lese-/Schreibtrennung auf der CentOS-Serverplattform
  • Detaillierte Erläuterung der MySQL Master-Slave-Datenbankkonstruktionsmethode
  • MySQL 5.7.18 Master-Slave-Replikations-Setup (ein Master und ein Slave) Tutorial mit ausführlicher Erklärung
  • Detaillierte Erläuterung der Konstruktion der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • Verwenden von Docker-Containern zum Erstellen einer MySql-Master-Slave-Replikation
  • Tutorial zum Erstellen einer Master-Slave-Replikationsarchitektur für MySQL 5.7 Docker
  • Teilen Sie eine Idee zum Aufbau eines Master-Slave-Systems für eine große MySQL-Datenbank

<<:  Erfahren Sie in einem Artikel mehr über TypeScript-Datentypen

>>:  So installieren Sie einen SVN-Server unter Linux

Artikel empfehlen

Zusammenfassung zur Verwendung der Bootstrap-Tabelle

In diesem Artikel erfahren Sie, wie Sie die Boots...

Implementierungsmethode für HTML-Neun-Raster-Layouts

Die Diversifizierung von Website-Layouts ist unse...

Ubuntu startet den Remote-Anmeldevorgang des SSH-Dienstes

SSH-Secure-Shell, ermöglicht sichere Remote-Anmel...

So aktualisieren Sie v-for in Vue

Tipps: Die Methode zur Array-Änderung führt zur A...

Eine kurze Diskussion zur MySQL-Select-Optimierungslösung

Inhaltsverzeichnis Beispiele aus dem wirklichen L...

10 Best Practices zum Erstellen und Warten großer Vue.js-Projekte

Inhaltsverzeichnis 1. Nutzen Sie Slots, um Kompon...

Einige Verbesserungen in MySQL 8.0.24 Release Note

Inhaltsverzeichnis 1. Verbindungsmanagement 2. Ve...

So schreiben Sie schönen HTML-Code

So sieht schöner HTML-Code aus. So schreiben Sie ...

Detaillierte Erklärung des Synchronisierungsmodifikators von Vue

Inhaltsverzeichnis 1. Anweisungen 2. Modifikatore...

Ausführliche Erläuterung der HTML-Grundlagen (Teil 2)

1. Liste Der Listen-UL- Container wird mit einer ...

Beispielcode zur Implementierung eines Laufschriftformats mit CSS3

Hintergrund Folgendes ist passiert: Luzhu erfuhr ...

Eine detaillierte Anleitung zu benutzerdefinierten Anweisungen in Vue

Inhaltsverzeichnis 1. Was ist eine benutzerdefini...

So verwenden Sie vue3 zum Erstellen einer Materialbibliothek

Inhaltsverzeichnis Warum brauchen wir eine Materi...