Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Aké sú nastavenia konfigurácie kľúčov na optimalizáciu replikácie MySQL pre vysokú prenos


Aké sú nastavenia konfigurácie kľúčov na optimalizáciu replikácie MySQL pre vysokú prenos


Nastavenia kľúčových konfigurácií na optimalizáciu replikácie MySQL pre prostredia s vysokou prevádzkou zahŕňajú starostlivé ladenie rôznych replikácií a parametrov servera na vyváženie výkonu, spoľahlivosti a konzistentnosti údajov.

Použite aktívnu/pasívnu konfiguráciu:
V scenároch s vysokou premávkou sa odporúča používať aktívnu/pasívnu replikačnú architektúru, kde jeden primárny server MySQL (Master) zvláda všetky operácie zápisu a viac pasívnych replík (otroky) rukoväte operácií na čítanie. To efektívne rozdeľuje pracovné zaťaženie, čo umožňuje replikám slúžiť prenosu iba na čítanie, zatiaľ čo Master Ruckles zapisuje. Toto nastavenie sa vyhýba problémom zložitosti a konfliktov aktívnych/aktívnych konfigurácií. Asynchrónna replikácia, ktorá je bežná v tomto nastavení, však môže spôsobiť určité oneskorenie medzi hlavnými a replikami, takže logika aplikácie by mala zohľadniť požiadavky na konzistentnosť na čítanie.

Režim replikácie:
Replikácia MySQL podporuje asynchrónne a semi-synchrónne režimy replikácie. Asynchrónna replikácia je predvolená a ponúka vysoký výkon, ale s potenciálnym oneskorením replikácie. Semi-synchrónna replikácia zlepšuje konzistentnosť údajov tým, že Master bude čakať, kým aspoň jedna replika potvrdzuje prijatie transakcie pred pokračovaním. To znižuje riziko straty údajov v situáciách zlyhania, ale zvyšuje latenciu. V prípade vysokej prenosu by sa mali upraviť nastavenia časového limitu semi-synchrónneho režimu (predvolené 10 sekúnd), aby sa zabezpečilo správne kompromisy medzi konzistentnosťou a výkonom. Niekedy sa používajú zmiešané režimy, keď kritická replika používa semi-synchronizáciu a ďalšie používajú asynchrónne na vyváženie dostupnosti a výkonu.

Binárna konfigurácia protokolovania:
Povoľte binárne protokolovanie na hlavnom nastavení nastavením `log-bin` a priradiť jedinečný` server-ID`. Vyberte `binlog_format = row`, aby ste zaznamenali individuálne zmeny riadkov, a nie príkazy pre presnosť a konzistentnosť, najmä v zložitých pracovných zaťaženiach. Konfigurujte múdro politiky zadržiavania binárnych protokolov na vyváženie schopností obnovy a požiadaviek na ukladanie. Povoliť tiež `GTID_Mode = ON` a` ENFERCE_GTID_CONSSENCY = ON` pre identifikátory globálnych transakcií na zjednodušenie správy a zlyhania replikácie a vylepšenia automatizácie.

Topológia replikácie pre výkon:
Na škálovanie replikácie v scenároch s vysokou premávkou sa odporúča hierarchická topológia replikácie (tiež nazývaná pripútaná alebo replikácia relé). Master sa replikuje na stredný server (relé slave), ktorý sa zase replikuje na ďalšie repliky. Tým sa znižuje zaťaženie Master delegovaním siete a prenosu replikácie na stredné repliky. Táto topológia zmierňuje úzke miesta siete a zlepšuje celkovú priepustnosť replikácie. Je však povolenie na relé servery „log_slave_updates“, čo nesie režijné náklady na výkon a vyžaduje starostlivé monitorovanie, aby sa zabránilo kaskádovému oneskoreniu replikácie.

Paralelná replikácia na otrokoch:
Povoľte paralelnú replikáciu na replikách na zlepšenie výkonu replikácie. MySQL 5.6+ podporuje vykonanie slave SQL s viacerými vláknami. Konfigurovateľné možnosti ako `slave_parally_workers` Povoliť viac vlákien SQL Replikations Paralelne aplikovať transakcie, čím sa znížia oneskorenie replikácie pre pracovné zaťaženie s nezávislými transakciami. Na nastavenie optimálneho počtu vlákien na základe CPU a charakteristík pracovného zaťaženia je potrebné starostlivé ladenie bez toho, aby spôsobili spor.

Optimalizácia siete a pripojenia:
Optimalizovať konfiguráciu siete pre prenos replikácie pomocou:
- Používanie špecializovaných sieťových rozhraní na replikáciu.
- Povolenie kompresie v replikačných tokoch na zníženie využitia šírky pásma.
- Správna konfigurácia pravidiel brány firewall tak, aby bezpečne umožnila prenos replikácie.
-Použitie šifrovania SSL (povolenie `-ssl` možností) na zabezpečenie prenosu údajov, hoci pridáva niektoré režijné náklady CPU.
- Zhromažďovanie pripojení môže znížiť režijné náklady z častých nastavení pripojenia.

Úložisko a optimalizácia I/O:
Použite rýchle ukladanie (preferované SSD) na Master pre zápisy binárneho denníka, pretože binárne protokolovanie priamo ovplyvňuje replikáciu. Na replikách zvážte samostatné úložné zariadenia pre protokoly relé, aby ste predišli sporu o I/O. Optimalizujte nastavenia I/O plánovača a parametre systému súborov pre zápisy, pretože protokoly replikácií zahŕňajú sekvenčné zápisy s periodickými fsyncs. Latencia disku priamo ovplyvňuje oneskorenie replikácie a celkový výkon.

Nastavenia časového limitu a opakovania:
Upravte nastavenia časového limitu replikácie, ako napríklad `slave_net_timeout`, aby ste sa uistili, že replikačné pripojenia neklesnú predčasne v sieťach s vysokou prevádzkou alebo s vysokou latenciou. Okrem toho naladte `Master_retry_count` a súvisiace parametre opakovania pre lepšiu odolnosť počas prechodných zlyhaní siete.

Monitorovanie a varovanie:
Implementujte monitorovanie oneskorenia replikácie, priepustnosti siete, I/O diskov a využitie CPU. Nástroje môžu upozorniť na prahové hodnoty oneskorenia replikácie a ďalšie anomálie, ktoré môžu naznačovať degradáciu výkonu. Proaktívne monitorovanie je rozhodujúce v prostrediach s vysokou premávkou na udržanie zdravia replikácie.

Stratégie zlyhania a zálohovania:
Repliky sa musia pravidelne podporovať okrem použitia replikácie pre vysokú dostupnosť. Postupy zlyhania skúšajte často. Použite GTID na zjednodušenie obnovy zlyhania jednoduchým identifikáciou poslednej vykonanej transakcie a zabezpečením doháňania replík bez straty údajov. V pripútaných topológiách replikácie zabezpečte, aby boli relé otroky a repliky listov úplne synchronizované pred zlyhaním.

Ďalšie nastavenia:
- Zakázať zbytočné protokolovanie a monitorovanie replík, aby ste znížili režijné náklady.
- Použite `sync_binlog = 1` na Master pre trvanlivosť, s vedomím, ktoré ovplyvňuje výkon disku.
- Nalaďte `max_allowed_packet` na spracovanie veľkých transakcií v replikácii bez chýb.

Zhrnutie parametrov konfigurácie kľúčov:
- na pánovi:
- `Server-Id` (jedinečný)
-`log-bin = mysql-bin`
- `binlog_format = row`
- `gtid_mode = on`
- `presadzovanie_gtid_consistency = on`
- `sync_binlog = 1` (pre trvanlivosť)
- Na replikách:
- `Server-Id` (jedinečný odlišný od Master)
- `relé_log`
- `log_slave_updates` (ak sa použije ako stredné relé)
- `slave_paralle_workers` (> 1 pre paralelnú replikáciu)
-„Slave-Net-Timeout“ naladené pre sieťové podmienky
- režim replikácie:
- Povoliť polo-synchrónnu replikáciu pre kritické repliky (`rpl_semi_sync_master_enabled = on`,` rpl_semi_sync_slave_enabled = on`)
- Sieť:
- SSL povolená pre replikáciu
- Kompresia povolená, ak je priepustnosť obmedzená
- úložisko:
- SSD pre binárne a relé protokoly
- Ak je to možné, samostatné disky pre protokoly relé
- Topológia:
- Na distribúciu záťaže použite pripútanú alebo hierarchickú replikáciu.

Implementácia týchto nastavení v kombinácii s infraštruktúrou schopnou zvládnuť priepustnosť s vysokou sieťou a diskami zaistí, že replikácia MySQL bude optimálne vykonávať optimálne v prostredí s vysokou prevádzkou s lepšou správou oneskorenia replikácie, toleranciou porúch a konzistenciou údajov.