Monitorizar e dimensionar um servidor da Base de Dados do Azure para MySQL com a CLI do Azure

[APLICA-SE A: Base de Dados do Azure para MySQL – Base de Dados do Azure para MySQL de Servidor Único – Servidor Flexível

Este script da CLI de exemplo dimensiona a computação e o armazenamento de um único servidor Base de Dados do Azure para MySQL após consultar as métricas. A computação pode aumentar ou reduzir verticalmente. O armazenamento só pode aumentar verticalmente.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Script de exemplo

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando Cloud Shell abrir, verifique se o Bash está selecionado para o seu ambiente. As sessões subsequentes irão utilizar a CLI do Azure num ambiente bash, selecionar Copiar para copiar os blocos de código, colá-lo no Cloud Shell e premir Enter para executá-lo.

Iniciar sessão no Azure

Cloud Shell é autenticado automaticamente na conta inicial com sessão iniciada. Utilize o seguinte script para iniciar sessão com uma subscrição diferente, substituindo <Subscription ID> pelo ID da Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

subscription="<subscriptionId>" # add subscription here

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

Para obter mais informações, veja Definir a subscrição ativa ou iniciar sessão interativamente

Executar o script

# Monitor and scale an Azure Database for MySQL server

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="$(az account show --query id -o tsv)"
location="East US"
resourceGroup="msdocs-mysql-rg-$randomIdentifier"
tag="scale-mysql-server"
server="msdocs-mysql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
scaleUpSku="GP_Gen5_4"
scaleDownSku="GP_Gen5_2"
storageSize="102400"

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 server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az mysql server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# Monitor usage metrics - CPU
echo "Returning the CPU usage metrics for $server"
az monitor metrics list --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/servers/$server" --metric cpu_percent --interval PT1M

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

# Scale up the server by provisionining more vCores within the same tier
echo "Scaling up $server by changing the SKU to $scaleUpSku"
az mysql server update --resource-group $resourceGroup --name $server --sku-name $scaleUpSku

# Scale down the server by provisioning fewer vCores within the same tier
echo "Scaling down $server by changing the SKU to $scaleDownSku"
az mysql server update --resource-group $resourceGroup --name $server --sku-name $scaleDownSku

# Scale up the server to provision a storage size of 10GB
# Storage size cannot be reduced
echo "Scaling up the storage size for $server to $storageSize"
az mysql server update --resource-group $resourceGroup --name $server --storage-size $storageSize

Limpar os recursos

Utilize o seguinte comando para remover o grupo de recursos e todos os recursos associados ao mesmo com o comando az group delete , a menos que tenha uma necessidade contínua destes recursos. Alguns destes recursos podem demorar algum tempo a criar, bem como a eliminar.

az group delete --name $resourceGroup

Referência de exemplo

Este script utiliza os comandos descritos na tabela seguinte:

Comando Notas
az group create Cria um grupo de recursos no qual todos os recursos são armazenados.
az mysql server create Cria um servidor MySQL que aloja as bases de dados.
az mysql server update Atualizações propriedades do servidor MySQL.
az monitor metrics list Liste o valor métrico dos recursos.
az group delete Elimina um grupo de recursos, incluindo todos os recursos aninhados.

Passos seguintes