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:
|
<<: Erfahren Sie in einem Artikel mehr über TypeScript-Datentypen
>>: So installieren Sie einen SVN-Server unter Linux
In diesem Artikel erfahren Sie, wie Sie die Boots...
Die Diversifizierung von Website-Layouts ist unse...
1. Einleitung Heute hat mich ein Kollege gefragt,...
Priorität Der Grund, warum das Platzieren derselb...
SSH-Secure-Shell, ermöglicht sichere Remote-Anmel...
Tipps: Die Methode zur Array-Änderung führt zur A...
Inhaltsverzeichnis Beispiele aus dem wirklichen L...
Inhaltsverzeichnis 1. Nutzen Sie Slots, um Kompon...
Inhaltsverzeichnis 1. Verbindungsmanagement 2. Ve...
So sieht schöner HTML-Code aus. So schreiben Sie ...
Inhaltsverzeichnis 1. Anweisungen 2. Modifikatore...
1. Liste Der Listen-UL- Container wird mit einer ...
Hintergrund Folgendes ist passiert: Luzhu erfuhr ...
Inhaltsverzeichnis 1. Was ist eine benutzerdefini...
Inhaltsverzeichnis Warum brauchen wir eine Materi...