Vytváření a správa replik pro čtení pomocí Azure CLI nebo rozhraní REST API

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

V tomto článku se naučíte vytvářet a spravovat repliky pro čtení ve službě Azure Database for PostgreSQL pomocí Rozhraní příkazového řádku Azure a rozhraní REST API. Další informace o replikách pro čtení najdete v přehledu.

Podpora replikace Azure

Repliky pro čtení i logické dekódování závisejí na hlavičkovém protokolu Postgres (WAL) pro informace. Tyto dvě funkce vyžadují různé úrovně protokolování z Postgres. Logické dekódování vyžaduje vyšší úroveň protokolování než repliky pro čtení.

Ke konfiguraci správné úrovně protokolování použijte parametr podpory replikace Azure. Podpora replikace Azure má tři možnosti nastavení:

  • Vypnuto - Umístí nejmenší informace do WAL. Toto nastavení není k dispozici na většině serverů Azure Database for PostgreSQL.
  • Replika – více podrobných než Vypnuto. Toto je minimální úroveň protokolování potřebná k tomu, aby repliky pro čtení fungovaly . Toto nastavení je výchozí na většině serverů.
  • Logické – více podrobné než replika. Toto je minimální úroveň protokolování, aby logické dekódování fungovalo. V tomto nastavení fungují také repliky pro čtení.

Poznámka:

Při nasazování replik pro trvalé primární úlohy náročné na zápis může prodleva replikace pokračovat a nemusí být nikdy schopná dohnat primární úlohy. Může se tím také zvýšit využití úložiště na primárním serveru, protože soubory WAL se neodstraní, dokud je neobdrží replika.

Azure CLI

Repliky pro čtení můžete vytvářet a spravovat pomocí Azure CLI.

Požadavky

Příprava primárního serveru

  1. Zkontrolujte hodnotu primárního azure.replication_support serveru. Aby repliky pro čtení fungovaly, mělo by to být alespoň REPLIKA.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Pokud azure.replication_support není aspoň replika, nastavte ji.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Restartujte server, aby se změna použila.

    az postgres server restart --name mydemoserver --resource-group myresourcegroup
    

Vytvoření repliky pro čtení

Příkaz az postgres server replica create vyžaduje následující parametry:

Nastavení Příklad hodnoty Popis
resource-group myresourcegroup Skupina prostředků, ve které se vytvoří server repliky.
name mydemoserver-replica Název nového serveru repliky, který se vytvoří.
source-server mydemoserver Název nebo ID prostředku existujícího primárního serveru, ze které se má replikovat. ID prostředku použijte, pokud chcete, aby se replika a primární skupiny prostředků liší.

V následujícím příkladu rozhraní příkazového řádku se replika vytvoří ve stejné oblasti jako primární.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup

K vytvoření repliky pro čtení mezi oblastmi použijte --location parametr. Následující příklad rozhraní příkazového řádku vytvoří repliku v oblasti USA – západ.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup --location westus

Poznámka:

Další informace o oblastech, ve kterých můžete vytvořit repliku, najdete v článku konceptů replik pro čtení.

Pokud jste parametr nenastavili na repliku azure.replication_support na primárním serveru pro obecné účely nebo optimalizováno pro paměť a restartovali server, zobrazí se chyba. Před vytvořením repliky dokončete tyto dva kroky.

Důležité

Projděte si část s aspekty přehledu repliky pro čtení.

Před aktualizací nastavení primárního serveru na novou hodnotu aktualizujte nastavení repliky na stejnou nebo vyšší hodnotu. Tato akce pomáhá replikě držet krok se všemi změnami provedenými v primárním serveru.

Výpis replik

Seznam replik primárního serveru můžete zobrazit pomocí příkazu az postgres server replica list .

az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup 

Zastavení replikace na server repliky

Replikaci mezi primárním serverem a replikou pro čtení můžete zastavit pomocí příkazu az postgres server replica stop .

Jakmile zastavíte replikaci na primární server a repliku pro čtení, nedá se vrátit zpět. Replika pro čtení se stane samostatným serverem, který podporuje čtení i zápisy. Samostatný server nelze znovu vytvořit do repliky.

az postgres server replica stop --name mydemoserver-replica --resource-group myresourcegroup 

Odstranění primárního serveru nebo serveru repliky

Pokud chcete odstranit primární server nebo server repliky , použijte příkaz az postgres server delete .

Když odstraníte primární server, zastaví se replikace do všech replik pro čtení. Repliky pro čtení se stanou samostatnými servery, které teď podporují čtení i zápisy.

az postgres server delete --name myserver --resource-group myresourcegroup

REST API

Repliky pro čtení můžete vytvářet a spravovat pomocí rozhraní Azure REST API.

Příprava primárního serveru

  1. Zkontrolujte hodnotu primárního azure.replication_support serveru. Aby repliky pro čtení fungovaly, mělo by to být alespoň REPLIKA.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Pokud azure.replication_support není aspoň replika, nastavte ji.

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
    {
     "properties": {
     "value": "replica"
     }
    }
    
  3. Restartujte server , aby se změna použila.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/restart?api-version=2017-12-01
    

Vytvoření repliky pro čtení

Repliku pro čtení můžete vytvořit pomocí rozhraní API pro vytvoření:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaName}?api-version=2017-12-01
{
  "location": "southeastasia",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}"
  }
}

Poznámka:

Další informace o oblastech, ve kterých můžete vytvořit repliku, najdete v článku konceptů replik pro čtení.

Pokud jste parametr nenastavili na repliku azure.replication_support na primárním serveru pro obecné účely nebo optimalizováno pro paměť a restartovali server, zobrazí se chyba. Před vytvořením repliky dokončete tyto dva kroky.

Replika se vytvoří pomocí stejného nastavení výpočetních prostředků a úložiště jako primární. Po vytvoření repliky je možné změnit několik nastavení nezávisle na primárním serveru: generování výpočetních prostředků, virtuální jádra, úložiště a doba uchovávání záloh. Cenovou úroveň lze také změnit nezávisle, s výjimkou úrovně Basic nebo z ní.

Důležité

Před aktualizací nastavení primárního serveru na novou hodnotu aktualizujte nastavení repliky na stejnou nebo vyšší hodnotu. Tato akce pomáhá replikě držet krok se všemi změnami provedenými v primárním serveru.

Výpis replik

Seznam replik primárního serveru můžete zobrazit pomocí rozhraní API seznamu replik:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/Replicas?api-version=2017-12-01

Zastavení replikace na server repliky

Replikaci mezi primárním serverem a replikou pro čtení můžete zastavit pomocí rozhraní API aktualizace.

Jakmile zastavíte replikaci na primární server a repliku pro čtení, nedá se vrátit zpět. Replika pro čtení se stane samostatným serverem, který podporuje čtení i zápisy. Samostatný server nelze znovu vytvořit do repliky.

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

Odstranění primárního serveru nebo serveru repliky

Pokud chcete odstranit primární server nebo server repliky, použijte rozhraní API pro odstranění:

Když odstraníte primární server, zastaví se replikace do všech replik pro čtení. Repliky pro čtení se stanou samostatnými servery, které teď podporují čtení i zápisy.

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}?api-version=2017-12-01

Další kroky