Dela via


Övervaka och skala en Azure Database for MySQL – flexibel serverinstans med hjälp av Azure CLI

Det här CLI-exempelskriptet skalar beräkning, lagring och IOPS för en enda Azure Database for MySQL – flexibel server efter att ha frågat motsvarande mått. Beräkning och IOPS kan skalas upp eller ned, medan lagring endast kan skalas upp.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Använda ett kostnadsfritt Azure-konto för att prova Azure Database for MySQL – flexibel server kostnadsfritt.

Förutsättningar

Exempelskript

Starta Azure Cloud Shell

Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com.

När Cloud Shell öppnas kontrollerar du att Bash har valts för din miljö. Efterföljande sessioner använder Azure CLI i en Bash-miljö, Välj Kopiera för att kopiera kodblocken, klistra in dem i Cloud Shell och tryck på Retur för att köra det.

Logga in på Azure

Cloud Shell autentiseras automatiskt under det första kontot som loggas in med. Använd följande skript för att logga in med en annan prenumeration och ersätta subscriptionId med ditt Azure-prenumerations-ID.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

Mer information finns i ange en aktiv prenumeration eller logga in interaktivt.

Kör skriptet

# Monitor your MySQLFlexible Server and scale compute, storage, and IOPS

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="$(az account show --query id -o tsv)"
location="East US"
resourceGroup="msdocs-mysql-rg-$randomIdentifier"
tag="monitor-and-scale-mysql"
server="msdocs-mysql-server-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
ipAddress="None"
# Specifying an IP address of 0.0.0.0 allows public access from any resources
# deployed within Azure to access your server. Setting it to "None" sets the server 
# in public access mode but does not create a firewall rule.
# For your public IP address, https://whatismyipaddress.com

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a MySQL Flexible server in the resource group
echo "Creating $server"
az mysql flexible-server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --public-access $ipAddress

# Optional: Add firewall rule to connect from all Azure services
# To limit to a specific IP address or address range, change start-ip-address and end-ip-address
echo "Adding firewall for IP address range"
az mysql flexible-server firewall-rule create --name $server --resource-group $resourceGroup --rule-name AllowAzureIPs --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

# Monitor CPU percent, storage usage and IO percent

# Monitor CPU Usage metric
echo "Monitor CPU usage"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric cpu_percent \
    --interval PT1M

# Monitor Storage usage metric
echo "Monitor storage usage"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric storage_used \
    --interval PT1M

# Monitor IO Percent
echo "Monitor I/O percent"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric io_consumption_percent \
    --interval PT1M

# Scale up the server by provisionining to higher tier from Burstable to General purpose 4vcore
echo "Scale up to Standard_D4ds_v4"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --sku-name Standard_D4ds_v4 \
    --tier GeneralPurpose 

# Scale down to by provisioning to General purpose 2vcore within the same tier
echo "Scale down to Standard_D2ds_v4"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --sku-name Standard_D2ds_v4

# Scale up the server to provision a storage size of 64GB. Note storage size cannot be reduced.
echo "Scale up storage to 64 GB"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --storage-size 64

# Scale IOPS
echo "Scale IOPS to 550"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --iops 550

Rensa resurser

Använd följande kommando för att ta bort resursgruppen och alla resurser som är associerade med den med kommandot az group delete – såvida du inte har ett pågående behov av dessa resurser. Vissa av dessa resurser kan ta ett tag att skapa och ta bort.

az group delete --name $resourceGroup

Exempelreferens

Det här skriptet använder följande kommandon. Varje kommando i tabellen länkar till kommandospecifik dokumentation.

Kommando Anteckningar
az group create Skapar en resursgrupp där alla resurser lagras
az mysql flexible-server create Skapar en flexibel server som är värd för databaserna.
az monitor metrics list Visar en lista över måttvärdet för Azure Monitor för resurserna.
az mysql flexible-server update Uppdaterar egenskaperna för den flexibla servern.
az mysql flexible-server delete Tar bort en flexibel server.
az group delete Tar bort en resursgrupp, inklusive alla kapslade resurser.