{"id":82116,"date":"2020-05-19T13:42:54","date_gmt":"2020-05-19T11:42:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt"},"modified":"2020-05-19T13:42:54","modified_gmt":"2020-05-19T11:42:54","slug":"orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","title":{"rendered":"Orchestrator pro MySQL: pro\u010d bez n\u011bj nelze budovat projekt s vysokou dostupnost\u00ed","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ka\u017ed\u00fd velk\u00fd projekt za\u010d\u00ednal s n\u011bkolika servery. Nejprve byl jeden DB server, pak mu p\u0159ibyli slave servery, aby se roz\u0161\u00ed\u0159ilo \u010dten\u00ed. A te\u010f \u2013 pozor! Mistr je jeden, ale slavy jsou mnoh\u00e9; pokud jeden ze slavy odejde, bude to v po\u0159\u00e1dku, ale pokud odejde mistr \u2013 bude to \u0161patn\u00e9: downtime, administr\u00e1to\u0159i v chaosu znovu zap\u00ednaj\u00ed server. Co d\u011blat? Rezervovat mistra. M\u016fj kolega Pavel o tom u\u017e psal, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/491044\/\">\u010dl\u00e1nek<\/a><\/noindex>, nebudu to opakovat. M\u00edsto toho v\u00e1m \u0159eknu, pro\u010d nutn\u011b pot\u0159ebujete Orchestrator pro MySQL!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nZa\u010dn\u011bme hlavn\u00ed ot\u00e1zkou: \u201eJak p\u0159epneme k\u00f3d na nov\u00fd stroj p\u0159i odchodu mistra?\u201c<\/p>\n<ul>\n<li>Sch\u00e9ma s VIP (virtu\u00e1ln\u00ed IP) se mi l\u00edb\u00ed nejv\u00edce, o n\u00ed si pov\u00edme n\u00ed\u017ee. Je nejsna\u017e\u0161\u00ed a nejv\u00edc z\u0159ejm\u00e1, i kdy\u017e m\u00e1 jedno jasn\u00e9 omezen\u00ed: mistr, kter\u00e9ho budeme rezervovat, mus\u00ed b\u00fdt v L2 segmentu s nov\u00fdm strojem, tedy na druh\u00e9 datacentrum m\u016f\u017eete zapomenout. A tak\u00e9, pokud dodr\u017e\u00edme pravidlo, \u017ee velk\u00fd L2 je zlo, proto\u017ee L2 je pouze na stojce, a mezi stojkami je L3, takov\u00e9 sch\u00e9ma m\u00e1 je\u0161t\u011b v\u011bt\u0161\u00ed omezen\u00ed.<\/li>\n<li>M\u016f\u017eete v k\u00f3du zapsat DNS jm\u00e9no a resolvovat ho p\u0159es \/etc\/hosts. Ve skute\u010dnosti se ale resolvac\u00ed nevytvo\u0159\u00ed. V\u00fdhodou sch\u00e9matu: nen\u00ed omezen\u00ed, jak\u00e9 je charakteristick\u00e9 pro prvn\u00ed zp\u016fsob, tedy je mo\u017en\u00e9 organizovat i cross-Datacentorum. Ale pak vznik\u00e1 z\u0159ejm\u00e1 ot\u00e1zka, jak rychle pomoc\u00ed Puppet-Ansible p\u0159ivezeme zm\u011bnu do \/etc\/hosts.<\/li>\n<li>Druh\u00fd zp\u016fsob lze trochu upravit: na v\u0161echny webov\u00e9 servery nainstalujeme cache DNS, p\u0159es kter\u00fd bude k\u00f3d chodit k mistru datab\u00e1ze. M\u016f\u017eete nastavit TTL 60 pro tento z\u00e1znam v DNS. Vypad\u00e1 to, \u017ee p\u0159i spr\u00e1vn\u00e9 implementaci je to dobr\u00fd zp\u016fsob.<\/li>\n<li>Sch\u00e9ma se slu\u017ebou discovery, kter\u00e9 zahrnuje pou\u017eit\u00ed Consul a etcd.<\/li>\n<li>Zaj\u00edmav\u00e1 varianta s <noindex><a rel=\"nofollow\" href=\"https:\/\/proxysql.com\/\">ProxySQL<\/a><\/noindex>. Je t\u0159eba ve\u0161ker\u00fd traffic na MySQL p\u0159esm\u011brovat p\u0159es ProxySQL, ProxySQL um\u00ed ur\u010dovat, kdo je pr\u00e1v\u011b mistr. Mimochodem, o jednom z pou\u017eit\u00ed tohoto produktu si m\u016f\u017eete p\u0159e\u010d\u00edst v m\u00e9m <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/501730\/\">\u010dl\u00e1nku<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nAutor Orchestrator, pracuj\u00edc\u00ed na GitHubu, nejprve realizoval prvn\u00ed sch\u00e9ma s VIP, a pak p\u0159e\u0161el na sch\u00e9ma s consul.<\/p>\n<p>Typick\u00e9 sch\u00e9ma infrastruktury:<\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pro MySQL: pro\u010d bez n\u011bj nelze budovat projekt s vysokou dostupnost\u00ed\" src=\"\/wp-content\/uploads\/2020\/05\/b08220e7aa6336229cbbfedd78afdcc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHned pop\u00ed\u0161u z\u0159ejm\u00e9 situace, kter\u00e9 je pot\u0159eba vz\u00edt v \u00favahu:<\/p>\n<ul>\n<li>VIP adresa by nem\u011bla b\u00fdt zaps\u00e1na v konfiguraci na \u017e\u00e1dn\u00e9m serveru. P\u0159edstavme si situaci: mistr se restartoval, a zat\u00edmco se na\u010d\u00edt\u00e1, Orchestrator p\u0159e\u0161el do re\u017eimu failover a ud\u011blal z jednoho ze slavy mistra; pot\u00e9 se spustil star\u00fd mistr, a te\u010f je VIP na dvou stroj\u00edch. To je \u0161patn\u011b.<\/li>\n<li>Pro orchestr\u00e1tor bude t\u0159eba napsat skript pro komunikaci se star\u00fdm a nov\u00fdm mistrem. Na star\u00e9m se mus\u00ed prov\u00e9st ifdown, zat\u00edmco na nov\u00e9m mistrovi se provede ifup vip. Bylo by tak\u00e9 dobr\u00e9 do tohoto skriptu zahrnout, \u017ee v p\u0159\u00edpad\u011b selh\u00e1n\u00ed se port na switchi star\u00e9ho mistra jednodu\u0161e vypne, aby se p\u0159ede\u0161lo jak\u00e9mukoli rozd\u011blen\u00ed brain\u016f.<\/li>\n<li>Jakmile orchestr\u00e1tor zavol\u00e1 v\u00e1\u0161 skript, aby nejprve odebral VIP a\/nebo vypnul port na switchi, a pot\u00e9 na nov\u00e9m mistrovi spustil skript pro zprovozn\u011bn\u00ed VIP, nezapome\u0148te p\u0159\u00edkazem arping \u0159\u00edct v\u0161em, \u017ee nov\u00fd VIP je nyn\u00ed zde.<\/li>\n<li>Na v\u0161ech slavech by m\u011blo b\u00fdt read_only=1, a jakmile pov\u00fd\u0161\u00edte slave na mistra, m\u011blo by b\u00fdt read_only=0.<\/li>\n<li>Nezapom\u00ednejte, \u017ee mistrem se m\u016f\u017ee st\u00e1t kter\u00fdkoli slave, kter\u00fd jsme vybrali pro tuto situaci (orchestr\u00e1tor m\u00e1 cel\u00fd mechanismus preferenc\u00ed, kter\u00fd slave je prvn\u00edm kandid\u00e1tem na nov\u00e9ho mistra, kter\u00fd na druh\u00e9m m\u00edst\u011b, a kter\u00fd slave by v \u017e\u00e1dn\u00e9m p\u0159\u00edpad\u011b nem\u011bl b\u00fdt zvolen mistrem). Pokud se slave stane mistrem, z\u016fstane na n\u011bm z\u00e1t\u011b\u017e slava a p\u0159id\u00e1 se z\u00e1t\u011b\u017e mistra, co\u017e je t\u0159eba zohlednit.<\/li>\n<\/ul>\n<p>\nPro\u010d tedy pot\u0159ebujete Orchestrator, pokud ho nem\u00e1te?<\/p>\n<ul>\n<li>Orchestrator m\u00e1 velmi u\u017eivatelsky p\u0159\u00edv\u011btiv\u00e9 grafick\u00e9 rozhran\u00ed, kter\u00e9 zobrazuje celou topologii (viz sn\u00edmek obrazovky n\u00ed\u017ee).<\/li>\n<li>Orchestrator m\u016f\u017ee sledovat, kter\u00e9 slaves zaost\u00e1vaj\u00ed, a kde do\u0161lo dokonce k poru\u0161e replikace (m\u00e1me k Orchestratoru p\u0159ipojen\u00e9 skripty pro zas\u00edl\u00e1n\u00ed SMS).<\/li>\n<li>Orchestrator v\u00e1m \u0159\u00edk\u00e1, na kter\u00fdch slaves je chyba GTID errant.<\/li>\n<\/ul>\n<p>\nRozhran\u00ed Orchestratoru:<\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pro MySQL: pro\u010d bez n\u011bj nelze budovat projekt s vysokou dostupnost\u00ed\" src=\"\/wp-content\/uploads\/2020\/05\/5129a85ad1c0a5db8e3ecf501cff0d0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nCo je to GTID errant?<\/p>\n<p>Existuj\u00ed dv\u011b z\u00e1kladn\u00ed po\u017eadavky pro fungov\u00e1n\u00ed Orchestratoru:<\/p>\n<ul>\n<li>Je t\u0159eba, aby na v\u0161ech stroj\u00edch MySQL clusteru bylo povoleno pseudo GTID, m\u00e1me povolen\u00fd GTID.<\/li>\n<li>Je t\u0159eba, aby v\u0161ude byl jeden typ binlog\u016f, m\u016f\u017ee to b\u00fdt statement. M\u011bli jsme takovou konfiguraci, kdy na mistrovi a v\u011bt\u0161in\u011b slaves byl Row a na dvou historicky z\u016fstal re\u017eim Mixed. V\u00fdsledkem bylo, \u017ee Orchestrator se jednodu\u0161e necht\u011bl p\u0159ipojit k t\u011bmto slaves jako k nov\u00e9mu mistrovi.<\/li>\n<\/ul>\n<p>\nPamatujte, \u017ee nejd\u016fle\u017eit\u011bj\u0161\u00ed v\u011bc\u00ed u production-slave je jeho konzistence s mistrem! Pokud m\u00e1te na mistrovi i na slave zapnut\u00fd Global Transaction ID (GTID), m\u016f\u017eete pomoc\u00ed funkce gtid_subset zjistit, zda na t\u011bchto stroj\u00edch byly skute\u010dn\u011b provedeny stejn\u00e9 po\u017eadavky na zm\u011bnu dat. V\u00edce o tom m\u016f\u017eete p\u0159e\u010d\u00edst zde. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/05\/19\/errant-transactions-major-hurdle-for-gtid-based-failover-in-mysql-5-6\/\">tady<\/a><\/noindex>.<\/p>\n<p>Orchestrator v\u00e1m tedy ukazuje prost\u0159ednictv\u00edm chyby GTID errant, \u017ee na slave jsou transakce, kter\u00e9 nejsou na masteru. Pro\u010d k tomu doch\u00e1z\u00ed?<\/p>\n<ul>\n<li>Na slave nen\u00ed povoleno read_only=1, n\u011bkdo se p\u0159ipojil a provedl dotaz na zm\u011bnu dat.<\/li>\n<li>Na slave nen\u00ed povoleno super_read_only=1, tak\u017ee se admin, zmaten\u00fd serverem, p\u0159ipojil a provedl tam dotaz.<\/li>\n<li>Pokud jste zohlednili oba p\u0159edchoz\u00ed body, je tu je\u0161t\u011b jeden trik: v MySQL tak\u00e9 dotaz na flush binlogy kon\u010d\u00ed v binlogu, tak\u017ee p\u0159i prvn\u00edm flush na masteru a na v\u0161ech slavech se objev\u00ed GTID errant. Jak se tomu vyhnout? V perona-5.7.25-28 se objevila mo\u017enost binlog_skip_flush_commands=1, kter\u00e1 zakazuje zapisovat flush do binlog\u016f. Na webu mysql.com je to evidov\u00e1no. <noindex><a rel=\"nofollow\" href=\"https:\/\/bugs.mysql.com\/bug.php?id=88720\">chyba<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nShr\u0148uji v\u0161e v\u00fd\u0161e uveden\u00e9. Pokud zat\u00edm nechcete pou\u017e\u00edvat Orchestrator v re\u017eimu failover, nastavte jej do re\u017eimu sledov\u00e1n\u00ed. Pak budete v\u017edy m\u00edt p\u0159ed sebou mapu interakce MySQL stroj\u016f a p\u0159ehledn\u00e9 informace o tom, jak\u00fd typ replikace je na ka\u017ed\u00e9m stroji, zda slave zpo\u017e\u010fuj\u00ed, a co je nejd\u016fle\u017eit\u011bj\u0161\u00ed \u2013 jak moc jsou konzistentn\u00ed s masterem!<\/p>\n<p>Odpov\u011b\u010f na z\u0159ejmou ot\u00e1zku: \u00abJak by m\u011bl Orchestrator fungovat?\u00bb. M\u011bl by vybrat nov\u00fd master z aktu\u00e1ln\u00edch slave a pot\u00e9 k n\u011bmu znovu p\u0159ipojit v\u0161echny slave (to je d\u016fvod, pro\u010d je pot\u0159ebn\u00fd GTID; pokud by se pou\u017e\u00edval star\u00fd mechanismus s binlog_name a binlog_pos, pak by p\u0159epnut\u00ed slave z aktu\u00e1ln\u00edho masteru na nov\u00fd prost\u011b nebylo mo\u017en\u00e9!). D\u0159\u00edve, ne\u017e jsme m\u011bli Orchestrator, musel jsem to jednou ud\u011blat ru\u010dn\u011b. Star\u00fd master zamrzal kv\u016fli chybov\u00e9mu ovlada\u010di Adaptec, m\u011bl kolem 10 slave. Musel jsem p\u0159en\u00e9st VIP z masteru na jeden ze slave a znovu p\u0159ipojit v\u0161echny ostatn\u00ed slave. Kolik konzol\u00ed jsem musel otev\u0159\u00edt, kolik sou\u010dasn\u00fdch p\u0159\u00edkaz\u016f zadat\u2026 Musel jsem \u010dekat a\u017e do 3 hodin r\u00e1no, uvolnit zat\u00ed\u017een\u00ed ze v\u0161ech slave krom\u011b dvou, ud\u011blat prvn\u00ed stroj z dvou masterem, ihned k n\u011bmu p\u0159ipojit druh\u00fd stroj, pot\u00e9 p\u0159ipojit v\u0161echny ostatn\u00ed slave k nov\u00e9mu masteru a vr\u00e1tit zat\u00ed\u017een\u00ed. Zkr\u00e1tka, hr\u016fza\u2026<\/p>\n<p>Jak Orchestrator funguje, kdy\u017e p\u0159ech\u00e1z\u00ed do re\u017eimu failover? Nejl\u00e9pe to uk\u00e1zat na p\u0159\u00edkladu situace, kdy chceme ud\u011blat masterem v\u00fdkonn\u011bj\u0161\u00ed, modern\u011bj\u0161\u00ed stroj ne\u017e ten, kter\u00fd m\u00e1me nyn\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pro MySQL: pro\u010d bez n\u011bj nelze budovat projekt s vysokou dostupnost\u00ed\" src=\"\/wp-content\/uploads\/2020\/05\/d2afe9c74b33765e55641b34def3145e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa obr\u00e1zku je zn\u00e1zorn\u011bn st\u0159ed procesu. Co bylo ud\u011bl\u00e1no p\u0159ed t\u00edmto momentem? \u0158ekli jsme, \u017ee chceme ud\u011blat n\u011bjak\u00e9ho slava nov\u00fdm mistrem, Orchestr\u00e1tor za\u010dal jednodu\u0161e p\u0159econnectovat k n\u011bmu v\u0161echny ostatn\u00ed slavy, p\u0159i\u010dem\u017e nov\u00fd mistr pln\u00ed roli tranzitn\u00edho stroje. P\u0159i takov\u00e9m sch\u00e9matu nedoch\u00e1z\u00ed k \u017e\u00e1dn\u00fdm chyb\u00e1m, v\u0161echny slavy funguj\u00ed, Orchestr\u00e1tor odstra\u0148uje VIP ze star\u00e9ho mistra, p\u0159en\u00e1\u0161\u00ed na nov\u00fd, nastavuje read_only=0 a zapom\u00edn\u00e1 na star\u00e9ho mistra. To je v\u0161e! Downtime na\u0161\u00ed slu\u017eby \u2013 to je doba p\u0159enosu VIP, co\u017e jsou 2-3 sekundy.<\/p>\n<p>Na dnes v\u0161e, v\u0161em d\u011bkuji. Brzy bude druh\u00fd \u010dl\u00e1nek o Orchestr\u00e1torovi. V zn\u00e1m\u00e9m sov\u011btsk\u00e9m filmu \u201eGar\u00e1\u017e\u201c jeden hrdina \u0159ekl: \u201eS n\u00edm bych ne\u0161el na pr\u016fzkum!\u201c Tak tedy, Orchestr\u00e1tore, \u0161el bych s tebou na pr\u016fzkum!<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/501994\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f! \u041c\u0430\u0441\u0442\u0435\u0440 \u043e\u0434\u0438\u043d, \u0430 \u0441\u043b\u0435\u0439\u0432\u043e\u0432 \u043c\u043d\u043e\u0433\u043e; \u0435\u0441\u043b\u0438 \u0443\u0439\u0434\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043b\u0435\u0439\u0432\u043e\u0432, \u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e, \u0430 \u0435\u0441\u043b\u0438 \u0443\u0439\u0434\u0435\u0442 \u043c\u0430\u0441\u0442\u0435\u0440 \u2014 \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u043e\u0445\u043e: \u0434\u0430\u0443\u043d\u0442\u0430\u0439\u043c, \u0430\u0434\u043c\u0438\u043d\u044b \u0432 \u043c\u044b\u043b\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0442\u0435\u0440. \u041c\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82117,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82116","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!\" \/>\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\/cs\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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 \u0434\u043b\u044f MySQL: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt\" \/>\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:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-19T11:42:54+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\udd47Orchestr\u00e1tor pro MySQL: pro\u010d ho nelze postavit bez n\u011bj odoln\u00fd projekt | ProHoster","description":"Ka\u017ed\u00fd velk\u00fd projekt za\u010d\u00ednal s p\u00e1r servery. Nejd\u0159\u00edve byl jeden DB-server, pak se k n\u011bmu p\u0159idali slavy pro \u0161k\u00e1lov\u00e1n\u00ed \u010dten\u00ed. A tady \u2014 stop!","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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 \u0434\u043b\u044f MySQL: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 | ProHoster","og:description":"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","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:54+00:00","article:modified_time":"2020-05-19T11:42:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82116","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:22","updated":"2022-10-07 20:28:08","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/82116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=82116"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/82116\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/82117"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=82116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=82116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=82116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}