Leesreplica's maken en beheren vanuit Azure CLI, REST API

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

In dit artikel leert u hoe u leesreplica's maakt en beheert in Azure Database for PostgreSQL met behulp van de Azure CLI en REST API. Zie het overzicht voor meer informatie over leesreplica's.

Ondersteuning voor Azure-replicatie

Leesreplica's en logische decodering zijn beide afhankelijk van het Postgres Write Ahead-logboek (WAL) voor informatie. Deze twee functies hebben verschillende niveaus van logboekregistratie van Postgres nodig. Logische decodering vereist een hoger niveau van logboekregistratie dan leesreplica's.

Als u het juiste niveau van logboekregistratie wilt configureren, gebruikt u de ondersteuningsparameter voor Azure-replicatie. Ondersteuning voor Azure-replicatie heeft drie instellingsopties:

  • Uit - Plaatst de minste informatie in de WAL. Deze instelling is niet beschikbaar op de meeste Azure Database for PostgreSQL-servers.
  • Replica : uitgebreider dan Uit. Dit is het minimale niveau van logboekregistratie dat nodig is om leesreplica's te laten werken. Deze instelling is de standaardinstelling op de meeste servers.
  • Logisch : uitgebreider dan Replica. Dit is het minimale niveau van logboekregistratie voor logische decodering. Leesreplica's werken ook bij deze instelling.

Notitie

Bij het implementeren van leesreplica's voor permanente zware primaire werkbelastingen met veel schrijfintensieve primaire workloads kan de replicatievertraging blijven groeien en kan de replicatievertraging mogelijk nooit worden bijgehaald met de primaire werkbelasting. Hierdoor kan het opslaggebruik op de primaire server ook toenemen, omdat de WAL-bestanden niet worden verwijderd totdat ze op de replica zijn ontvangen.

Azure-CLI

U kunt leesreplica's maken en beheren met behulp van de Azure CLI.

Vereisten

De primaire server voorbereiden

  1. Controleer de waarde van azure.replication_support de primaire server. Het moet ten minste REPLICA zijn om leesreplica's te laten werken.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Als azure.replication_support dit niet ten minste REPLICA is, stelt u deze in.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Start de server opnieuw op om de wijziging toe te passen.

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

Een leesreplica maken

Voor de opdracht az postgres server replica create zijn de volgende parameters vereist:

Instelling Voorbeeldwaarde Beschrijving
resource-group myresourcegroup De resourcegroep waar de replicaserver wordt gemaakt.
naam mydemoserver-replica De naam van de nieuwe replicaserver die wordt gemaakt.
source-server mydemoserver De naam of resource-id van de bestaande primaire server waaruit moet worden gerepliceerd. Gebruik de resource-id als u wilt dat de replica en de primaire resourcegroepen anders zijn.

In het onderstaande CLI-voorbeeld wordt de replica gemaakt in dezelfde regio als de primaire.

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

Als u een leesreplica voor meerdere regio's wilt maken, gebruikt u de --location parameter. In het onderstaande CLI-voorbeeld wordt de replica gemaakt in VS - west.

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

Notitie

Raadpleeg het artikel leesreplicaconcepten voor meer informatie over de regio's waarin u een replica kunt maken.

Als u de azure.replication_support parameter niet hebt ingesteld op REPLICA op een primaire server voor algemeen gebruik of geoptimaliseerd voor geheugen en de server opnieuw hebt opgestart, krijgt u een foutmelding. Voer deze twee stappen uit voordat u een replica maakt.

Belangrijk

Bekijk de overwegingensectie van het overzicht leesreplica.

Voordat een primaire serverinstelling wordt bijgewerkt naar een nieuwe waarde, werkt u de replica-instelling bij naar een gelijke of hogere waarde. Deze actie helpt de replica bij te blijven met eventuele wijzigingen die zijn aangebracht in de primaire.

Replica's weergeven

U kunt de lijst met replica's van een primaire server weergeven met behulp van de opdracht az postgres server replica list .

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

Replicatie naar een replicaserver stoppen

U kunt de replicatie tussen een primaire server en een leesreplica stoppen met behulp van az postgres server replica stop command.

Nadat u de replicatie naar een primaire server en een leesreplica hebt gestopt, kan deze niet ongedaan worden gemaakt. De leesreplica wordt een zelfstandige server die zowel lees- als schrijfbewerkingen ondersteunt. De zelfstandige server kan niet opnieuw in een replica worden gemaakt.

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

Een primaire of replicaserver verwijderen

Als u een primaire server of replicaserver wilt verwijderen, gebruikt u de opdracht az postgres server delete .

Wanneer u een primaire server verwijdert, wordt de replicatie naar alle leesreplica's gestopt. De leesreplica's worden zelfstandige servers die nu zowel lees- als schrijfbewerkingen ondersteunen.

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

REST-API

U kunt leesreplica's maken en beheren met behulp van de Azure REST API.

De primaire server voorbereiden

  1. Controleer de waarde van azure.replication_support de primaire server. Het moet ten minste REPLICA zijn om leesreplica's te laten werken.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Als azure.replication_support dit niet ten minste REPLICA is, stelt u deze in.

    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. Start de server opnieuw op om de wijziging toe te passen.

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

Een leesreplica maken

U kunt een leesreplica maken met behulp van de create-API:

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}"
  }
}

Notitie

Raadpleeg het artikel leesreplicaconcepten voor meer informatie over de regio's waarin u een replica kunt maken.

Als u de azure.replication_support parameter niet hebt ingesteld op REPLICA op een primaire server voor algemeen gebruik of geoptimaliseerd voor geheugen en de server opnieuw hebt opgestart, krijgt u een foutmelding. Voer deze twee stappen uit voordat u een replica maakt.

Er wordt een replica gemaakt met dezelfde reken- en opslaginstellingen als de primaire. Nadat een replica is gemaakt, kunnen verschillende instellingen onafhankelijk van de primaire server worden gewijzigd: berekeningsgeneratie, vCores, opslag en back-upretentieperiode. De prijscategorie kan ook onafhankelijk worden gewijzigd, behalve van of van de Basic-laag.

Belangrijk

Voordat een primaire serverinstelling wordt bijgewerkt naar een nieuwe waarde, werkt u de replica-instelling bij naar een gelijke of hogere waarde. Deze actie helpt de replica bij te blijven met eventuele wijzigingen die zijn aangebracht in de primaire.

Replica's weergeven

U kunt de lijst met replica's van een primaire server weergeven met behulp van de API voor replicalijsten:

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

Replicatie naar een replicaserver stoppen

U kunt de replicatie tussen een primaire server en een leesreplica stoppen met behulp van de update-API.

Nadat u de replicatie naar een primaire server en een leesreplica hebt gestopt, kan deze niet ongedaan worden gemaakt. De leesreplica wordt een zelfstandige server die zowel lees- als schrijfbewerkingen ondersteunt. De zelfstandige server kan niet opnieuw in een replica worden gemaakt.

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

Een primaire of replicaserver verwijderen

Als u een primaire of replicaserver wilt verwijderen, gebruikt u de VERWIJDER-API:

Wanneer u een primaire server verwijdert, wordt de replicatie naar alle leesreplica's gestopt. De leesreplica's worden zelfstandige servers die nu zowel lees- als schrijfbewerkingen ondersteunen.

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

Volgende stappen