Sdílet prostřednictvím


Vysoká dostupnost ve službě Azure Cosmos DB for PostgreSQL

PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívající rozšíření databáze Citus do PostgreSQL)

Vysoká dostupnost minimalizuje výpadky databáze udržováním pohotovostních replik každého uzlu v clusteru. Pokud uzel selže, Azure Cosmos DB for PostgreSQL přepne příchozí připojení z neúspěšného uzlu na pohotovostní repliku. Během několika minut dojde k převzetí služeb při selhání a uzly se zvýšenou úrovní mají vždycky čerstvá data prostřednictvím and synchronní replikace streamování PostgreSQL***.

Všechny primární uzly v clusteru jsou zřízeny do jedné zóny dostupnosti, aby se zlepšila latence mezi uzly. Upřednostňovaná zóna dostupnosti umožňuje umístit všechny uzly clusteru do stejné zóny dostupnosti, ve které je aplikace nasazená. Tato bezkontaktní komunikace by mohla dále zvýšit výkon snížením latence databáze aplikace. Pohotovostní uzly jsou zřízeny do jiné zóny dostupnosti. Azure Portal zobrazuje zónu dostupnosti každého primárního uzlu v clusteru. Zónu dostupnosti každého uzlu v clusteru můžete také zkontrolovat pomocí jedné z programových metod, jako jsou rozhraní REST API.

I bez povolené vysoké dostupnosti má každý uzel vlastní místně redundantní úložiště (LRS) se třemi synchronními replikami spravovanými službou Azure Storage. Pokud dojde k selhání jedné repliky, zjistí ji služba Azure Storage a transparentně se znovu vytvoří. Informace o odolnosti úložiště LRS najdete na této stránce v metrikách.

Pokud je povolená vysoká dostupnost, azure Cosmos DB for PostgreSQL spouští jeden pohotovostní uzel pro každý primární uzel v clusteru. Primární a jeho pohotovostní server používají synchronní replikaci PostgreSQL. Tato replikace umožňuje zákazníkům předvídatelný výpadek v případě selhání primárního uzlu. V maticovémshellu naše služba detekuje selhání na primárních uzlech a převezme služby při selhání pohotovostním uzlům s nulovou ztrátou dat.

Aby bylo možné využít vysokou dostupnost na koordinačním uzlu, musí databázové aplikace zjišťovat a opakovat ukončená připojení a neúspěšné transakce. Nově propagovaný koordinátor je přístupný se stejnými připojovací řetězec.

Stavy vysoké dostupnosti

Obnovení je možné rozdělit do tří fází: detekce, převzetí služeb při selhání a úplné obnovení. Azure Cosmos DB for PostgreSQL spouští pravidelné kontroly stavu na každém uzlu a po čtyřech neúspěšných kontrolách určí, že uzel je mimo provoz. Azure Cosmos DB for PostgreSQL pak podporuje pohotovostní režim na stav primárního uzlu (převzetí služeb při selhání) a vytvoří nový pohotovostní režim. Zahájí se replikace streamování, čímž se nový uzel aktualizuje. Když se replikují všechna data, uzel dosáhl úplného obnovení.

Azure Cosmos DB for PostgreSQL zobrazuje stav průběhu převzetí služeb při selhání na stránce Přehled pro clustery na webu Azure Portal.

  • V pořádku: Vysoká dostupnost je povolená a uzel se plně replikuje do pohotovostního režimu.
  • Probíhá převzetí služeb při selhání: Na primárním uzlu byla zjištěna chyba a bylo zahájeno převzetí služeb při selhání do pohotovostního režimu. Tento stav se po dokončení převzetí služeb při selhání do pohotovostního uzlu převede na vytvoření pohotovostního režimu a pohotovostní režim se stane novým primárním.
  • Vytvoření pohotovostního režimu: Předchozí pohotovostní režim byl povýšen na primární a vytvoří se pro něj nový pohotovostní režim. Až bude nová sekundární služba připravená, tento stav se postupně převede na replikaci.
  • Probíhá replikace: Zřídí se nový pohotovostní uzel a probíhá synchronizace dat. Jakmile se všechna data replikují do nového pohotovostního režimu, je mezi primárními a pohotovostními uzly povolená synchronní replikace a stav uzlů se vrátí zpět do stavu V pořádku.
  • Ne: Vysoká dostupnost není na tomto uzlu povolená.

Další kroky