sql >> Databáze >  >> RDS >> MariaDB

Jak nainstalovat a nakonfigurovat MaxScale pro MariaDB

Pro přidání nástroje pro vyrovnávání zatížení mezi vaši aplikaci a databázi existují různé důvody. Pokud máte vysoký provoz (a chcete vyvážit provoz mezi různými databázovými uzly) nebo chcete použít nástroj pro vyrovnávání zatížení jako jeden koncový bod (takže v případě převzetí služeb při selhání si tento nástroj pro vyrovnávání zatížení poradí s tímto problémem a odešle provoz do k dispozici/zdravý uzel.) Může se také stát, že chcete používat různé porty pro zápis a čtení dat z databáze.

Ve všech těchto případech pro vás bude užitečný nástroj pro vyrovnávání zatížení, a pokud máte cluster MariaDB, jednou z možností je použití MaxScale, což je proxy databáze pro databáze MariaDB.

V tomto blogu vám ukážeme, jak jej nainstalovat a nakonfigurovat ručně a jak vám může ClusterControl pomoci s tímto úkolem. V tomto příkladu použijeme replikační cluster MariaDB s 1 hlavním a 1 podřízeným uzlem a operačním systémem CentOS8.

Jak nainstalovat MaxScale

Předpokládáme, že máte spuštěnou a spuštěnou databázi MariaDB a také počítač (virtuální nebo fyzický) k instalaci MaxScale. Doporučujeme použít jiného hostitele, takže v případě selhání hlavního serveru může MaxScale přejít při selhání na podřízený uzel, jinak nemůže MaxScale podniknout žádnou akci, pokud dojde k výpadku serveru, na kterém běží.

Existují různé způsoby instalace MaxScale, v tomto případě použijeme úložiště MariaDB. Chcete-li jej přidat na server MaxScale, musíte spustit:

$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo

[info] Adding trusted package signing keys...

[info] Successfully added trusted package signing keys

Nyní nainstalujte balíček MaxScale:

$ yum install maxscale

Nyní máte nainstalovaný uzel MaxScale, před spuštěním jej musíte nakonfigurovat.

Jak nakonfigurovat MaxScale

Protože MaxScale provádí úkoly, jako je autentizace, monitorování a další, musíte vytvořit uživatele databáze s některými specifickými oprávněními:

MariaDB [(none)]> CREATE USER 'maxscaleuser'@'%' IDENTIFIED BY 'maxscalepassword';

MariaDB [(none)]> GRANT SELECT ON mysql.user TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.db TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.tables_priv TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SELECT ON mysql.roles_mapping TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT SHOW DATABASES ON *.* TO 'maxscaleuser'@'%';

MariaDB [(none)]> GRANT REPLICATION CLIENT on *.* to 'maxscaleuser'@'%';

Mějte na paměti, že MariaDB verze 10.2.2 až 10.2.10 také vyžadují:

MariaDB [(none)]> GRANT SELECT ON mysql.* TO 'maxscaleuser'@'%';

Nyní máte připraveného uživatele databáze, podívejme se na konfigurační soubory. Když nainstalujete MaxScale, vytvoří se soubor maxscale.cnf v /etc/. Existuje několik proměnných a různé způsoby konfigurace, takže se podívejme na příklad:

$ cat  /etc/maxscale.cnf 

# Global parameters

[maxscale]

threads = auto

log_augmentation = 1

ms_timestamp = 1

syslog = 1



# Server definitions

[server1]

type=server

address=192.168.100.126

port=3306

protocol=MariaDBBackend

[server2]

type=server

address=192.168.100.127

port=3306

protocol=MariaDBBackend



# Monitor for the servers

[MariaDB-Monitor]

type=monitor

module=mariadbmon

servers=server1,server2

user=maxscaleuser

password=maxscalepassword

monitor_interval=2000



# Service definitions

[Read-Only-Service]

type=service

router=readconnroute

servers=server2

user=maxscaleuser

password=maxscalepassword

router_options=slave

[Read-Write-Service]

type=service

router=readwritesplit

servers=server1

user=maxscaleuser

password=maxscalepassword



# Listener definitions for the services

[Read-Only-Listener]

type=listener

service=Read-Only-Service

protocol=MariaDBClient

port=4008

[Read-Write-Listener]

type=listener

service=Read-Write-Service

protocol=MariaDBClient

port=4006

V této konfiguraci máme 2 databázové uzly, 192.168.100.126 (Master) a 192.168.100.127 (Slave), jak můžete vidět v sekci Definice serverů.

Máme také 2 různé služby, jednu pouze pro čtení, kde je podřízený uzel, a další pro čtení a zápis, kde je hlavní uzel.

Konečně máme 2 posluchače, jeden pro každou službu. Posluchač pouze pro čtení, který naslouchá na portu 4008, a posluchač pro čtení a zápis, naslouchající na portu 4006.

Toto je základní konfigurační soubor. Pokud potřebujete něco konkrétnějšího, můžete postupovat podle oficiální dokumentace MariaDB.

Nyní jste připraveni to spustit, takže stačí spustit:

$ systemctl start maxscale.service

A zkontrolujte:

$ maxctrl list services
ff
$ maxctrl list servers

Seznam příkazů maxctrl naleznete zde nebo můžete dokonce použít maxadmin pro jeho správu.

Nyní otestujeme připojení. Za tímto účelem se můžete pokusit o přístup k databázi pomocí adresy IP MaxScale a portu, který chcete otestovat. V našem případě by měl být provoz na portu 4006 odeslán na server1 a provoz na portu 4008 na server2.

$ mysql -h 192.168.100.128 -umaxscaleuser -pmaxscalepassword -P4006 -e 'SELECT @@hostname;'

+------------+

| @@hostname |

+------------+

| server1   |

+------------+

$ mysql -h 192.168.100.128 -umaxscaleuser -pmaxscalepassword -P4008 -e 'SELECT @@hostname;'

+------------+

| @@hostname |

+------------+

| server2   |

+------------+

Funguje to!

Jak nasadit MaxScale s ClusterControl

Podívejme se nyní, jak můžete pomocí ClusterControl tento úkol zjednodušit. Za tímto účelem budeme předpokládat, že máte svůj cluster MariaDB přidán do ClusterControl.

Přejděte do ClusterControl -> Vyberte cluster MariaDB -> Akce clusteru -> Přidat Load Balancer -> MaxScale.

Zde můžete nasadit nový uzel MaxScale nebo také importovat stávající jeden. Pokud jej nasazujete, musíte přidat IP adresu nebo název hostitele, pověření správce a uživatele MaxScale, počet vláken a porty (pouze pro zápis a pro čtení). Můžete také určit, který databázový uzel chcete přidat do konfigurace MaxScale.

Úlohu můžete sledovat v sekci ClusterControl Activity. Po dokončení budete mít ve svém clusteru MariaDB nový uzel MaxScale.

A spouštění příkazů MaxScale z uživatelského rozhraní ClusterControl bez nutnosti přístupu k server přes SSH.

Vypadá to snadněji než ruční nasazení, že?

Závěr

Mít Load Balancer je dobré řešení, pokud chcete vyvážit nebo rozdělit svůj provoz nebo dokonce pro akce převzetí služeb při selhání, a MaxScale jako produkt MariaDB je dobrou volbou pro databáze MariaDB.

Instalace je snadná, ale konfigurace a použití může být obtížné, pokud je to pro vás něco nového. V takovém případě můžete ClusterControl použít k nasazení, konfiguraci a správě jednodušším způsobem.


  1. Jak Bootstrap MySQL nebo MariaDB Galera Cluster - Aktualizováno

  2. Formát data MySQL

  3. Příkazy MySQL INSERT nebo REPLACE

  4. Význam údržby na MSDB