Azure CLI kullanarak tek bir PostgreSQL için Azure Veritabanı esnek sunucu örneğini izleme ve ölçeklendirme

Bu örnek CLI betiği, ölçümleri sorguladıktan sonra tek bir PostgreSQL için Azure Veritabanı esnek sunucu örneği için işlem ve depolamayı ölçeklendirir. İşlem ölçeğini artırabilir veya küçültebilir. Depolama alanı yalnızca ölçeği artırabilir.

Önemli

Depolamanın ölçeği yalnızca artırılabilir, azaltılamaz.

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

Örnek senaryo

Azure Cloud Shell'i başlatma

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli shell'dir. Sık kullanılan Azure araçları önceden yüklenmiş ve hesabınızla kullanılacak şekilde yapılandırılmıştır.

Cloud Shell'i açmak için, bir kod bloğunun sağ üst köşesindeki Deneyin seçeneğini seçin. Cloud Shell'i ayrı bir tarayıcı sekmesinde başlatmak için https://shell.azure.com adresine gidebilirsiniz.

Cloud Shell açıldığında ortamınız için Bash'in seçili olduğunu doğrulayın. Gelecek oturumlar, Azure CLI'yi bir Bash ortamında kullanacaktır. Kod bloklarını kopyalamak için Kopyala seçeneğine tıklayın, Cloud Shell'e yapıştırın ve çalıştırmak için Enter tuşuna basın.

Azure'a Giriş Yap

Cloud Shell'de oturum açılan ilk hesapta otomatik olarak kimlik doğrulaması yapılır. Farklı bir abonelik kullanarak oturum açmak için aşağıdaki betiği kullanın ve subscriptionId kısmını Azure abonelik kimliğinizle değiştirin.

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

subscription="subscriptionId" # Set Azure subscription ID here

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

Daha fazla bilgi için etkin abonelik ayarlama veya etkileşimli oturum açma konularına bakın.

Script'i çalıştırın

# Monitor and scale a single PostgreSQL server

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="$(az account show --query id -o tsv)"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="scale-postgresql-server"
server="msdocs-postgresql-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 PostgreSQL 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 postgres 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.DBforPostgresql/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.DBforPostgresql/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 postgres 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 postgres 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 postgres server update --resource-group $resourceGroup --name $server --storage-size $storageSize

Dağıtımı Temizle

Bu kaynaklara sürekli ihtiyaç duymadığınız sürece az group delete komutunu kullanarak kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komutu kullanın. Bu kaynaklardan bazılarının oluşturulması ve silinmesi biraz zaman alabilir.

az group delete --name $resourceGroup

Örnek referans

Bu betik, aşağıdaki tabloda ana hatları verilen komutları kullanır:

Command Notlar
az group create komutu bir grup oluşturmak için kullanılır. Tüm kaynakların depolandığı bir kaynak grubu oluşturur.
az postgres server create komutunu kullanarak bir PostgreSQL sunucusu oluşturun Veritabanlarını barındıran PostgreSQL için Azure Veritabanı esnek bir sunucu örneği oluşturur.
az postgres sunucu güncelleme PostgreSQL için Azure Veritabanı esnek sunucu örneğinin özelliklerini güncelleştirir.
az monitor metrics list (Komut: "az monitor metrics list" kullanarak izleme ölçümlerini listele) Kaynaklar için ölçüm değerini listeler.
az grubunu sil Bir kaynak grubunu, içindeki tüm yerleşik kaynaklarla birlikte siler.