Vytváření a správa replik pro čtení na flexibilním serveru Azure Database for PostgreSQL z webu Azure Portal, rozhraní příkazového řádku nebo rozhraní REST API
Článek
PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL
V tomto článku se dozvíte, jak vytvářet a spravovat repliky pro čtení na flexibilním serveru Azure Database for PostgreSQL z webu Azure Portal, rozhraní příkazového řádku a rozhraní REST API. Další informace o replikách pro čtení najdete v přehledu.
Požadavky
Instance flexibilního serveru Azure Database for PostgreSQL, která je primárním serverem.
Poznámka:
Při nasazování replik pro čtení pro trvalé náročné primární úlohy náročné na zápis může prodleva replikace pokračovat v růstu a nemusí nikdy dohnat primární úlohy. To může také zvýšit využití úložiště na primárním serveru, protože soubory WAL se odstraní pouze jednou přijaté v replice.
Kontrola primárního nastavení
Před nastavením repliky pro čtení pro flexibilní server Azure Database for PostgreSQL se ujistěte, že je primární server nakonfigurovaný tak, aby splňoval nezbytné požadavky. Konkrétní nastavení na primárním serveru může ovlivnit schopnost vytvářet repliky.
Automatické zvětšování úložiště: Nastavení automatického zvětšování úložiště na primárním serveru a replikách pro čtení musí dodržovat konkrétní pokyny, aby se zajistila konzistence a zabránilo přerušení replikace. Podrobné pravidla a nastavení najdete v automatickém zvětšování úložiště.
Ssd úrovně Premium v2: Aktuální verze nepodporuje vytváření replik pro čtení pro primární servery s využitím úložiště SSD úrovně Premium v2. Pokud vaše úloha vyžaduje repliky pro čtení, zvolte pro primární server jinou možnost úložiště.
Na webu Azure Portal zvolte instanci flexibilního serveru Azure Database for PostgreSQL, kterou chcete pro repliku použít.
V dialogovém okně Přehled si poznamenejte verzi PostgreSQL (např15.4. ). Všimněte si také, že primární oblast je nasazená (např. East US).
Na bočním panelu serveru v části Nastavení vyberte Compute + Storage.
Zkontrolujte a poznamenejte si následující nastavení:
Výpočetní úroveň, procesor, velikost (např Standard_D4ads_v5. ).
Úložiště
Velikost úložiště (např 128GB. )
Automatické zvětšování
Vysoká dostupnost
Povoleno nebo zakázáno
Nastavení zóny dostupnosti
Nastavení zálohování
Doba uchovávání
Možnosti redundance
V části Nastavení vyberte Sítě.
Zkontrolujte nastavení sítě.
Poznámka:
Příkazy uvedené v této příručce platí pro Azure CLI verze 2.56.0 nebo vyšší. Ujistěte se, že máte nainstalovanou požadovanou verzi nebo novější, abyste mohli tyto příkazy úspěšně spustit. Aktuální verzi Azure CLI můžete zkontrolovat spuštěním az --version v rozhraní příkazového řádku. Pokud chcete azure CLI aktualizovat na nejnovější verzi, postupujte podle pokynů uvedených v dokumentaci k Azure CLI.
Pokud chcete zobrazit konfiguraci a aktuální stav flexibilního serveru Azure PostgreSQL, použijte az postgres flexible-server show příkaz. Tento příkaz poskytuje podrobné informace o zadaném serveru.
az postgres flexible-server show \
--resource-group <resource-group> \
--name <server-name>
Nahraďte <resource-group> konkrétní <server-name> skupinu prostředků a názvem serveru, který chcete zobrazit.
Zkontrolujte a poznamenejte si následující nastavení:
Výpočetní úroveň, procesor, velikost (např Standard_D8ads_v5. ).
Pokud chcete získat informace o konfiguraci serveru na flexibilním serveru Azure Database for PostgreSQL, zejména k zobrazení nastavení pro nedávno zavedené funkce, jako je automatické zvětšování úložiště nebo privátní propojení, měli byste použít nejnovější verzi 2023-06-01-previewrozhraní API. Požadavek GET by se naformátoval takto:
Nahraďte {subscriptionId}a {resourceGroupName}{serverName} nahraďte ID předplatného Azure, názvem skupiny prostředků a názvem primárního serveru, který chcete zkontrolovat. Tento požadavek poskytuje přístup k podrobnostem konfigurace primárního serveru a zajišťuje správné nastavení pro vytvoření repliky pro čtení.
Zkontrolujte a poznamenejte si následující nastavení:
Výpočetní úroveň, procesor, velikost (např Standard_D8ads_v5. ).
Vyberte existující instanci flexibilního serveru Azure Database for PostgreSQL, která se má použít jako primární server.
Na bočním panelu serveru v části Nastavení vyberte Replikace.
Vyberte Vytvořit repliku.
Zadejte formulář Základy s následujícími informacemi.
Výběrem možnosti Zkontrolovat a vytvořit potvrďte vytvoření repliky nebo Další: Sítě , pokud chcete přidat, odstranit nebo upravit pravidla brány firewall.
Ponechte zbývající výchozí hodnoty a pak vyberte tlačítko Zkontrolovat a vytvořit v dolní části stránky nebo pokračujte k dalším formulářům a přidejte značky nebo změňte metodu šifrování dat.
Zkontrolujte informace v konečném potvrzovacím okně. Až budete připraveni, vyberte Vytvořit. Vytvoří se nové nasazení.
Během nasazení se zobrazí primární stav Updating .
Po vytvoření repliky pro čtení ji můžete zobrazit v okně Replikace .
az postgres flexible-server replica list \
--name <source-server-name> \
--resource-group <resource-group>
Nahraďte <source-server-name>a <resource-group> zadejte konkrétní hodnoty.
HTTP PUT Zahajte požadavek pomocí rozhraní API pro vytvoření serverů:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Tady je potřeba nahradit {subscriptionId}, {resourceGroupName}a {replicaserverName} za konkrétní ID předplatného Azure, název vaší skupiny prostředků a požadovaný název repliky pro čtení.
Po vytvoření repliky pro čtení je možné získat vlastnosti všech serverů, které jsou replikami primární repliky, inicializováním HTTP GET požadavku pomocí seznamu replik podle rozhraní API serveru:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/replicas?api-version=2022-12-01
Tady je potřeba nahradit {subscriptionId}, {resourceGroupName}a {sourceserverName} za konkrétní ID předplatného Azure, název vaší skupiny prostředků a název, který jste přiřadili primární replice.
Osvědčeným postupem pro používání zásad vytváření názvů prostředků (CAF) je architektura přechodu na cloud, která vám umožní snadno určit, k jaké instanci se připojujete nebo spravujete a kde se nachází.
Vyberte umístění jiné než primární, ale všimněte si, že můžete vybrat stejnou oblast.
Tip
Další informace o oblastech, ve kterých můžete vytvořit repliku, najdete v článku konceptů replik pro čtení.
Nastavte výpočetní prostředky a úložiště na to, co jste si poznamenali z primárního počítače. Pokud se zobrazené výpočetní prostředky neshodují, vyberte Konfigurovat server a vyberte odpovídající výpočetní prostředky.
Poznámka:
Pokud vyberete velikost výpočetních prostředků menší než primární, nasazení selže. Mějte také na paměti, že velikost výpočetních prostředků nemusí být dostupná v jiné oblasti.
Aby nedocházelo k problémům při povýšení replik, neustále mění následující parametry serveru na replikách, a teprve potom je použijete na primárním serveru: max_connections, max_prepared_transactions, max_locks_per_transaction, max_wal_senders. max_worker_processes
Vytvoření virtuálních koncových bodů
Poznámka:
Všechny operace zahrnující virtuální koncové body , jako je přidávání, úpravy nebo odebírání, se provádějí v kontextu primárního serveru.
Nahraďte <resource-group>, <virtual-endpoint-name><primary-name>, a <replica-name> vašimi konkrétními hodnotami.
K vytvoření virtuálního koncového bodu pomocí rozhraní REST API Azure byste použili HTTP PUT požadavek. Požadavek by vypadal takto:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints/{virtualendpointName}?api-version=2023-06-01-preview
Doprovodný text JSON pro tento požadavek je následující:
Na bočním panelu serveru v části Nastavení vyberte Replikace.
V horní části stránky se zobrazují koncové body čtenáře i zapisovače spolu s názvy serverů, na které odkazují.
Podrobnosti o virtuálním koncovém bodu můžete zobrazit pomocí list příkazu nebo show příkazu. Vzhledem k tomu, že pro dvojici primární repliky je povolený jenom jeden virtuální koncový bod, oba příkazy mají stejný výsledek.
Tady je příklad použití list příkazu:
az postgres flexible-server virtual-endpoint list \
--resource-group <resource-group> \
--server-name <server-name>
Nahraďte <server-name> názvem primárního serveru a <resource-group> názvem vaší skupiny prostředků.
Tento příkaz můžete použít takto show :
az postgres flexible-server virtual-endpoint show \
--name <virtual-endpoint-name>
--resource-group <resource-group> \
--server-name <server-name>
V tomto příkazu nahraďte <virtual-endpoint-name><server-name>a <resource-group> nahraďte odpovídajícími názvy. <server-name> je název vašeho primárního serveru.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints?api-version=2023-06-01-preview
Tady by měl být název primárního serveru, {sourceserverName} ze kterého spravujete virtuální koncové body.
Úprava aplikace tak, aby odkazovat na virtuální koncový bod
Upravte všechny aplikace, které používají instanci flexibilního serveru Azure Database for PostgreSQL, aby používaly nové virtuální koncové body (např corp-pg-001.writer.postgres.database.azure.com . a corp-pg-001.reader.postgres.database.azure.com).
Zvýšení úrovně replik
Se všemi potřebnými komponentami jste připraveni provést repliku povýšení na primární operaci.
Pokud chcete zvýšit úroveň repliky z webu Azure Portal, postupujte takto:
Na webu Azure Portal vyberte primární instanci flexibilního serveru Azure Database for PostgreSQL.
V nabídce serveru v části Nastavení vyberte Replikace.
V části Servery vyberte ikonu Zvýšit úroveň repliky.
V dialogovém okně se ujistěte, že je akce Povýšení na primární server.
V případě synchronizace dat se ujistěte, že je vybraná možnost Plánované – synchronizovat data .
Výběrem možnosti Zvýšit úroveň zahájíte proces. Jakmile se role dokončí, změní se role zpět: replika se stane primární a primární převezme roli repliky.
Při povýšení repliky na primární server na flexibilním serveru Azure PostgreSQL použijte az postgres flexible-server replica promote příkaz. Tento proces je nezbytný pro zvýšení úrovně serveru repliky tak, aby fungoval jako primární server a degradace aktuální primární role repliky. Zadejte --promote-mode switchover a --promote-option planned v příkazu.
Nahraďte <resource-group> a <replica-server-name> nahraďte konkrétní skupinu prostředků a název serveru repliky. Tento příkaz zajistí hladký přechod repliky na primární roli plánovaným způsobem.
Při povýšení repliky na primární server použijte HTTP PATCH požadavek s konkrétním JSON tělem a nastavte možnosti povýšení. Tento proces je zásadní v případě, že potřebujete zvýšit úroveň serveru repliky tak, aby fungoval jako primární server.
V tomto JSONpřípadě je povýšení nastavené tak, aby probíhalo v switchover režimu s planned možností povýšení. I když existují dvě možnosti povýšení – planned nebo forced – zvolte planned pro toto cvičení.
Poznámka:
Replika, kterou propagujete, musí mít přiřazený virtuální koncový bod čtenáře nebo se zobrazí chyba při povýšení.
Testování aplikací
Pokud chcete provést některé operace, restartujte aplikace a pak tyto operace zkuste. Vaše aplikace by měly bez problémů fungovat beze změny virtuálního koncového bodu připojovací řetězec nebo záznamů DNS. Nechte aplikace tentokrát spuštěné.
Navrácení služeb po obnovení na původní server a oblast
Opakujte stejné operace pro zvýšení úrovně původního serveru na primární server.
Na bočním panelu serveru v části Nastavení vyberte Replikace.
V části Servery vyberte ikonu Zvýšit úroveň repliky.
V dialogovém okně se ujistěte, že je akce Povýšení na primární server.
V případě synchronizace dat se ujistěte, že je vybraná možnost Plánované – synchronizovat data .
Vyberte Zvýšit úroveň, proces začíná. Jakmile se role dokončí, změní se role zpět: replika se stane primární a primární převezme roli repliky.
Tentokrát změňte <replica-server-name> příkaz tak az postgres flexible-server replica promote , aby odkazovala na váš starý primární server, který aktuálně funguje jako replika, a spusťte požadavek znovu.
Nahraďte <resource-group> a <replica-server-name> nahraďte konkrétní skupinu prostředků a název aktuálního serveru repliky.
Tentokrát změňte {replicaserverName} požadavek rozhraní API tak, aby odkazovala na váš starý primární server, který aktuálně funguje jako replika, a požadavek spusťte znovu.
V tomto JSONpřípadě je povýšení nastavené tak, aby probíhalo v switchover režimu s planned možností povýšení. I když existují dvě možnosti povýšení – planned nebo forced – zvolte planned pro toto cvičení.
Testování aplikací
Znovu přepněte na jednu z aplikací, které využívají. Počkejte na změnu Updating stavu primárního serveru a repliky a pokuste se provést některé operace. Během zvýšení úrovně repliky může vaše aplikace narazit na dočasné problémy s připojením ke koncovému bodu:
Přidání sekundární repliky pro čtení
Vytvořte sekundární repliku pro čtení v samostatné oblasti, abyste mohli upravit virtuální koncový bod čtenáře a umožnit vytvoření nezávislého serveru z první repliky.
Na webu Azure Portal zvolte primární instanci flexibilního serveru Azure Database for PostgreSQL.
Na bočním panelu serveru v části Nastavení vyberte Replikace.
Vyberte Vytvořit repliku.
Zadejte formulář Základy s informacemi ve třetí oblasti (např westuscorp-pg-westus-001.
Výběrem možnosti Zkontrolovat a vytvořit potvrďte vytvoření repliky nebo Další: Sítě , pokud chcete přidat, odstranit nebo upravit pravidla brány firewall.
Ověřte nastavení brány firewall. Všimněte si, jak se primární nastavení kopíruje automaticky.
Ponechte zbývající výchozí hodnoty a pak vyberte tlačítko Zkontrolovat a vytvořit v dolní části stránky nebo pokračujte k následujícím formulářům a nakonfigurujte zabezpečení nebo přidejte značky.
Zkontrolujte informace v konečném potvrzovacím okně. Až budete připraveni, vyberte Vytvořit. Vytvoří se nové nasazení.
Během nasazení se zobrazí primární stav Updating .
Zvolte jedinečný název, abyste <replica-name> ho odlišili od primárního serveru a všech ostatních replik.
Nahraďte <resource-group>, <source-server-name> a <location> konkrétními hodnotami.
Sekundární repliku pro čtení můžete vytvořit pomocí rozhraní API pro vytvoření serverů:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Zvolte jedinečný název, abyste {replicaserverName} ho odlišili od primárního serveru a všech ostatních replik.
Na webu Azure Portal zvolte primární instanci flexibilního serveru Azure Database for PostgreSQL.
Na bočním panelu serveru v části Nastavení vyberte Replikace.
Vyberte tři tečky a pak vyberte Upravit.
V dialogovém okně vyberte novou sekundární repliku.
Zvolte Uložit. Koncový bod čtečky je nyní zaměřen na sekundární repliku a operace povýšení je teď svázaná s touto replikou.
Koncový bod čtenáře teď můžete upravit tak, aby odkazovat na nově vytvořenou sekundární repliku az postgres flexible-server virtual-endpoint update pomocí příkazu. Nezapomeňte nahradit <replica-name> názvem nově vytvořené repliky pro čtení.
Nahraďte <resource-group>, <virtual-endpoint-name><server-name>, a <replica-name> vašimi konkrétními hodnotami.
Koncový bod čtenáře teď můžete upravit tak, aby odkazovat na nově vytvořenou sekundární repliku PATCH pomocí požadavku. Nezapomeňte nahradit {replicaserverName} názvem nově vytvořené repliky pro čtení.
Na webu Azure Portal zvolte primární server flexibilního serveru Azure Database for PostgreSQL.
Na bočním panelu serveru v nabídce serveru v části Nastavení vyberte Replikace.
V části Servery vyberte ikonu Zvýšit úroveň repliky, kterou chcete upřednostnit na nezávislý server.
V dialogovém okně se ujistěte, že je akce Povýšení na nezávislý server, a odeberte ji z replikace. Nebude to mít vliv na primární server.
V případě synchronizace dat se ujistěte, že je vybraná možnost Plánované – synchronizovat data .
Vyberte Zvýšit úroveň, proces začíná. Po dokončení už server není replikou primárního serveru.
Když upřednostníte repliku na flexibilním serveru Azure PostgreSQL, výchozím chováním je jeho povýšení na nezávislý server. Povýšení se dosahuje pomocí az postgres flexible-server replica promote příkazu bez zadání --promote-mode možnosti, protože standalone režim se ve výchozím nastavení předpokládá.
V tomto příkazu nahraďte <resource-group> název <replica-server-name> vaší konkrétní skupiny prostředků a názvem prvního serveru repliky, který jste vytvořili, který už není součástí virtuálního koncového bodu.
Repliku můžete zvýšit na samostatný server pomocí PATCH požadavku. Odešlete požadavek na zadanou PATCH adresu URL rozhraní REST API služby Azure Management s prvním JSON textem, kde PromoteMode je nastavená standalone hodnota a PromoteOption na plannedhodnotu . Druhý JSON základní formát, který je nastaven ReplicationRole na None, je zastaralý, ale stále zde zmíněn kvůli zpětné kompatibilitě.
Na bočním panelu serveru v části Nastavení vyberte Replikace.
V horní části stránky najděte Virtual endpoints oddíl. Přejděte na tři tečky (možnosti nabídky) vedle názvu koncového bodu, rozbalte ho a zvolte Delete.
Zobrazí se potvrzovací dialogové okno pro odstranění. Zobrazí se upozornění: "Tato akce odstraní virtuální koncový bod virtualendpointName. Každý klient připojený pomocí těchto domén může ztratit přístup." Potvrďte důsledky a potvrďte kliknutím na Odstranit.
Pokud chcete odebrat virtuální koncový bod z flexibilního serveru Azure PostgreSQL, můžete použít az postgres flexible-server virtual-endpoint delete tento příkaz. Tato akce trvale odstraní zadaný virtuální koncový bod.
V tomto příkazu nahraďte <resource-group>a <server-name><virtual-endpoint-name> za konkrétní skupinu prostředků, název serveru a název virtuálního koncového bodu, který chcete odstranit.
Pokud chcete odstranit virtuální koncový bod pomocí rozhraní REST API Azure, vydáte HTTP DELETE požadavek. Adresa URL požadavku by byla strukturovaná takto:
Repliku pro čtení můžete odstranit podobně jako samostatnou instanci flexibilního serveru Azure Database for PostgreSQL.
Na webu Azure Portal otevřete stránku Přehled repliky pro čtení. Vyberte Odstranit.
Repliku pro čtení můžete také odstranit z okna Replikace pomocí následujícího postupu:
Na webu Azure Portal vyberte primární instanci flexibilního serveru Azure Database for PostgreSQL.
V nabídce serveru v části Nastavení vyberte Replikace.
Vyberte repliku pro čtení, která chcete odstranit, a pak vyberte tři tečky. Vyberte Odstranit.
Potvrďte operaci Odstranění .
Pokud chcete odstranit primární server nebo server repliky az postgres flexible-server delete , použijte příkaz. Pokud server obsahuje repliky pro čtení, měli byste před odstraněním primárního serveru nejprve odstranit repliky pro čtení.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Nahraďte <resource-group> název vaší skupiny prostředků a <server-name> názvem serveru repliky, který chcete odstranit.
Pokud chcete odstranit primární server nebo server repliky, použijte rozhraní API pro odstranění serverů. Pokud server obsahuje repliky pro čtení, před odstraněním primárního serveru by se měly nejprve odstranit repliky pro čtení.
Primární server můžete odstranit pouze po odstranění všech replik pro čtení. Pokud chcete odstranit repliky, postupujte podle pokynů v části Odstranit repliku a pokračujte podle uvedených kroků.
Pokud chcete odstranit server z webu Azure Portal, postupujte takto:
Na webu Azure Portal vyberte primární instanci flexibilního serveru Azure Database for PostgreSQL.
Otevřete stránku Přehled serveru a vyberte Odstranit.
Zadejte název primárního serveru, který chcete odstranit. Výběrem možnosti Odstranit potvrďte odstranění primárního serveru.
Pokud chcete odstranit primární server nebo server repliky az postgres flexible-server delete , použijte příkaz. Pokud server obsahuje repliky pro čtení, před odstraněním primárního serveru by se měly nejprve odstranit repliky pro čtení.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Nahraďte <resource-group> název vaší skupiny prostředků a <server-name> názvem primárního serveru, který chcete odstranit.
Pokud chcete odstranit primární server nebo server repliky, použijte rozhraní API pro odstranění serverů. Pokud server obsahuje repliky pro čtení, před odstraněním primárního serveru by se měly nejprve odstranit repliky pro čtení.
Pro monitorování replik pro čtení jsou k dispozici dvě metriky.
Maximální prodleva fyzické replikace
K dispozici pouze na primárním serveru.
Metrika Max Physical Replication Lag (Maximální prodleva fyzické replikace) zobrazuje prodlevu bajtů mezi primárním serverem a nejvíce zpožděnou replikou.
Na webu Azure Portal vyberte primární server.
Vyberte Metriky. V okně Metriky vyberte Maximální prodleva fyzické replikace.
U agregace vyberte Max.
Metrika prodlevy repliky pro čtení
Metrika Prodleva repliky čtení zobrazuje čas od poslední přehrání transakce na replice. Pokud na primárním serveru nedojde k žádným transakcím, metrika tentokrát odráží prodlevu. Pokud například na primárním serveru nedojde k žádným transakcím a poslední transakce se přehrála před 5 sekundami, prodleva repliky čtení se zobrazí 5sekundové zpoždění.
Na webu Azure Portal vyberte repliku pro čtení.
Vyberte Metriky. V okně Metriky vyberte Prodleva repliky pro čtení.