Vítejte na dalším blogu. Tentokrát jsem tu, abych vám ukázal, jak nastavit cluster percona XtraDB. Dobře, takže co je percona XtraDB? XtraDB je klastrovací řešení MySQL, zajišťuje vysokou dostupnost, zabraňuje prostojům a ztrátě dat a poskytuje lineární škálovatelnost pro rostoucí prostředí. Když spustíte dotaz, provede se lokálně na uzlu. Všechna data jsou dostupná lokálně, není potřeba vzdálený přístup. Dobré řešení pro škálování zátěže čtení. Do kteréhokoli z uzlů můžete vkládat dotazy pro čtení. Jakmile nainstalujete percona XtraDB, nemusíte instalovat MySQL samostatně, XtraDB ji získá z úložiště percona a po prostudování tohoto článku budete moci připravit cluster.
předpoklad:
Ke konfiguraci clusteru percona XtraDB na serverech Linux potřebujeme tři servery, informace jsou následující:
server percona1:192.168.56.110
server percona2:192.168.56.113
Server percona3:192.168.56.114
OS:CentOS 7
můžete také použít dva servery, ale oficiální dokument doporučuje lichý počet serverů. např. 3,5,7 a tak dále. prostě nehledejte žádný sudý počet uzlů, říkají tomu rozdělený mozek. Split-brain je stav, ve kterém uzly ztrácejí kontakt mezi sebou a oba se pak snaží převzít kontrolu nad sdílenými zdroji nebo poskytovat současně klastrovou službu
POZNÁMKA:Potřebujeme přístup root v uzlu, kam budeme instalovat Percona XtraDB Cluster
(buď přihlášeni jako uživatel s právy root nebo být schopni spouštět příkazy pomocí Sudo
Předběžné kontroly:
Přidejte níže položky do svého souboru /etc/hosts ——> na všech serverech (percona1,percona2,percona3)
192.168.56.110 percona1.localdomain percona1
192.168.56.113 percona2.localdomain percona2
192.168.56.114 percona3.localdomain percona3
Otevřete porty brány firewall:
Potřebujeme otevřít níže uvedené porty na všech serverech (percona1,percona2,percona3)
3306
4444
4567
4568
firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --zone=public --add-port=4567/tcp --permanentfirewall-cmd --zone=public - -add-port=4568/tcp --permanentfirewall-cmd --zone=public --add-port=4444/tcp --permanentfirewall-cmd --zone=public --add-port=4567/udp --permanentfirewall- cmd --reloadfirewall-cmd --list-all
[[email protected] ~]# firewall-cmd --list-allpublic (aktivní)cíl:defaulticmp-block-inversion:nointerfaces:enp0s3 enp0s8sources:services:ssh dhcpv6-client mysqlports:3306/tcp 4567/tcp 4567 4568/tcp 4444/tcp 4567/udpprotocols:maškaráda:noforward-ports:source-ports:icmp-blocks:bohatá pravidla
Zakázat SELinux:——->na všech serverech (percona1,percona2,percona3)
[[email protected] ~]# setenforce 0
Tím se SELinux uvede do permisivního režimu pro aktuální relaci, ale musíme jej trvale zakázat.
upravte soubor /etc/sysconfig/selinux nastavte proměnnou selinux jako zakázanou na všech serverech (percona1,percona2,percona3):
vi /etc/sysconfig/selinux
SELINUX=disabled
Všechny servery by měly být vzájemně přístupné. Chcete-li zkontrolovat dostupnost, pingněte každý server.
Instalace pod předpožadovanou RPM:——->na všech serverech (percona1,percona2,percona3)
epel-release
libev
socat
[[email protected] ~]# yum -y install epel-release Instalováno:epel-release.noarch 0:7-11[[email protected] yum.repos.d]# yum -y install libev Installed :libev.x86_64 0:4.15-7.el7[[email protected] Desktop]# yum -y install socat Instalováno:socat.x86_64 0:1.7.3.2-2.el7
Přidat úložiště Percona:——->na všech serverech (percona1, percona2, percona3)
Nyní přidáme úložiště percona na všechny tři servery (percona1, percona2, percona3):
[[email protected] ~]# sudo yum -y instalace https://repo.percona.com/yum/percona-release-latest.noarch.rpmInstalled:percona-release.noarch 0:1.0-13 Dokončeno !
Nainstalujte Percona-XtraDB-Cluster:——->na všech serverech (percona1, percona2, percona3)
[[email protected] ~]# instalace yum -y Percona-XtraDB-Cluster-57Načtené pluginy:nejrychlejší zrcadlení, langpacks Načítání rychlosti zrcadlení z hostitelského souboru uloženého v mezipaměti...Instalováno:Percona-XtraDB-Cluster-57.x86_64 0:5. .27-31.39.1.el7 Percona-XtraDB-Cluster-shared-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-shared-compat-57.x86_64 0-5.39.27 Nainstalovaná závislost .1.el7:Percona-XtraDB-Cluster-client-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-server-57.x86_64 0:5.7.27-31.31. percona-xtrabackup-24.x86_64 0:2.4.17-1.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_6 :2.52-3.el7 qpress.x86_64 0:11-1.el7 Nahrazeno:mariadb-libs.x86_64 1:5.5.60-1.el7_5Dokončeno!
Podívejte se, zda je Percona XtraDB nainstalována nebo ne.
[[email protected] ~]# vyhledávání yum Percona-XtraDBPOZNÁMKA: Až sem by měly být všechny výše uvedené kroky provedeny na všech serverech (percona1, percona2, percona3)
Konfigurace uzlů pro replikaci Write-Set
NA Percona1:
Nechte spustit MySQL server a změňte root heslo pouze na percona1 serveru
[[email protected] ~]# systemctl start mysql[[email protected] ~]# heslo grep /var/log/mysqld.log2019-12-11T10:35:12.135133Z 1 [Poznámka] Dočasné heslo je generováno pro [email protected]:hJ(l8ySe>f>ENoznámka:zkopírujte heslo "hJ(l8ySe>f>E" toto heslo změníme:[[email protected] ~]# mysql_secure_installation --- ---->na všech serverech(percona1,percona2,percona3)Zabezpečení nasazení serveru MySQL.Zadejte heslo pro root uživatele:Platnost stávajícího hesla pro root uživatelského účtu vypršela. Nastavte si prosím nové heslo.Nové heslo:Zadejte znovu nové heslo:VALIDATE PASSWORD PLUGIN lze použít k testování hesel a zlepšení zabezpečení. Kontroluje sílu hesla a umožňuje uživatelům nastavit pouze ta hesla, která jsou dostatečně bezpečná. Chcete nastavit plugin OVĚŘENÍ HESLA?Stiskněte y|Y pro Ano, libovolné jiný klíč pro Ne:Použití existujícího hesla pro root. Změnit heslo pro root ? ((Stiskněte y|Y pro Ano, jakýkoli jiný klíč pro Ne) :... přeskočení. Ve výchozím nastavení je instalace MySQL ation má anonymního uživatele, který umožňuje komukoli přihlásit se do MySQL, aniž by pro něj musel mít vytvořený uživatelský účet. Toto je určeno pouze pro testování a aby instalace probíhala o něco plynuleji. Před přechodem do produkčního prostředí byste je měli odstranit. Odstranit anonymní uživatele? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :yesSuccess. Normálně by měl mít root povoleno připojení pouze z 'localhost'. To zajišťuje, že někdo nemůže uhodnout heslo root ze sítě. Zakázat vzdálené přihlášení root? (Stiskněte y|Y pro Ano, libovolnou jinou klávesu pro Ne) :yesSuccess. Ve výchozím nastavení MySQL přichází s databází nazvanou „test“, ke které má kdokoli přístup. Toto je také určeno pouze pro testování a mělo by být odstraněno před přesunem do produkčního prostředí. Odstranit testovací databázi a přístup k ní? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :... přeskočení. Opětovné načtení tabulek oprávnění zajistí, že všechny dosud provedené změny se projeví okamžitě. Znovu načíst tabulky oprávnění nyní? (Stiskněte y|Y pro Ano, jakoukoli jinou klávesu pro Ne) :yesSuccess.All hotovo!
Nyní zastavte server MySQL na percona1.
[[email protected] ~]# systemctl stop mysql
Nyní nakonfigurujeme naši replikaci, přidáme informace o replikaci do souboru my.cnf.
Nakonfigurujte nastavení replikace na percona1:
cat>>/etc/my.cnf<Nyní inicializujte cluster zavedením prvního uzlu. Toto musí být uzel s vaší hlavní databází, která bude použita jako zdroj dat pro cluster, v našem případě je to server percona1
[[email protected] ~]# systemctl start [email protected]řed konfigurací replikace musíme vytvořit samostatného uživatele pro replikaci, který bude použit pro proces replikace. proč potřebujeme uživatele replikace? když do clusteru přidáte nový uzel, vypíše aktuální konfiguraci uzlu a přenese ji do druhého uzlu. Z toho důvodu potřebujeme samostatného uživatele.POZNÁMKA: Ujistěte se, že uživatel by měl být stejný jako u proměnné „wsrep_sst_auth“ v konfiguraci replikace použité v souboru my.cnf.
[[email protected] ~]#mysql -u root -p mysql>vytvořit uživatele [email protected]'%' identifikovaného pomocí 'perconapasswd';mysql>udělit vše na *.* na [email protected] '%';mysql>vyprázdnění oprávnění;NA Percona2:
Nakonfigurujte nastavení replikace na percona2:
cat>>/etc/my.cnf<Nyní spusťte mysql a tím se tento uzel přidá do clusteru. [[email protected] ~]# systemctl spustí mysqlNA Percona3:
Nakonfigurujte nastavení replikace na percona3:
cat>>/etc/my.cnf<Nyní spusťte mysql a tím se tento uzel přidá do clusteru. [[email protected] ~]# systemctl spustí mysqltakové zprávy budete sledovat v protokolu mysql (var/log/mysqld.log)
(percona2):Převod stavu z 0,0 (percona1) dokončen
1.0 (percona3):Převod stavu z 0.0 (percona1) dokončen
Chcete-li se ujistit, že byl cluster inicializován, spusťte následující:
mysql> zobrazit stav jako 'wsrep%';+----------------------------------+- -------------------------------------------------- ----------+| Název_proměnné | Hodnota |+----------------------------------+------------- -------------------------------------------------+ | wsrep_local_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_protocol_version | 9 || wsrep_last_applied | 6 |...| wsrep_flow_control_recv | 0 || wsrep_flow_control_interval | [ 173, 173 ] || wsrep_flow_control_interval_low | 173 || wsrep_flow_control_interval_high | 173 || wsrep_flow_control_status | VYP |...| wsrep_local_state | 4 || wsrep_local_state_comment | Synchronizováno || wsrep_cert_index_size | 1 || wsrep_cert_bucket_count | 22 || wsrep_gcache_pool_size | 2384 |...| wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306 || wsrep_cluster_weight | 3 || wsrep_desync_count | 0 || wsrep_evs_delayed | || wsrep_evs_evict_list | || wsrep_evs_repl_latency | 0/0/0/0/0 || wsrep_evs_state | PROVOZNÍ || wsrep_gcomm_uuid | 1d16f574-1c1b-11ea-b5dd-574c9a653584 || wsrep_cluster_conf_id | 3 || wsrep_cluster_size | 3 || wsrep_cluster_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_cluster_status | Primární || wsrep_connected | ON || wsrep_local_bf_aborts | 0 || wsrep_local_index | 0 || wsrep_provider_name | Galera || wsrep_provider_vendor | Codership Oy|| wsrep_provider_version | 3,39(rb3295e6) || wsrep_ready | ON |+----------------------------------+------------- -------------------------------------------------+ 71 řádků v sadě (0,00 s) Jak vidíte, velikost clusteru je 3“wsrep_cluster_size | 3” a můžete také vidět IP našich tří uzlů
wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306Otestujte náš cluster:
Vytvářím databázi na percoanu 1 a poté zkontrolujeme na percoanu 3, že byla replikována.
mysql> zobrazit databáze;+--------------------+| Databáze |+---------------------+| informační_schéma || mysql || výkonnostní_schéma || sys |+--------------------+4 řádky v sadě (0,03 s)mysql> CREATE DATABASE perconatest;Dotaz je v pořádku, ovlivněn 1 řádek (0,03 s)Nyní se podíváme na percona3 a uvidíme, že bude vytvořena „perconatest“ DB
[[email protected] ~]# mysql -uroot -p -e "zobrazit databáze"Zadejte heslo:+--------------------+| Databáze |+---------------------+| informační_schéma || mysql || perconatest || výkonnostní_schéma || sys |+--------------------+