GNU/Linux >> Znalost Linux >  >> Debian

Jak nakonfigurovat replikaci MySQL (MariaDB) Master-Slave na Debianu 10

Replikace MySQL je proces kopírování dat z jednoho databázového serveru (master) na jeden nebo více serverů (slave).

MySQL podporuje několik topologií replikace, přičemž topologie Master/Slave je jednou z nejznámějších topologií, ve které jeden databázový server vystupuje jako hlavní, zatímco jeden nebo více serverů funguje jako podřízené. Ve výchozím nastavení je replikace asynchronní, kdy hlavní server odesílá události, které popisují úpravy databáze, do svého binárního protokolu a podřízené jednotky požadují události, když jsou připraveny.

V této příručce vám ukážeme, jak nastavit replikaci MariaDB Master/Slave s jedním hlavním a jedním podřízeným serverem v Debianu 10. MariaDB je výchozí implementace MySQL v Debianu. Stejné kroky platí pro Oracle MySQL.

Tento typ replikační topologie se nejlépe hodí pro nasazení čtených replik pro škálování čtení, zálohování živých databází pro obnovu po havárii a pro analytické úlohy.

Předpoklady #

Předpokládáme, že máte dva servery se systémem Debian 10, které spolu komunikují přes privátní síť. Pokud váš poskytovatel hostingu nepodporuje soukromé IP adresy, můžete použít veřejné IP adresy a nakonfigurovat firewall tak, aby povoloval provoz na portu 3306 pouze z důvěryhodných zdrojů.

Servery použité v tomto příkladu mají následující adresy IP:

Master IP: 10.10.8.12
Slave IP:  10.10.8.164

Instalace MariaDB #

Výchozí úložiště Debian 10 obsahuje MariaDB verze 10.3. Nejlepší je nainstalovat stejnou verzi MariaDB na oba servery, abyste předešli případným problémům.

Nainstalujte MariaDBon na hlavní i podřízenou jednotku zadáním následujících příkazů:

sudo apt-get updatesudo apt-get install mariadb-server

Konfigurace hlavního serveru #

Prvním krokem je nastavení hlavního serveru. Provedeme následující změny:

  • Nastavte server MariaDB tak, aby naslouchal na soukromé IP.
  • Nastavte jedinečné ID serveru.
  • Povolte binární protokolování.

Otevřete konfigurační soubor MariaDB a zrušte komentář nebo nastavte následující řádky:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
master:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.12
server-id              = 1
log_bin                = /var/log/mysql/mysql-bin.log

Po dokončení uložte soubor a restartujte službu MySQL, aby se změny projevily:

sudo systemctl restart mariadb

Dalším krokem je vytvoření nového uživatele replikace. Přihlaste se k serveru MariaDB jako uživatel root:

sudo mysql

Spuštěním následujících dotazů SQL vytvořte uživatele s názvem replica a udělte REPLICATION SLAVE oprávnění pro uživatele:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Ujistěte se, že jste změnili IP s vaší podřízenou IP adresou. Uživatele můžete pojmenovat, jak chcete.

Zatímco jste stále uvnitř výzvy MySQL, spusťte následující příkaz, který vypíše binární název souboru a pozici.

SHOW MASTER STATUS\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 328
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.001 sec)

Poznamenejte si název souboru 'mysql-bin.000001' a pozice ‚328‘ . Tyto hodnoty jsou nezbytné při konfiguraci podřízeného serveru a pravděpodobně se na vašem serveru budou lišit.

Konfigurace podřízeného serveru #

Na podřízeném serveru provedeme stejné změny jako na hlavním:

  • Nastavte server MySQL tak, aby naslouchal na soukromé IP.
  • Nastavte jedinečné ID serveru.
  • Povolte binární protokolování.

Otevřete konfigurační soubor MariaDB a upravte následující řádky:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
slave:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address           = 10.10.8.164
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log

Restartujte službu MariaDB:

sudo systemctl restart mariadb

Dalším krokem je konfigurace parametrů, které bude podřízený server používat pro připojení k hlavnímu serveru. Přihlaste se do prostředí MariaDB:

sudo mysql

Začněte zastavením podřízených vláken:

STOP SLAVE;

Spusťte následující dotaz pro konfiguraci replikace Master/Slave:

CHANGE MASTER TOMASTER_HOST='10.10.8.12',MASTER_USER='replica',MASTER_PASSWORD='replica_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=328;

Ujistěte se, že používáte správnou IP adresu, uživatelské jméno a heslo. Název a pozice log souboru musí být stejné jako hodnoty, které jste získali z hlavního serveru.

Po dokončení spusťte podřízená vlákna.

START SLAVE;

Otestujte konfiguraci #

V tomto okamžiku byste měli mít funkční nastavení replikace Master/Slave.

Chcete-li ověřit, že je vše správně nastaveno, vytvořte novou databázi na hlavním serveru:

sudo mysql
CREATE DATABASE replicatest;

Přihlaste se k podřízenému prostředí MySQL:

sudo mysql

Spuštěním následujícího příkazu zobrazíte všechny databáze:

SHOW DATABASES;

Všimnete si, že databáze, kterou jste vytvořili na hlavním serveru, je replikována na podřízeném:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Debian
  1. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  2. Jak nainstalovat MySQL Server na Debian 9

  3. Jak nainstalovat MySQL Server na Debian 10 Buster

  1. Jak nainstalovat a nakonfigurovat Mariadb 10 v Debianu 11

  2. Jak nainstalovat Zabbix na Debian 9

  3. Jak nakonfigurovat bránu firewall s CSF na Debianu 9

  1. Jak nakonfigurovat replikaci MySQL Master-Slave na Ubuntu 18.04

  2. Jak nakonfigurovat replikaci MySQL Master-Slave na CentOS 7

  3. Jak nainstalovat a nakonfigurovat VNC na Debian 9