Späť na blog

Nastavenie replikácie v MySQL na Ubuntu

Nastavenie replikácie v MySQL na Ubuntu

Replikácia MySQL je zaujímavá funkcia, ktorá používateľom umožňuje spravovať viacero kópií jednej alebo viacerých databáz MySQL. Dáta sa automaticky kopírujú zo zdrojových do replikačných databáz. Môže to byť užitočné v mnohých situáciách, ako je napríklad práca s dátami bez ohrozenia hlavnej databázy, zálohovanie dát alebo škálovanie prístupu k databáze atď.

V tejto príručke prejdeme kroky nastavenia inštancie MySQL na jednom serveri ako zdrojovej databázy a následnej konfigurácie inštancie MySQL na inom serveri, aby fungovala ako jej replika.

Požiadavky

Táto príručka demonštruje veľmi jednoduchý príklad replikácie MySQL. Zahŕňa jednu zdrojovú a jednu replikačnú databázu. Zdrojová databáza je primárnou kópiou databázy, zatiaľ čo replikačná databáza bude replikou zdrojovej databázy. Pre našu ukážku sú nakonfigurované dva servery s nasledujúcimi IP adresami:

  • Zdrojový server: 31.171.240.179
  • Replikačný server: 31.171.250.139

Každý server je nakonfigurovaný s najnovšou konfiguráciou Ubuntu 20.04 server. Najprv postupujte podľa krokov v návode, ktoré ukazujú, ako nastaviť váš server Ubuntu. Upozorňujeme, že počet replikačných databáz môže byť vyšší. Táto príručka predpokladá, že už máte MySQL nainštalované a nakonfigurované. Potrebujete pomoc s inštaláciou MySQL? Táto príručka podrobne demonštruje kroky inštalácie a základného používania MySQL.

V skratke, tu sú balíky, ktoré potrebujete:

Brány firewall na oboch systémoch by mali byť nakonfigurované tak, aby povoľovali prevádzku z oboch systémov na porte 3306. Je to predvolený port pre MySQL. Viac o základoch UFW s ukážkou sa dozviete v našom príspevku na blogu.

Konfigurácia zdrojovej databázy

  • Úprava konfigurácie MySQL

MySQL používa my.cnf ako primárny konfiguračný súbor. Aktualizujeme my.cnf na označenie servera ako zdroj. Najprv otvorte konfiguračný súbor pomocou textového editora:

Potom pridajte nasledujúce riadky pod sekciu mysqld:

Replication in MySQL 4

Čo tieto riadky znamenajú?

  • bind-address: Toto je položka, ktorá definuje priradenie medzi službou a IP adresou. Predvolene môže byť hodnota 127.0.0.1 (localhost). Novou hodnotou bude IP adresa servera.
  • server-id: Pri replikácii MySQL musí mať každý server jedinečné ID servera. Môže to byť ľubovoľné číslo. Pre zjednodušenie je nastavené na 1.
  • log_bin: Ukladá skutočné podrobnosti o replikácii. Replikačná databáza skopíruje všetko, čo je zaznamenané v logu.
  • binlog_do_db: Táto položka určuje databázu, ktorá bude predmetom replikácie na replikačnom serveri. Databáz môže byť viac ako jedna. V tomto prípade je vzorová databáza newdatabase.

Po vykonaní zmien uložte konfiguračný súbor. MySQL vyžaduje reštart, aby sa načítali zmeny v my.cnf:

  • Udelenie oprávnenia pre replikačného používateľa

Ďalším krokom je vytvorenie replikačného používateľa a udelenie príslušných oprávnení. Musí sa to vykonať z prostredia MySQL shell. Najprv spustite MySQL shell:

Ďalej vytvorte vyhradeného používateľa pre replikačnú databázu. Podľa potreby zmeňte používateľské meno a heslo:

Teraz udeľte používateľovi príslušné oprávnenia:

Viac o používateľoch a oprávneniach v MySQL sa dozviete v našom príspevku na blogu. Potom znova načítajte tabuľku oprávnení, aby sa zmeny prejavili:

FLUSH PRIVILEGES

  • Úprava databázy

Na replike potrebujeme kópiu zdrojovej databázy. Je možné štruktúru vytvoriť manuálne. Vo väčšine prípadov je to však dosť nepohodlné. Preto je najoptimálnejším riešením priamy export databázy. V tomto príklade je zdrojová databáza newdatabase. Zmeňte aktuálnu databázu:

Nasledujúci príkaz uzamkne databázu, čím zabráni akýmkoľvek novým zmenám:

Potom skontrolujte stav databázy:

Replication in MySQL 3

Od tejto pozície začne replika databázy replikovať zo zdroja. Tieto čísla budú užitočné neskôr, preto si ich zaznamenajte. Ak sa vykonajú akékoľvek zmeny z rovnakého okna, MySQL automaticky odomkne databázu. Preto sa odporúča vykonať nasledujúce kroky na inej karte alebo v inom okne terminálu. Databáza je stále uzamknutá. Exportujte ju do prenosného súboru SQL:

Úloha je teraz dokončená. Ďalej odomknite databázu:

Nakoniec ukončite shell:

Konfigurácia repliky

Teraz je čas nakonfigurovať repliku databázy.

  • Importovanie zdrojovej databázy

Na replikačnom serveri potrebujeme kópiu zdrojovej databázy. Na tento účel použijeme predtým exportovaný súbor SQL. Spustite MySQL shell:

Potom vytvorte prázdnu databázu s rovnakým názvom databázy:

Ďalej ukončite shell:

Teraz importujte súbor SQL do databázy:

sudo mysql -u

  • Úprava konfigurácie MySQL

V konfiguračnom súbore MySQL je potrebné deklarovať niekoľko vecí. Otvorte konfiguračný súbor v textovom editore:

Nasledujúce záznamy budú patriť pod sekciu mysqld . V opačnom prípade to nebude fungovať. Prvým je ID servera. Ako už bolo spomenuté, musí byť jedinečné pre všetky servery v replikačnej konfigurácii zdroj-replika. Pre demonštráciu je nastavené na 2:

Ďalej pridajte nasledujúce riadky:

Replication in MySQL 2

Tu je novým záznamom iba relay-log . Je to log, ktorý replikačný server vytvára počas replikácie. Formát logu je rovnaký ako pri binárnom logu. Uložte konfiguračný súbor a reštartujte MySQL:

  • Povolenie replikácie

Nakoniec sme pripravení povoliť replikáciu priamo z MySQL. Spustite MySQL shell:

Spustite nasledujúci príkaz. Najprv príslušne zmeňte IP adresu, používateľské meno a heslá:

CHANGE MASTER TO MASTER_HOST

Príkaz vykoná nasledujúce:

  • Aktuálny server je označený ako replika zdrojového servera.
  • Replikačný server má správne prihlasovacie údaje.
  • Replikačný server vie, odkiaľ má začať replikovať. Pamätáte si stav databázy, ktorý sme kontrolovali na zdrojovom serveri? Zdrojový log súbor a pozícia logu pochádzajú odtiaľ.

Nakoniec aktivujte replikačný server:

START REPLICA

  • Rôzne

Potrebujete skontrolovať podrobnosti o aktuálnom stave repliky? Spustite nasledujúci príkaz v MySQL shelli. Znak \G na konci slúži na usporiadanie textov tak, aby boli čitateľnejšie:

Replication in MySQL 1

Ak sa vyskytne problém s pripojením, skúste spustiť replikačný server, aby ste ho preskočili:

Záver

Replikácia MySQL má mnoho dôsledkov. Je to len stručná ukážka jej základnej formy. Dá sa však ľahko rozšíriť na konfigurácie s viacerými zdrojmi a replikami. Rovnaké kroky budú platiť aj pre akékoľvek zložitejšie konfigurácie na vyššej úrovni. Vždy je dobré každú konfiguráciu následne otestovať. Skúste vykonať niekoľko príkazov insertdelete alebo update na zdrojovej databáze. Ak nastavenie funguje, replika databázy by mala všetko správne prevziať.

Okrem toho si môžete pozrieť ďalšie zdroje na našom blogu, ktoré sa venujú tomu, čo všetko môžete s MySQL robiť:

Príjemnú prácu s počítačom!

 

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.