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
- Installeer Azure CLI 2.0
- Een Azure Database for PostgreSQL-server die de primaire server is.
De primaire server voorbereiden
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
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
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
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
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" } }
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