GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konfigurieren Sie die MySQL-Quell-Quell-Replikation

Hinweis :Der Rackspace-Support kann aufgrund der Komplexität der Konfiguration und der Wahrscheinlichkeit von Fehlern bei Source-Source-Replikations-Setups nicht helfen. Als Alternative zur direkten MySQL-Quell-Quell-Replikation können Sie entweder unseren Cloud Databases-Dienst oder eine Replikations-Engine wie Tungsten für eine zuverlässigere Datenreplikation zwischen Datenbankinstanzen in Betracht ziehen.

MySQL-Quell-Quell-Replikation

Dieser Artikel zeigt Ihnen, wie Sie die Cluster-Replikation einrichten:bidirektionale und zirkuläre Replikation zwischen zwei Cloud-Servern. Die Quelle-Quelle-Datenreplikation ermöglicht es, replizierte Daten, die auf mehreren Computern gespeichert sind, von jedem autorisierten beitragenden Mitglied der Gruppe zu aktualisieren. Dies ermöglicht eine offenere Zusammenarbeit als die Replikation einer Quellreplik, bei der alle erforderlichen Änderungen, die von einem Gruppenmitglied identifiziert werden, an die festgelegte Quelle des Knotens übermittelt werden müssen.

Dieses Tutorial verwendet das Betriebssystem Debian 5 (Lenny), das aus dem Basis-Image von RackspaceCloud erstellt wurde.

Setup-Übersicht

Es gibt zwei Cloud-Server, debian501 und debian502 , in dieser Übung. Beide Server haben zwei IP-Adressen (eine öffentliche, eine private). In der Übung wird die Replikation so konfiguriert, dass sie über die private IP-Schnittstelle erfolgt, sodass Ihnen keine Bandbreitengebühren entstehen.

Erstellen der Cloud-Server

Sie müssen zwei Linux-Cloud-Server mit dem Basis-Image von Debian 5 erstellen. Führen Sie die folgenden Schritte aus, um jeden Server separat zu erstellen.

  1. Melden Sie sich beim Cloud Control Panel an.
  2. Klicken Sie in der oberen Navigationsleiste auf Produkt auswählen> Rackspace Cloud .
  3. Wählen Sie Server> Cloud-Server aus .
  4. Klicken Sie auf Server erstellen .
  5. Benennen Sie die Server so, dass Sie sie während der Einrichtung leicht identifizieren können. In dieser Übung heißen sie debian501 und debian502.
  6. Wählen Sie das Debian-Image aus.
  7. Wählen Sie die RAM-Konfiguration (Flavor) aus, die Ihren Datenbankanforderungen entspricht.
  8. Klicken Sie auf Server erstellen .

Die folgenden Serverbefehle sollten als privilegierter Benutzer (Root, Sudo-Gruppe) ausgeführt werden.

Installieren von MySQL

Zuerst müssen wir MySQL auf beiden Debian Cloud Servern installieren. Wie immer müssen wir vor der Installation von Paketen sicherstellen, dass unsere Paketliste auf dem neuesten Stand ist und unsere Gebietsschema-/Spracheinstellungen richtig konfiguriert sind.

  • Aktualisieren Sie die Paketdatenbank:

      # aptitude update
    
  • Locales installieren:

      # aptitude install locales
    
      # dpkg-reconfigure locales
    
  • Die dpkg-reconfigure locales Der Befehl öffnet ein Gebietsschema-Einstellungsfenster, in dem Sie die Gebietsschemas für Ihr System je nach Land und Region auswählen können. Wählen Sie in diesem Fall en\_GB.UTF-8 .

  • Führen Sie nun die folgenden Befehle aus, um MySQL zu installieren:

      # aptitude install mysql-server mysql-client libmysqlclient15-dev
    

Replikation konfigurieren

Einmal der mysql-server Paket erfolgreich installiert wurde, beginnen Sie mit der Konfiguration aller MySQL-Knoten, um die Replikation zwischen ihnen zu ermöglichen.

Sie müssen die Datenbank erstellen, die repliziert werden soll, sowie den Benutzernamen und das Kennwort für die Replikation, die damit verwendet werden sollen. Sie können die unten beschriebenen Befehle verwenden, um sie einzurichten, und denken Sie daran, alle Zeichenfolgen/Werte in Klammern so zu ändern, dass sie für Ihre spezifische Konfiguration gelten.

  • Melden Sie sich zuerst auf debian501 bei der mysql-Konsole an (unter Verwendung des MySQL-Root-Passworts, das Sie während der MySQL-Installation eingerichtet haben).

      # mysql -u root -p
      mysql>
    
  • Erstellen Sie nun den Replikationsbenutzer, der zum Synchronisieren der Änderungen verwendet wird.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian502]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Machen Sie dasselbe für debian502.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian501]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Zurück auf debian501 bearbeiten Sie /etc/mysql/my.cnf und die folgenden Einträge einfügen, aktualisieren oder auskommentieren:

      bind-address = 0.0.0.0
      server-id = 1
      log-bin = /var/log/mysql/var/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 1
      master-host = [private IP address of debian502]
      master-user = [replication username]
      master-password = [replication password]
      replicate-do-db = <database name to be replicated>
    
  • Wiederholen Sie die Schritte auf dem debian502-Server.

      bind-address = 0.0.0.0
      server-id = 2
      log-bin = /var/log/mysql/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 2
      master-host =  [private IP address of debian501]
      master-user = [replication username]
      master-password = [replication user password]
      replicate-do-db = [database name to be replicated]
    
  • Starten Sie nun beide Datenbanken neu. Wenn der Dienstneustart auf einem der Server fehlschlägt, überprüfen Sie die Datei /var/log/mysql/error.log Datei auf Fehler. Aktualisieren Sie die Konfiguration und suchen Sie nach Tippfehlern usw.

Testen der Szenarien

Erstellen Sie zum Testen Ihrer Replikationskonfiguration die im vorherigen Konfigurationsabschnitt angegebenen Datenbanken. Erstellen Sie außerdem eine Testtabelle auf einem der Knoten und beobachten Sie die Protokolldateien in /var/log/mysql Verzeichnis. Beachten Sie, dass alle Datenbankänderungen sofort auf Ihren anderen Server repliziert werden sollten.

  mysql> create database [your-db-name];
  mysql> use [your-db-name]
  mysql> create table foo (id int not null, username varchar(30) not null);
  mysql> insert into foo values (1, 'bar');
  • Stoppen Sie als zusätzlichen Test den MySQL-Dienst auf debian502, nehmen Sie Datenbankänderungen auf dem debian501-Server vor und starten Sie dann den MySQL-Dienst auf debian502 neu. Der debian502-MySQL-Dienst sollte alle neuen Änderungen automatisch synchronisieren.

  • Sie sollten auch erwägen, die standardmäßigen Rotationswerte für Binärprotokolle zu ändern (expire_logs_days und max_binlog_size ) in /etc/mysql/my.cnf Datei, da standardmäßig alle Binärprotokolle 10 Tage lang aufbewahrt werden. Wenn Sie eine hohe Anzahl von Transaktionen in Ihrer Datenbankanwendung haben, kann dies zu einer erheblichen Nutzung des Festplattenspeichers in Protokollen führen. Erwägen Sie daher, diese Werte so zu ändern, dass sie Ihren Serverbackup-Richtlinien entsprechen. Wenn Sie beispielsweise tägliche Sicherungen Ihres MySQL-Knotens eingerichtet haben, müssen Sie keine 10-Tage-Binärprotokolle aufbewahren.


Linux
  1. So richten Sie die MySQL-Master-Master-Replikation ein

  2. So konfigurieren Sie die MySQL Multi-Master-Replikation unter Oracle Linux

  3. Konfigurieren Sie WSO2 API Manager mit MySQL-Datenbank

  4. Konfigurieren Sie den MySQL-Server auf dem Ubuntu-Betriebssystem

  5. Konfigurieren Sie die MySQL-Quellreplikatreplikation

So konfigurieren Sie die MySQL-Master-Slave-Replikation unter CentOS 7

So konfigurieren Sie die MySQL (MariaDB) Master-Slave-Replikation unter Debian 10

Konfigurieren Sie die OpenLDAP Multi-Master-Replikation unter Linux

MySQL 8 Master-Slave-Replikation auf Ubuntu 20.04

So installieren und konfigurieren Sie MySQL unter Ubuntu 18.04

Wie richte ich die MySQL-Master-Slave-Replikation auf RHEL 7 ein?