Leesreplica's maken en beheren in Azure Database for MySQL met behulp van de Azure CLI en REST API
VAN TOEPASSING OP: Azure Database for MySQL - enkele server
Belangrijk
Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?
In dit artikel leert u hoe u leesreplica's maakt en beheert in de Azure Database for MySQL-service met behulp van de Azure CLI en REST API. Zie het overzicht voor meer informatie over leesreplica's.
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 MySQL-server die wordt gebruikt als de bronserver.
Belangrijk
De functie leesreplica is alleen beschikbaar voor Azure Database for MySQL-servers in de prijscategorieën Algemeen gebruik of Geoptimaliseerd voor geheugen. Zorg ervoor dat de bronserver zich in een van deze prijscategorieën bevindt.
Een leesreplica maken
Belangrijk
Als uw bronserver geen bestaande replicaservers heeft, moet de bronserver mogelijk opnieuw worden opgestart om zich voor te bereiden op replicatie, afhankelijk van de gebruikte opslag (v1/v2). Overweeg opnieuw opstarten van de server en voer deze bewerking uit tijdens daluren. Zie Het opnieuw opstarten van de bronserver voor meer informatie.
Als GTID is ingeschakeld op een primaire server (gtid_mode
= AAN), hebben nieuw gemaakte replica's ook GTID ingeschakeld en worden GTID-gebaseerde replicatie gebruikt. Raadpleeg global transaction identifier (GTID) voor meer informatie
U kunt een leesreplicaserver maken met behulp van de volgende opdracht:
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup
Voor de az mysql server replica create
opdracht zijn de volgende parameters vereist:
Instelling | Voorbeeldwaarde | Beschrijving |
---|---|---|
resource-group | myresourcegroup | De resourcegroep waarin de replicaserver wordt gemaakt. |
naam | mydemoreplicaserver | De naam van de nieuwe replicaserver die wordt gemaakt. |
source-server | mydemoserver | De naam of id van de bestaande bronserver waaruit moet worden gerepliceerd. |
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 mysql server replica create --name mydemoreplicaserver --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.
Notitie
- De
az mysql server replica create
opdracht heeft--sku-name
een argument waarmee u de sku ({pricing_tier}_{compute generation}_{vCores}
) kunt opgeven terwijl u een replica maakt met behulp van Azure CLI. - De primaire server en leesreplica moeten zich in dezelfde prijscategorie bevinden (Algemeen gebruik of Geoptimaliseerd voor geheugen).
- De configuratie van de replicaserver kan ook worden gewijzigd nadat deze is gemaakt. Het wordt aanbevolen om de configuratie van de replicaserver op gelijke of hogere waarden te houden dan de bron om ervoor te zorgen dat de replica de master kan bijhouden.
Replica's voor een bronserver weergeven
Als u alle replica's voor een bepaalde bronserver wilt weergeven, voert u de volgende opdracht uit:
az mysql server replica list --server-name mydemoserver --resource-group myresourcegroup
Voor de az mysql server replica list
opdracht zijn de volgende parameters vereist:
Instelling | Voorbeeldwaarde | Beschrijving |
---|---|---|
resource-group | myresourcegroup | De resourcegroep waarin de replicaserver wordt gemaakt. |
servernaam | mydemoserver | De naam of id van de bronserver. |
Replicatie naar een replicaserver stoppen
Belangrijk
Replicatie naar een server stoppen kan niet ongedaan worden. Zodra de replicatie tussen een bron en replica is gestopt, kan deze niet ongedaan worden gemaakt. De replicaserver wordt vervolgens een zelfstandige server en ondersteunt nu zowel lees- als schrijfbewerkingen. Van deze server kan niet opnieuw een replica worden gemaakt.
Replicatie naar een leesreplicaserver kan worden gestopt met behulp van de volgende opdracht:
az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup
Voor de az mysql server replica stop
opdracht zijn de volgende parameters vereist:
Instelling | Voorbeeldwaarde | Beschrijving |
---|---|---|
resource-group | myresourcegroup | De resourcegroep waar de replicaserver bestaat. |
naam | mydemoreplicaserver | De naam van de replicaserver waarop de replicatie moet worden gestopt. |
Een replicaserver verwijderen
U kunt een leesreplicaserver verwijderen door de opdracht az mysql server delete uit te voeren.
az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver
Een bronserver verwijderen
Belangrijk
Als u een bronserver verwijdert, wordt de replicatie naar alle replicaservers gestopt en wordt de bronserver zelf verwijderd. Replicaservers worden zelfstandige servers die nu zowel lees-als schrijfbewerkingen ondersteunen.
Als u een bronserver wilt verwijderen, kunt u de opdracht az mysql server delete uitvoeren.
az mysql server delete --resource-group myresourcegroup --name mydemoserver
REST-API
U kunt leesreplica's maken en beheren met behulp van de Azure REST API.
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.DBforMySQL/servers/{replicaName}?api-version=2017-12-01
{
"location": "southeastasia",
"properties": {
"createMode": "Replica",
"sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}"
}
}
Notitie
Raadpleeg het artikel leesreplicaconcepten voor meer informatie over de regio's waarin u een replica kunt maken.
Er wordt een replica gemaakt met dezelfde reken- en opslaginstellingen als de hoofdserver. Nadat een replica is gemaakt, kunnen verschillende instellingen onafhankelijk van de bronserver 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 bronserverinstelling wordt bijgewerkt naar een nieuwe waarde, werkt u de replica-instelling bij naar een gelijke of hogere waarde. Met deze actie kan de replica alle wijzigingen in de master bijhouden.
Replica's weergeven
U kunt de lijst met replica's van een bronserver weergeven met behulp van de API voor replicalijsten:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}/Replicas?api-version=2017-12-01
Replicatie naar een replicaserver stoppen
U kunt de replicatie tussen een bronserver en een leesreplica stoppen met behulp van de update-API.
Nadat u de replicatie naar een bronserver 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.DBforMySQL/servers/{masterServerName}?api-version=2017-12-01
{
"properties": {
"replicationRole":"None"
}
}
Een bron- of replicaserver verwijderen
Als u een bron- of replicaserver wilt verwijderen, gebruikt u de verwijder-API:
Wanneer u een bronserver 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.DBforMySQL/servers/{serverName}?api-version=2017-12-01
Bekend probleem
Er zijn twee generaties opslag die de servers in de laag Algemeen gebruik en Geoptimaliseerd voor geheugen gebruiken, opslag voor algemeen gebruik v1 (ondersteunt maximaal 4 TB) en opslag voor algemeen gebruik v2 (ondersteunt maximaal 16 TB-opslag). De bronserver en de replicaserver moeten hetzelfde opslagtype hebben. Omdat opslag v2 voor algemeen gebruik niet beschikbaar is in alle regio's, moet u ervoor zorgen dat u de juiste replicaregio kiest terwijl u de locatie gebruikt met de CLI of REST API voor het maken van leesreplica's. Voor het identificeren van het opslagtype van uw bronserver raadpleegt u de koppeling Hoe kan ik bepalen op welk opslagtype mijn server wordt uitgevoerd.
Als u een regio kiest waarin u geen leesreplica voor uw bronserver kunt maken, treedt het probleem op waarbij de implementatie actief blijft, zoals wordt weergegeven in de onderstaande afbeelding. Vervolgens treedt er een time-out op met de fout 'De resourceinrichtingsbewerking is niet voltooid binnen de toegestane time-outperiode'.
az mysql server replica create -n <replica-servername> -g <resource group> --location <replica-region> -s <source-servername>
/ Running . .
Volgende stappen
- Meer informatie over leesreplica's