{"id":82113,"date":"2020-05-19T13:42:51","date_gmt":"2020-05-19T11:42:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql"},"modified":"2020-05-19T13:42:51","modified_gmt":"2020-05-19T11:42:51","slug":"orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql","title":{"rendered":"Orkestrator ja VIP MySQL klastrite HA-lahendusena","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>SITIMOBILis kasutame MySQL andmebaasi kui peamist p\u00fcsivate andmete salvestamise kohta. Meil on mitmeid andmebaasi klastreid erinevate teenuste ja eesm\u00e4rkide tarvis.<\/p>\n<p>Meistri pidev k\u00e4ttesaadavus on kogu s\u00fcsteemi ja selle osade toimimise kriitiline n\u00e4itaja. Klastri automaatne taastamine meistri rikkega v\u00e4hendab oluliselt reageerimisaega ja s\u00fcsteemi seisu aega. Selles artiklis k\u00e4sitlen MySQL klastrite k\u00f5rge k\u00e4ttesaadavuse (HA) tagamise skeemi, mis p\u00f5hineb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/github\/orchestrator\">MySQL Orkestratoril<\/a><\/noindex> ja virtuaalsetel IP-aadressidel (VIP).<\/p>\n<p><img decoding=\"async\" alt=\"Orkestrator ja VIP MySQL klastrite HA-lahendusena\" src=\"\/wp-content\/uploads\/2020\/05\/a76ef93caee0fc13d2afb12c25a25531.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>VIP-p\u00f5hine HA-lahendus<\/h1>\n<p>\nAlustuseks r\u00e4\u00e4gin l\u00fchidalt meie andmesalvestuss\u00fcsteemist.<\/p>\n<p>Kasutame klassikalist replikatsiooni schooti, kus on \u00fcks kirjutatav meister ja mitu replit, mida kasutatakse ainult lugemiseks. Klastri v\u00f5ib sisaldada vahepealset meest \u2014 s\u00f5lme, mis on samal ajal ka replik ja meister teistele. Klientide p\u00e4ringud suunatakse replitelt l\u00e4bi HAProxy, mis v\u00f5imaldab koormust \u00fchtlaselt jaotada ja h\u00f5lpsasti skaleeruda. HAProxy kasutamine on ajaloost tulenev ning hetkel oleme migratsiooniprotsessis ProxySQL-ile.<\/p>\n<p>Replikatsioon toimub pool-s\u00fcnkroonse re\u017eiimi alusel <code>GTID<\/code>. See t\u00e4hendab, et v\u00e4hemalt \u00fcks replik peab kirjutama tehingu logisse, enne kui see loetakse edukaks. Selline replikatsiooni re\u017eiim tagab optimaalse tasakaalu j\u00f5udluse ja andmete s\u00e4ilitamise vahel peamise s\u00f5lme rikete korral. Peamiselt edastatakse k\u00f5ik muudatused meistrilt replitelle <code>Row Based Replication (RBR)<\/code>, kuid osa s\u00f5lme v\u00f5ib omada <code>mixed binlog format<\/code>.<\/p>\n<p>Orkestrator uuendab regulaarselt klastrite topoloogia staatust, anal\u00fc\u00fcsib saadud teavet ja probleemide ilmnemisel saab k\u00e4ivitada automaatse taastamisprotseduuri. Protseduuri eest vastutab arendaja, kuna seda saab ellu viia erinevatel viisidel: p\u00f5hinedes VIP-l, DNS-il, teenuste avastamise teenuste (service discovery) v\u00f5i enda lahenduste abil. <\/p>\n<p>\u00dcks lihtsamaid viise meistri taastamiseks tema rikete korral on liikuvate VIP-aadresside kasutamine.<\/p>\n<p>Mida tuleb selle lahenduse kohta teada, enne kui edasi minna:<\/p>\n<ul>\n<li>VIP on IP-aadress, mis ei ole seotud konkreetse f\u00fc\u00fcsilise v\u00f5rgu liidesega. Kui s\u00f5lm eba\u00f5nnestub v\u00f5i toimub plaaniline t\u00f6\u00f6, saame VIP-i suunata teisele ressursile minimaalse katkestusajaga.\n<\/li>\n<li>Virtuaalse IP-aadressi vabastamine ja v\u00e4ljastamine on odavad ja kiired toimingud.\n<\/li>\n<li>VIP-iga t\u00f6\u00f6tamiseks on vajalik juurdep\u00e4\u00e4s serverile SSH \u00fcle, v\u00f5i kasutada spetsiaalseid utiliite, n\u00e4iteks <code>keepalived<\/code>.\n<\/li>\n<\/ul>\n<p>\nVaatame v\u00f5imalikke probleeme meie meistriga ja kujutame ette, kuidas peaks t\u00f6\u00f6le hakkama automaatse taastumise mehhanism.<\/p>\n<h4>V\u00f5rguside meistriga on kadunud v\u00f5i on tekkinud probleem \u201erauda\u201d tasemel, ja server pole kergesti saadaval.<\/h4>\n<p><\/p>\n<ol>\n<li>Orkestreerija v\u00e4rskendab klastrite topoloogiat, iga koopia teatab meistri puudumisest. Orkestreerija k\u00e4ivitab protsessi, mille k\u00e4igus valitakse uus meister ja k\u00e4ivitab taastamise.\n<\/li>\n<li>P\u00fc\u00fcame VIP-i vana meistrilt eemaldada \u2014 tulutult.\n<\/li>\n<li>Koopia vahetab meistri rolli. Topoloogia rekonstrueeritakse.\n<\/li>\n<li>Lisame uue v\u00f5rgu liidese VIP-iga. Kuna VIP-i eemaldamine ei \u00f5nnestunud, k\u00e4ivitame taustal perioodilise p\u00e4ringu saatmise <b>gratuitous ARP<\/b>. See p\u00e4ring\/vastus v\u00f5imaldab v\u00e4rskendada \u00fchildatud l\u00fclitites IP- ja MAC-aadresside vastavustabelit, teavitades seega meie VIP-i liikumisest. See minimeerib t\u00f5en\u00e4osust <code>split brain<\/code> vana meistri tagasiviimisel. \n<\/li>\n<li>K\u00f5ik uued \u00fchendused suunatakse kohe uuele meistrile. Vanad \u00fchendused l\u00f5ppevad eba\u00f5nnestumisega, rakenduses tehakse korduvate p\u00e4ringute saatmine andmebaasi.\n<\/li>\n<\/ol>\n<p><\/p>\n<h4>Server t\u00f6\u00f6tab normaalses re\u017eiimis, andmebaasi tasemel on juhtunud t\u00f5rge.<\/h4>\n<p>\nAlgoritm on sarnane eelmise juhtumiga: topoloogia v\u00e4rskendamine ja taastamisprotsessi k\u00e4ivitamine. Kuna server on saadaval, vabastame edukalt VIP-i vanalt meistrilt, kanname selle uuele ja saadame mitu ARP-p\u00e4ringut. Vana meistri tagasiviimine ei tohiks m\u00f5jutada rekonstrueeritud klastrit ja rakenduse toimimist.<\/p>\n<h4>Teised probleemid<\/h4>\n<p>\nKoopiate v\u00f5i vahepealsete meistrite rikke <em>ei p\u00f5hjusta<\/em> automaatset tegutsemist ja n\u00f5uab k\u00e4sitsi sekkumist.<\/p>\n<p>Virtuaalne v\u00f5rguliides lisatakse alati ajutiselt, st p\u00e4rast serveri taask\u00e4ivitamist ei m\u00e4\u00e4rata VIP automaatselt. Iga andmebaasi eksemplar k\u00e4ivitub vaikes\u00e4tete kohaselt ainult lugemise re\u017eiimis, orkestrator vahetab automaatselt uue meistri kirjutamiseks ja proovib seadistada <code>ainult lugemine<\/code> vana meistri peal. Need toimingud on suunatud t\u00f5en\u00e4osuse v\u00e4hendamisele <code>split brain<\/code>.<\/p>\n<p>Taastamise protsessi k\u00e4igus v\u00f5ivad ilmneda probleemid, millest tuleb samuti teavitada l\u00e4bi orkestratori kasutajaliidese, lisaks standardsetele j\u00e4lgimisvahenditele. Oleme laiendanud REST API-d, lisades sellise v\u00f5imaluse (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openark\/orchestrator\/pull\/1088\">PR<\/a><\/noindex> praegu on \u00fclevaatamisel).<\/p>\n<p>\u00dcldine HA-lahenduse skeem on esitatud allpool.<\/p>\n<p><img decoding=\"async\" alt=\"Orkestrator ja VIP MySQL klastrite HA-lahendusena\" src=\"\/wp-content\/uploads\/2020\/05\/485dbbc8f2b1a7595f5fa4f36ad92f7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h1>Uue meistri valimine<\/h1>\n<p>\nOrkestrator on piisavalt intelligentne ja p\u00fc\u00fcab valida <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openark\/orchestrator\/blob\/5126b849ae4f655e1cbe0fbddfa0d7299674f712\/go\/inst\/instance_utils.go#L112\">k\u00f5ige sobivama replikatsiooni<\/a><\/noindex> uue meistrina j\u00e4rgmiste kriteeriumide alusel:<\/p>\n<ul>\n<li>replikatsiooni mahaj\u00e4\u00e4mus meistri ees;\n<\/li>\n<li>Meistri ja replikatsiooni MySQL versioon;\n<\/li>\n<li>replikatsiooni t\u00fc\u00fcp (RBR, SBR v\u00f5i segatud);\n<\/li>\n<li>asukoht \u00fches v\u00f5i erinevates andmekeskustes;\n<\/li>\n<li>erinevate <code>errant GTID<\/code> \u2014 tehingud, mis on sooritatud replikatsioonil ja puuduvad meistril;\n<\/li>\n<li>arvesse v\u00f5etakse ka kasutaja m\u00e4\u00e4ratud valikureegleid.\n<\/li>\n<\/ul>\n<p>\nIga replikatsioon ei ole ideaalne kandidaat meistri rolliks. N\u00e4iteks v\u00f5ib replikatsioon olla andmete varundamiseks kasutatav v\u00f5i serveril v\u00f5ib olla n\u00f5rgem riistvara konfiguratsioon. Orkestrator <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openark\/orchestrator\/blob\/master\/docs\/topology-recovery.md#adding-promotion-rules\">toetab<\/a><\/noindex> k\u00e4skude reeglite abil saab seadistada oma eelistusi kandidaadi valimisel alates k\u00f5ige eelistatumast kuni ignoreeritavani.<\/p>\n<h1>Reaktsiooniaeg ja taastamine<\/h1>\n<p>\nT\u00f5rke korral on oluline v\u00f5imalikult kiiresti v\u00e4hendada s\u00fcsteemi seisakuaega, seet\u00f5ttu vaatame MySQL parameetreid, mis m\u00f5jutavad orkestratori klastrite topoloogia loomist ja uuendamist:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/replication-options-slave.html#sysvar_slave_net_timeout\"><code>slave_net_timeout<\/code><\/a><\/noindex> \u2014 sekundite arv, mille jooksul replikatsioon ootab uusi andmeid v\u00f5i meistri poolt saadetavat heartbeat-signaali, enne kui \u00fchendus tunnistatakse kadunuks ja toimub \u00fcmber\u00fchendamine. Mida v\u00e4iksem on v\u00e4\u00e4rtus, seda kiiremini saab replikatsioon m\u00e4\u00e4rata, et \u00fchendus meisteriga on katkenud. Seame selle v\u00e4\u00e4rtuse 5 sekundiks.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/change-master-to.html\"><code>MASTER_CONNECT_RETRY<\/code><\/a><\/noindex> \u2014 sekundide arv taaskoondamiskatsete vahel. Kui esinevad v\u00f5rguprobleemid, v\u00f5imaldab madal selle parameetri v\u00e4\u00e4rtus kiiresti uuesti \u00fchenduda ja v\u00e4ltida klastrite taastamisprotsessi k\u00e4ivitamist. Soovitatav v\u00e4\u00e4rtus on 1 sekund.\n<\/li>\n<li><code>MASTER_RETRY_COUNT<\/code> \u2014 maksimaalne katsete arv taaskoondamiseks. \n<\/li>\n<li><code>MASTER_HEARTBEAT_PERIOD<\/code> \u2014 sekundite vahemaa, p\u00e4rast mida master saadab heartbeat-signaali. Vaikimisi on see pool v\u00e4\u00e4rtusest <code>slave_net_timeout<\/code>.\n<\/li>\n<\/ul>\n<p>\nOrkestratori parameetrid:<\/p>\n<ul>\n<li><code>DelayMasterPromotionIfSQLThreadNotUpToDate<\/code> \u2014 kui on seatud <code>true<\/code>, siis ei rakendata master'i rolli kandidaadireplikas enne, kui replikatsiooni SQL-voog on t\u00e4itnud k\u00f5ik rakendamata tehingud Relay Log's. Me kasutame seda valikut, et mitte kaotada tehinguid, kui k\u00f5ik kandidaadireplikad on maas.\n<\/li>\n<li><code>InstancePollSeconds<\/code> \u2014 tipu ja topoloogia uuendamise sagedus.\n<\/li>\n<li><code>RecoveryPollSeconds<\/code> \u2014 topoloogia anal\u00fc\u00fcsi sagedus. Probleemide avastamisel k\u00e4ivitub topoloogia taastamine. See on<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/github\/orchestrator\/blob\/548265494b3107ca2581d6ccee059e062a759b77\/go\/config\/config.go#L45\"> konstant<\/a><\/noindex>, mis on 1 sekund.\n<\/li>\n<\/ul>\n<p>\nIga klastrite s\u00f5lm k\u00fcsitakse orkestratori poolt \u00fcks kord <code>InstancePollSeconds<\/code> sekundi jooksul. Probleemi avastamisel v\u00e4rskendatakse klastriseisundit sundv\u00f5imuga<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/github\/orchestrator\/blob\/548265494b3107ca2581d6ccee059e062a759b77\/go\/logic\/topology_recovery.go#L1409\"> , seej\u00e4rel tehakse l\u00f5plik otsus taastamise kohta. Katsetades erinevaid andmebaasi ja orkestratori parameetreid, oleme suutnud v\u00e4hendada reageerimise ja taastamise kestust 30 sekundini.<\/a><\/noindex>HA-skeemi teste alustasime kohaliku<\/p>\n<h1>Testseade<\/h1>\n<p>\ntestimise seadmestiku <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ParshinPavel\/mysql-ha-sandbox\">arendamise ja edasise rakendamisega testimis- ja tootmiskeskkondades. Kohalik seade on t\u00e4ielikult automatiseeritud Docker'i p\u00f5hjal ja v\u00f5imaldab katsetada orkestratori ja v\u00f5rgu konfiguratsiooni, skaleerida klastrit 2-3 serverilt mitmek\u00fcmnele ja l\u00e4bi viia harjutusi turvalises keskkonnas.<\/a><\/noindex> Harjutuste ajal valime \u00fcht probleemide emuleerimise meetodit: master'i hetkeline sulgemine kasutades <\/p>\n<p>kill -9 <code>, protsessi \u00f5rn sulgemine ja serveri seiskamine (<\/code>docker-compose stop<code>), v\u00f5rguprobleemide simuleerimine kasutades<\/code>iptables -j REJECT <code>iptables -j DROP<\/code> v\u00f5i <code>. Ootame selliseid tulemusi:<\/code>orkestrator tuvastab probleeme master'iga ja v\u00e4rskendab topoloogiat mitte rohkem kui 10 sekundiga;<\/p>\n<ul>\n<li>taastamisprotseduur k\u00e4ivitub automaatselt: muutub v\u00f5rgu konfiguratsioon, master'i roll l\u00e4heb replikale, topoloogia uueneb;\n<\/li>\n<li>taastamisprotseduur k\u00e4ivitub automaatselt: muudatatakse v\u00f5rgu konfiguratsiooni, peamine roll antakse replikale, topoloogia ehitatakse \u00fcmber;\n<\/li>\n<li>uus meister on salvestamiseks saadaval, elavad koopiad ei kao \u00fcmberkorraldamise k\u00e4igus;\n<\/li>\n<li>andmed hakkavad salvestuma uude meistrisse ja replitseeruma;\n<\/li>\n<li>\u00fcldine taastamisaeg ei \u00fcleta 30 sekundit.\n<\/li>\n<\/ul>\n<p>\nNagu teate, v\u00f5ib s\u00fcsteem test- ja tootmiskeskkondades k\u00e4ituda erinevalt, kuna riistvara ja v\u00f5rgu konfiguratsioon, s\u00fcnteetilise ja reaalse koormuse erinevused jne. Seet\u00f5ttu viime aeg-ajalt l\u00e4bi harjutusi reaalsetes tingimustes, kontrollides, kuidas s\u00fcsteem k\u00e4itub v\u00f5rgu\u00fchenduse kadumise v\u00f5i selle \u00fcksikute osade halvenemise korral. Tulevikus tahame ehitada m\u00f5lemale keskkonnale t\u00e4ielikult identse infrastruktuuri ja automatiseerida selle testimise.<\/p>\n<h1>J\u00e4reldused<\/h1>\n<p>\nAndmesalvestuss\u00fcsteemi p\u00f5hielemendi t\u00f6\u00f6kindlus on SRE ja ekspluateerimise meeskonna \u00fcks peamisi \u00fclesandeid. Orkestrandi ja HA-lahenduse rakendamine VIP-i p\u00f5hjal on v\u00f5imaldanud saavutada j\u00e4rgmised tulemused:<\/p>\n<ul>\n<li>usaldusv\u00e4\u00e4rne DB klastrite topoloogia probleemide tuvastamine;\n<\/li>\n<li>automaatne ja kiire reageerimine meistriga seotud intsidentidele, mis v\u00e4hendab s\u00fcsteemi seisakuaega.\n<\/li>\n<\/ul>\n<p>\nKuid lahendusel on oma piirangud ja puudused:<\/p>\n<ul>\n<li>HA-skeemi skaleerimine mitme andmekeskuse vahel n\u00f5uab \u00fchtset L2-v\u00f5rku nende vahel;\n<\/li>\n<li>enne VIP-i m\u00e4\u00e4ramist uuele meistrile tuleb see eemaldada vanalt. Protsess on sequential, mis pikendab taastamisaega;\n<\/li>\n<li>VIP-i vabastamine n\u00f5uab SSH-juurdep\u00e4\u00e4su serverile v\u00f5i m\u00f5nd muud kaugprotseduuride v\u00e4ljakutse meetodit. Kuna server v\u00f5i DB kogeb probleeme, mis p\u00f5hjustasid taastamisprotsessi, ei saa me olla kindlad, et VIP-i eemaldamine \u00f5nnestub. See v\u00f5ib viia kahe \u00fchesuguse virtuaalse IP-aadressiga serveri ja probleemideni. <code>split brain<\/code>.\n<\/li>\n<\/ul>\n<p>\nProbleemide v\u00e4ltimiseks <code>split brain<\/code>, v\u00f5ib kasutada meetodit <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/STONITH\">STONITH<\/a><\/noindex> ('Shoot The Other Node In The Head'), mis isoleerib v\u00f5i katkestab probleemi tekitava s\u00f5lme t\u00e4ielikult. On ka teisi k\u00f5rge k\u00e4ttesaadavuse rakendamise meetodeid: VIP-i ja DNS-i kombinatsioon, teenuste tuvastamine ja vaheteenused, s\u00fcnkroonne replikatsioon ja muud meetodid, millel on oma puudused ja eelised.<\/p>\n<p>R\u00e4\u00e4kisin meie l\u00e4henemisest MySQLi vastupidava klastriga. See on rakendamisel lihtne ja tagab aktsepteeritava usaldusv\u00e4\u00e4rsuse hetkeoludes. Kogu s\u00fcsteemi ja eriti infrastruktuuri j\u00e4tkudes areneb see l\u00e4henemine kindlasti edasi.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/491044\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0421\u0438\u0442\u0438\u043c\u043e\u0431\u0438\u043b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 MySQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0446\u0435\u043b\u0438. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0435\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u0430\u0437\u0430 \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u0438 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82114,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0421\u0438\u0442\u0438\u043c\u043e\u0431\u0438\u043b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 MySQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Orchestrator \u0438 VIP \u043a\u0430\u043a HA-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 MySQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0421\u0438\u0442\u0438\u043c\u043e\u0431\u0438\u043b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 MySQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-19T11:42:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-19T11:42:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Orkestrator ja VIP kui HA-lahendus MySQL klastri jaoks | ProHoster","description":"SITIMOBILis kasutame MySQL andmebaasi peamise p\u00fcsiv\u00e4\u00e4rtuste salvestusena.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Orchestrator \u0438 VIP \u043a\u0430\u043a HA-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 MySQL | ProHoster","og:description":"\u0412 \u0421\u0438\u0442\u0438\u043c\u043e\u0431\u0438\u043b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 MySQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/orchestrator-i-vip-kak-ha-reshenie-dlya-klastera-mysql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-19T11:42:51+00:00","article:modified_time":"2020-05-19T11:42:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82113","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:44:23","updated":"2022-09-28 00:08:45","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/82113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=82113"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/82113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/82114"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=82113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=82113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=82113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}