Sdílet prostřednictvím


Repliky pro čtení ve službě Azure Cosmos DB pro PostgreSQL

Důležité

Azure Cosmos DB for PostgreSQL se už pro nové projekty nepodporuje. Tuto službu nepoužívejte pro nové projekty. Místo toho použijte jednu z těchto dvou služeb:

  • Azure Cosmos DB for NoSQL můžete použít pro distribuované databázové řešení navržené pro vysoce škálovatelné scénáře s 99,999% smlouvou o úrovni služeb (SLA), okamžitým automatickým škálováním a automatickým převzetím služeb při selhání napříč několika oblastmi.

  • Použijte funkci Elastic Clusters služby Azure Database for PostgreSQL pro horizontálně dělené PostgreSQL pomocí opensourcového rozšíření Citus.

Funkce repliky pro čtení umožňuje replikovat data z clusteru do clusteru jen pro čtení. Repliky se aktualizují asynchronně pomocí technologie fyzické replikace PostgreSQL. Z primárního serveru můžete spustit až 5 replik.

Repliky jsou nové clustery, které se spravují podobně jako běžné clustery. Za každou repliku pro čtení se vám účtuje zřízený výpočetní výkon ve virtuálních jádrech a úložiště v GiB za měsíc. Náklady na výpočetní prostředky a úložiště pro clustery replik jsou stejné jako u běžných clusterů.

Naučte se vytvářet a spravovat repliky.

Kdy použít repliku pro čtení

Funkce repliky pro čtení pomáhá zvýšit výkon a zlepšit škálování úloh náročných na čtení. Úlohy čtení je možné izolovat do replik a úlohy zápisu je možné směrovat na primární server.

Častým scénářem je, že BI a analytické úlohy využívají repliku určenou pro čtení jako zdroj dat pro tvorbu sestav.

Vzhledem k tomu, že jsou repliky jen pro čtení, nesnižují přímo kapacitu zápisu na primárním serveru.

Úvahy

Tato funkce je určená pro scénáře, kdy je přijatelná prodleva replikace a je určená pro přesměrování dotazů. Nejedná se o scénáře synchronní replikace, u kterých se očekává, že data repliky budou aktuální. Mezi primárním serverem a replikou bude měřitelné zpoždění. Zpoždění může být v řádu minut nebo dokonce hodin v závislosti na konkrétní úloze a latenci mezi primárním serverem a replikou. Data na replice nakonec budou konzistentní s daty na primárním serveru. Tuto funkci použijte pro úlohy, kterým toto zpoždění nevadí.

Vytvoření repliky

Při zahájení pracovního postupu vytváření repliky se vytvoří prázdný cluster. Nový cluster se naplní daty z primárního clusteru. Doba potřebná k vytvoření závisí na množství dat v primárním clusteru a době uplynulé od posledního týdenního úplného zálohování. Tato doba se může pohybovat od několika minut až po několik hodin.

Funkce repliky pro čtení využívá fyzickou replikaci PostgreSQL, a ne logickou replikaci. Výchozím režimem je streamingová replikace s využitím slotů replikace. V případě potřeby se pro dorovnání používá přenos protokolů.

Přečtěte si, jak vytvořit repliku pro čtení na webu Azure Portal.

Připojení k replice

Když vytvoříte repliku, nezdědí pravidla firewallu z primárního clusteru. Tato pravidla je potřeba pro repliku nastavit samostatně.

Replika dědí účet správce (citus) z primárního clusteru. Všechny uživatelské účty jsou replikovány na repliky pro čtení. K replice pro čtení se můžete připojit pouze s použitím uživatelských účtů, které jsou k dispozici na primárním serveru.

Ke koordinačnímu uzlu repliky se můžete připojit s použitím jeho názvu hostitele a platného uživatelského účtu, stejně jako u běžného clusteru. Pokud máte například server s názvem moje replika s uživatelským jménem správce citus, můžete se připojit k koordinačnímu uzlu repliky pomocí psql:

psql -h c-myreplica.12345678901234.postgres.cosmos.azure.com -U citus@myreplica -d postgres

Na příkazovém řádku zadejte heslo k uživatelskému účtu.

Zvýšení úrovně repliky na nezávislý cluster

Můžete povýšit repliku na vlastní nezávislý cluster, který je čitelný a zapisovatelný. Replika se zvýšenou úrovní přestane přijímat aktualizace z původní repliky a zvýšení úrovně není možné vrátit zpět. Repliky se zvýšenou úrovní můžou mít vlastní repliky.

Zvýšení úrovně repliky se běžně provádí ve dvou scénářích:

  1. Zotavení po havárii. Pokud dojde k problému s primárním clusterem nebo celou oblastí, můžete pro zápisy nouzově otevřít jiný cluster.

  2. Migrace do jiné oblasti Pokud chcete přejít do jiné oblasti, vytvořte v nové oblasti repliku, počkejte na dokončení synchronizace dat a pak zvyšte úroveň repliky. Pokud chcete zabránit možné ztrátě dat při zvyšování úrovně, po dokončení synchronizace repliky můžete zakázat zápisy do původního clusteru.

    Pomocí metriky replication_lag můžete zjistit, jak daleko replika dohnala. Další informace najdete v části Metriky.

Úvahy

Tato část shrnuje úvahy o funkci replikace pro čtení.

Nové repliky

Replika pro čtení se vytvoří jako nový klastr. Existující cluster nelze změnit na repliku. Repliku jiné repliky pro čtení nemůžete vytvořit.

Konfigurace repliky

Repliky dědí nastavení výpočetních, úložných a pracovních uzlů ze svých primárních uzlů. U repliky můžete změnit některá nastavení, ale ne všechna nastavení. Můžete například změnit výpočetní prostředky, pravidla brány firewall pro veřejný přístup a privátní koncové body pro privátní přístup. Velikost úložiště ani počet pracovních uzlů nemůžete změnit.

Nezapomeňte udržovat repliky dostatečně silné, aby zvládaly změny přicházející z primárního zdroje. Pokud například navyšujete kapacitu výpočetního výkonu v replikách, nezapomeňte ho škálovat na primární úrovni.

Pravidla brány firewall a nastavení parametrů se při vytváření nebo následném vytvoření repliky z primárního serveru do repliky nezdědí.

Replikace mezi oblastmi

Repliky pro čtení je možné vytvořit v oblasti primárního clusteru nebo v jakékoli jiné oblasti podporované službou Azure Cosmos DB for PostgreSQL. Limit 5 replik na cluster se počítá napříč všemi oblastmi. To znamená, že platí limit celkového počtu 5 replik, a ne 5 replik na oblast.

Další kroky