sql >> Databáze >  >> NoSQL >> MongoDB

Funkce MongoDB v ClusterControl 1.4

Naše nejnovější vydání ClusterControl promění některé z nejobtížnějších úkolů MongoDB na pouhých 15 sekund. Byly přidány nové funkce, které vám poskytují větší kontrolu nad clusterem a provádění změn topologie:

  • Převeďte MongoDB replicaSet na sdílený MongoDB Cluster
  • Přidávat a odebírat úlomky
  • Přidejte směrovače shardu do sdíleného clusteru MongoDB
  • Odstoupit nebo zmrazit uzel
  • Noví poradci MongoDB

Tyto přidané funkce podrobně popíšeme níže.

Převést MongoDB ReplicaSet na sdílený MongoDB Cluster

Protože většina uživatelů MongoDB začíná se sadou replicaSet pro uložení své databáze, jedná se o nejčastěji používaný typ clusteru. Pokud narazíte na problémy se škálováním, můžete tuto sadu replicaSet škálovat buď přidáním dalších sekundárních položek, nebo škálováním pomocí dělení. Existující sadu replicaSet můžete převést na sdílený cluster, ale jedná se o zdlouhavý proces, při kterém můžete snadno dělat chyby. V ClusterControl jsme tento proces zautomatizovali, kam automaticky přidáváme servery Config, routery a umožňujeme sharding.

Chcete-li převést sadu replicaSet na sdílený cluster, můžete ji jednoduše spustit pomocí rozbalovací nabídky akcí:

Otevře se dialog ve dvou krocích o tom, jak to převést na fragment. Prvním krokem je definovat, kam nasadit Configserver a směrovače shard:

Druhým krokem je, kam uložit data a které konfigurační soubory by měly být použity pro Configserver a shard router.

Po dokončení úlohy migrace fragmentu se nyní v přehledu clusteru místo instancí replicaSet zobrazí fragmenty:

Po převodu na sdílený cluster lze přidat nové fragmenty.

Přidat nebo odebrat úlomky z clusteru Sharded MongoDB

Přidávání útržků

Vzhledem k tomu, že fragment MongoDB je technicky sada replicaSet, přidání nového fragmentu zahrnuje také nasazení nové sady replicaSet. V rámci ClusterControl nejprve nasadíme novou sadu replicaSet a poté ji přidáme do sdíleného clusteru.

Z uživatelského rozhraní ClusterControl můžete snadno přidávat nové fragmenty pomocí dvoufázového průvodce, který se otevře z rozbalovací nabídky akcí:

Zde můžete definovat topologii nového fragmentu.

Jakmile bude nový shard přidán do clusteru, router shard MongoDB mu začne přidělovat nové kousky a balancer automaticky vyrovná všechny kousky přes všechny fragmenty.

Odstranění úlomků

Odebrání úlomků je o něco obtížnější než přidání úlomku, protože před odstraněním samotného úlomku je třeba přesunout data na jiné úlomky. Pro všechna data, která byla shardována přes všechny shardy, to bude úloha provedená balancérem MongoDB.

Jakákoli neshardovaná databáze/sbírka, které byl tento datový fragment přiřazen jako primární datový fragment, je však třeba přesunout do jiného datového fragmentu a vytvořit nový primární datový fragment. Pro tento proces potřebuje MongoDB vědět, kam přesunout tyto neshardované databáze/kolekce.

V ClusterControl je můžete jednoduše odstranit pomocí rozbalovací nabídky akcí:

To vám umožní vybrat fragment, který chcete odstranit, a fragment, do kterého chcete migrovat primární databáze:

Úloha, která odstraní fragment, pak provede podobné akce, jaké byly popsány dříve:přesune všechny primární databáze do určeného fragmentu, aktivuje balancer a poté počká, až přesune všechna data z fragmentu.

Jakmile budou všechna data odstraněna, odstraní se fragment z uživatelského rozhraní.

Přidání dalších směrovačů MongoDB Shard Router

Jakmile začnete svou aplikaci škálovat pomocí shardovaného clusteru MongoDB, možná zjistíte, že potřebujete další shard routery.

Přidání dalších shard routerů MongoDB je s ClusterControl velmi jednoduchý proces, stačí otevřít dialog Přidat uzel z rozbalovací nabídky akcí:

Tím se do clusteru přidá nový směrovač shard. Nezapomeňte na routeru nastavit správný výchozí port (27017).

Spustit server

V případě, že chcete provést údržbu primárního uzlu v sadě replicaSet, je lepší nechat jej nejprve elegantně „odstoupit“, než jej odpojíte. Odstoupení primárního v podstatě znamená, že hostitel přestane být primárním a stane se sekundárním a není způsobilý stát se primárním po stanovenou dobu. Uzly v MongoDB replicaSet s hlasovací schopností zvolí nové primární volby s vyloučením snížených primárních na nastavený počet sekund.

V ClusterControl jsme přidali funkci step down jako akci na stránce Nodes. Chcete-li přejít dolů, jednoduše vyberte toto jako akci z rozbalovací nabídky:

Po nastavení počtu sekund pro odstoupení a potvrzení primář odstoupí a bude zvolen nový primář.

Zmrazit uzel

Tato funkce je podobná příkazu step down:to způsobí, že určitý uzel se nemůže stát primárním na stanovený počet sekund. To znamená, že můžete zabránit tomu, aby se jeden nebo více sekundárních uzlů staly primárními, když odstoupíte od primárního, a přinutit určitý uzel, aby se stal novým primárním tímto způsobem.

V ClusterControl jsme přidali funkci zmrazení uzlu jako akci na stránce Nodes. Chcete-li zmrazit uzel, jednoduše vyberte toto jako akci z rozevíracího seznamu:

Po nastavení počtu sekund a potvrzení nebude uzel po nastavený počet sekund způsobilý jako primární.

Noví poradci MongoDB

Poradci jsou mini programy, které poskytují rady ohledně konkrétních problémů s databázemi. Přidali jsme tři nové poradce pro MongoDB. První vypočítá replikační okno, druhý dohlíží na replikační okno a třetí zkontroluje nerozdělené databáze/kolekce.

Poradce pro zpoždění replikace MongoDB

Zpoždění replikace je velmi důležité sledovat, pokud zvětšujete čtení přidáváním dalších sekundárních souborů. MongoDB použije tyto sekundární položky pouze v případě, že nebudou příliš zaostávat. Pokud má sekundární replikace zpoždění, riskujete, že budou obsluhována zastaralá data, která již byla přepsána na primární.

Chcete-li zkontrolovat zpoždění replikace, stačí se připojit k primární a načíst tato data pomocí příkazu replSetGetStatus. Na rozdíl od MySQL primární sleduje stav replikace svých sekundárních serverů.

Tuto kontrolu jsme implementovali do poradce v ClusterControl, abychom zajistili, že vaše zpoždění replikace bude vždy sledováno.

Poradce okna replikace MongoDB

Stejně jako zpoždění replikace je stejně důležitou metrikou, na kterou je třeba se dívat, i okno replikace. Poradce zpoždění nás již informuje o počtu sekund, po které je sekundární uzel za primárním/masterem. Vzhledem k tomu, že velikost oplogu je omezená, slave lag přináší následující rizika:

  1. Pokud uzel příliš zaostává, nemusí být schopen jej dohnat, protože transakce nutné k dohnání již nejsou v protokolu primárního serveru.
  2. Zaostávající sekundární uzel je ve volbách do MongoDB pro nový primární uzel méně preferován. Pokud všechny sekundární servery zaostávají v replikaci, budete mít problém a jeden s nejmenším zpožděním bude primární.
  3. Ovladač MongoDB méně upřednostňuje zaostávající sekundáry při škálování čtení pomocí MongoDB, navíc zvyšuje zátěž zbývajících sekundárních částí.

Pokud bychom měli sekundární uzel zaostalý o několik minut (nebo hodin), bylo by užitečné mít poradce, který nás informuje, kolik času nám zbývá, než bude naše další transakce vyřazena z oplogu. Časový rozdíl mezi prvním a posledním záznamem v oplogu se nazývá okno replikace. Tuto metriku lze vytvořit načtením první a poslední položky z oplogu a výpočtem rozdílu jejich časových razítek.

V prostředí MongoDB je již k dispozici funkce, která za vás vypočítá replikační okno. Tato funkce je však zabudována do prostředí příkazového řádku, takže jakékoli vnější připojení, které nevyužívá prostředí příkazového řádku, nebude mít tuto vestavěnou funkci. Proto jsme vytvořili poradce, který bude hlídat replikační okno a upozorní vás, pokud překročíte předem nastavenou hranici.

Poradce pro nerozdělené databáze a sbírky MongoDB

Nesdílené databáze a kolekce budou přiřazeny k výchozímu primárnímu fragmentu směrovačem shardu MongoDB. To znamená, že databáze nebo kolekce je omezena na velikost tohoto primárního datového fragmentu, a pokud by do něj byly zapsány velké objemy, mohly by využít veškerý zbývající prostor na disku datového fragmentu. Jakmile k tomu dojde, úlomek zjevně přestane fungovat. Proto je důležité hlídat všechny existující databáze a kolekce a skenovat konfigurační databázi, abyste ověřili, že byly povoleny pro sdílení.

Abychom tomu zabránili, vytvořili jsme nesdílenou databázi a poradce shromažďování. Tento poradce prohledá každou databázi a sbírku a upozorní vás, pokud nebyla sdílena.

ClusterControl zlepšila udržovatelnost MongoDB

Udělali jsme velký krok přidáním všech vylepšení do ClusterControl pro MongoDB replicaSets a sdílené clustery. To výrazně zlepšuje použitelnost MongoDB a umožňuje správcům databází, sysopům a vývojářům udržovat své clustery ještě lépe!


  1. Implementujte funkci automatického dokončování pomocí vyhledávání MongoDB

  2. Příliš mnoho otevřených souborů při zajištění indexového mongo

  3. Redis Vue Desktop

  4. 3 způsoby, jak skrýt index z plánu dotazů v MongoDB