Så här skapar och hanterar du läsrepliker i Azure Database for MySQL med hjälp av Azure CLI och REST API

GÄLLER FÖR: Azure Database for MySQL – enskild server

Viktigt!

Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?

I den här artikeln får du lära dig hur du skapar och hanterar läsrepliker i Azure Database for MySQL-tjänsten med hjälp av Azure CLI och REST API. Mer information om att läsa repliker finns i översikten.

Azure CLI

Du kan skapa och hantera skrivskyddade repliker med hjälp av Azure CLI.

Förutsättningar

Viktigt!

Funktionen för skrivskyddad replik är endast tillgänglig för Azure Database for MySQL-servrar på prisnivåerna Generell användning eller Minnesoptimerad. Kontrollera att källservern finns på någon av dessa prisnivåer.

Skapa en skrivskyddad replik

Viktigt!

Om källservern inte har några befintliga replikservrar kan källservern behöva startas om för att förbereda sig för replikering beroende på vilken lagring som används (v1/v2). Överväg att starta om servern och utföra den här åtgärden under tider med låg belastning. Mer information finns i Starta om källservern.

Om GTID är aktiverat på en primär server (gtid_mode = ON), har nyligen skapade repliker också GTID aktiverat och använder GTID-baserad replikering. Mer information finns i Global transaktionsidentifierare (GTID)

Du kan skapa en skrivskyddade replikserver med hjälp av följande kommando:

az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup

Kommandot az mysql server replica create kräver följande parametrar:

Inställning Exempelvärde Beskrivning
resource-group  myresourcegroup  Den resursgrupp där replikservern skapas. 
name mydemoreplicaserver Namnet på den nya replikservern som skapas.
source-server mydemoserver Namnet eller ID:t för den befintliga källservern som ska replikeras från.

Om du vill skapa en läsreplik mellan regioner använder du parametern --location . CLI-exemplet nedan skapar repliken i USA, västra.

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

Kommentar

Mer information om vilka regioner du kan skapa en replik i finns i artikeln om att läsa replikbegrepp.

Kommentar

  • Kommandot az mysql server replica create har --sku-name ett argument som gör att du kan ange sku :n ({pricing_tier}_{compute generation}_{vCores}) när du skapar en replik med Hjälp av Azure CLI.
  • Den primära servern och läsrepliken ska vara på samma prisnivå (Generell användning eller Minnesoptimerad).
  • Konfigurationen av replikservern kan också ändras när den har skapats. Vi rekommenderar att replikserverns konfiguration behålls med samma eller högre värden än källan för att säkerställa att repliken kan hänga med i huvudservern.

Lista repliker för en källserver

Om du vill visa alla repliker för en viss källserver kör du följande kommando:

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

Kommandot az mysql server replica list kräver följande parametrar:

Inställning Exempelvärde Beskrivning
resource-group  myresourcegroup  Den resursgrupp där replikservern skapas. 
server-name mydemoserver Källserverns namn eller ID.

Stoppa replikeringen till en replikserver

Viktigt!

Det går inte att ångra replikeringen till en server. När replikeringen har stoppats mellan en källa och replik kan den inte ångras. Replikservern blir sedan en fristående server och stöder nu både läsning och skrivningar. Den här servern kan inte göras till en replik igen.

Replikering till en skrivskyddad replikserver kan stoppas med hjälp av följande kommando:

az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup

Kommandot az mysql server replica stop kräver följande parametrar:

Inställning Exempelvärde Beskrivning
resource-group  myresourcegroup  Resursgruppen där replikservern finns. 
name mydemoreplicaserver Namnet på replikservern som replikeringen ska stoppas på.

Ta bort en replikserver

Du kan ta bort en läsreplikserver genom att köra kommandot az mysql server delete.

az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver

Ta bort en källserver

Viktigt!

Om du tar bort en källserver stoppas replikeringen till alla replikservrar och själva källservern tas bort. Replikservrar blir fristående servrar som nu stöder både läsningar och skrivningar.

Om du vill ta bort en källserver kan du köra kommandot az mysql server delete .

az mysql server delete --resource-group myresourcegroup --name mydemoserver

REST-API

Du kan skapa och hantera läsrepliker med hjälp av Azure REST API.

Skapa en skrivskyddad replik

Du kan skapa en läsreplik med hjälp av create-API:et:

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

Kommentar

Mer information om vilka regioner du kan skapa en replik i finns i artikeln om att läsa replikbegrepp.

En replik skapas med samma beräknings- och lagringsinställningar som huvudservern. När en replik har skapats kan flera inställningar ändras oberoende av källservern: beräkningsgenerering, virtuella kärnor, lagring och kvarhållningsperiod för säkerhetskopiering. Prisnivån kan också ändras oberoende av varandra, förutom till eller från Basic-nivån.

Viktigt!

Innan en källserverinställning uppdateras till ett nytt värde uppdaterar du replikinställningen till ett lika stort eller större värde. Den här åtgärden hjälper repliken att hålla jämna steg med alla ändringar som gjorts i originalet.

Lista repliker

Du kan visa listan över repliker av en källserver med hjälp av API:et för repliklistan:

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

Stoppa replikeringen till en replikserver

Du kan stoppa replikeringen mellan en källserver och en läsreplik med hjälp av uppdaterings-API:et.

När du har stoppat replikeringen till en källserver och en läsreplik kan den inte ångras. Läsrepliken blir en fristående server som stöder både läsningar och skrivningar. Den fristående servern kan inte göras till en replik igen.

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

Ta bort en käll- eller replikserver

Om du vill ta bort en käll- eller replikserver använder du borttagnings-API:et:

När du tar bort en källserver stoppas replikeringen till alla lästa repliker. Läsreplikerna blir fristående servrar som nu stöder både läsningar och skrivningar.

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

Kända problem

Det finns två generationer av lagring som servrarna på Generell användning- och minnesoptimerad nivå använder, Generell lagring v1 (stöder upp till 4 TB) och generell lagring v2 (stöder upp till 16 TB lagring). Källservern och replikservern bör ha samma lagringstyp. Eftersom Generell lagring v2 inte är tillgänglig i alla regioner kontrollerar du att du väljer rätt replikregion när du använder platsen med CLI eller REST-API:et för att skapa skrivskyddade repliker. Information om hur du identifierar lagringstypen för källservern finns i länken Hur kan jag avgöra vilken lagringstyp min server körs på.

Om du väljer en region där du inte kan skapa en skrivskyddade replik för källservern stöter du på problemet där distributionen fortsätter att köras enligt bilden nedan och sedan överskrider tidsgränsen med felet "Resursetableringsåtgärden slutfördes inte inom den tillåtna tidsgränsen".

az mysql server replica create -n <replica-servername> -g <resource group> --location <replica-region> -s <source-servername>
/ Running . .

Nästa steg