Migrera till Innovate Summit:
Lär dig hur migrering och modernisering till Azure kan öka företagets prestanda, motståndskraft och säkerhet, så att du kan använda AI fullt ut.Registrera dig nu
Den här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Det här PowerShell-skriptet övervakar prestandavärden för en elastisk pool, skalar ut den till en högre beräkningsstorlek och skapar en varningsregel för ett av prestandamåtten.
Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Använda Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
Alternativ
Exempel/länk
Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen.
Så här kör du koden i den här artikeln i Azure Cloud Shell:
Starta Cloud Shell.
Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.
Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.
Välj Retur för att köra koden.
Om du väljer att installera och använda PowerShell lokalt kräver den här självstudien Az PowerShell 1.4.0 eller senare. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.
Exempelskript
PowerShell
# This script requires the following# - Az.Resources# - Az.Accounts# - Az.Monitor# - Az.Sql# First, run Connect-AzAccount# Set the subscription in which to create these objects. This is displayed on objects in the Azure portal.$SubscriptionId = ''# Set the resource group name and location for your server$resourceGroupName = "myResourceGroup-$(Get-Random)"$location = "westus2"# Set elastic pool name$poolName = "MySamplePool"# Set an admin login and password for your database$adminSqlLogin = "SqlAdmin"$password = (New-Guid).Guid # Generates a randomized GUID password. # Set server name - the logical server name has to be unique in the system$serverName = "server-$(Get-Random)"# The sample database names$firstDatabaseName = "myFirstSampleDatabase"$secondDatabaseName = "mySecondSampleDatabase"# The ip address range that you want to allow to access your server via the firewall rule$startIp = "0.0.0.0"$endIp = "0.0.0.0"# Set subscription Set-AzContext -SubscriptionId$subscriptionId# Create a new resource group$resourceGroup = New-AzResourceGroup -Name$resourceGroupName -Location$location# Create a new server with a system wide unique server name$server = New-AzSqlServer -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-Location$location `
-SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList$adminSqlLogin, $(ConvertTo-SecureString -String$password -AsPlainText -Force))
# Create elastic database pool$elasticPool = New-AzSqlElasticPool -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-ElasticPoolName$poolName `
-Edition"Standard" `
-Dtu50 `
-DatabaseDtuMin10 `
-DatabaseDtuMax50# Create a server firewall rule that allows access from the specified IP range$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-FirewallRuleName"AllowedIPs" -StartIpAddress$startIp -EndIpAddress$endIp# Create two blank database in the pool$firstDatabase = New-AzSqlDatabase -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-DatabaseName$firstDatabaseName `
-ElasticPoolName$poolName$secondDatabase = New-AzSqlDatabase -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-DatabaseName$secondDatabaseName `
-ElasticPoolName$poolName# Monitor the DTU consumption of the pool in 5 minute intervals$monitorparameters = @{
ResourceId = "/subscriptions/$($(Get-AzContext).Subscription.Id)/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/elasticPools/$poolName"
TimeGrain = [TimeSpan]::Parse("00:05:00")
MetricNames = "dtu_consumption_percent"
}
$metric = Get-AzMetric @monitorparameters
$metric.Data
# Scale the pool$elasticPool = Set-AzSqlElasticPool -ResourceGroupName$resourceGroupName `
-ServerName$serverName `
-ElasticPoolName$poolName `
-Edition"Standard" `
-Dtu100 `
-DatabaseDtuMin20 `
-DatabaseDtuMax100# Set up an Alert rule using Azure Monitor for the database# Add an Alert that fires when the pool utilization reaches 90%# Objects needed: an Action Group Receiver, an Action Group, Alert Criteria, and finally an Alert Rule.# Creates an new action group receiver object with a target email address.$receiver = New-AzActionGroupReceiver `
-Name"my Sample Azure Admins" `
-EmailAddress"azure-admins-group@contoso.com"# Creates a new or updates an existing action group.$actionGroup = Set-AzActionGroup `
-Name"mysample-email-the-azure-admins" `
-ShortName"AzAdminsGrp" `
-ResourceGroupName$resourceGroupName `
-Receiver$receiver# Fetch the created AzActionGroup into an object of type Microsoft.Azure.Management.Monitor.Models.ActivityLogAlertActionGroup$actionGroupObject = New-AzActionGroup -ActionGroupId$actionGroup.Id
# Create a criteria for the Alert to monitor.$criteria = New-AzMetricAlertRuleV2Criteria `
-MetricName"dtu_consumption_percent" `
-TimeAggregation Average `
-Operator GreaterThan `
-Threshold90# Create the Alert rule.# Add-AzMetricAlertRuleV2 adds or updates a V2 (non-classic) metric-based alert rule.Add-AzMetricAlertRuleV2 -Name"mySample_Alert_DTU_consumption_pct" `
-ResourceGroupName$resourceGroupName `
-WindowSize (New-TimeSpan -Minutes1) `
-Frequency (New-TimeSpan -Minutes1) `
-TargetResourceId"/subscriptions/$($(Get-AzContext).Subscription.Id)/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/elasticPools/$poolName" `
-Condition$criteria `
-ActionGroup$actionGroupObject `
-Severity3#Informational<#
# Set up an alert rule using Azure Monitor for the database
# Add a classic alert that fires when the pool utilization reaches 90%
# Note that Add-AzMetricAlertRule is deprecated. Use Add-AzMetricAlertRuleV2 instead.
Add-AzMetricAlertRule -ResourceGroup $resourceGroupName `
-Name "mySampleAlertRule" `
-Location $location `
-TargetResourceId "/subscriptions/$($(Get-AzContext).Subscription.Id)/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/elasticPools/$poolName" `
-MetricName "dtu_consumption_percent" `
-Operator "GreaterThan" `
-Threshold 90 `
-WindowSize $([TimeSpan]::Parse("00:05:00")) `
-TimeAggregationOperator "Average" `
-Action $(New-AzAlertRuleEmail -SendToServiceOwner)
#># Clean up deployment # Remove-AzResourceGroup -ResourceGroupName $resourceGroupName
Rensa distribution
Använd följande kommando för att ta bort resursgruppen och alla resurser som är associerade med den.
(Inaktuell) Lägger till eller uppdaterar en aviseringsregel för att automatiskt övervaka mått i framtiden. Gäller endast för klassiska måttbaserade aviseringsregler.
Lägger till eller uppdaterar en aviseringsregel för att automatiskt övervaka mått i framtiden. Gäller endast för icke-klassiska måttbaserade aviseringsregler.
Administrera en SQL Server-databasinfrastruktur för molndatabaser, lokala databaser och hybridrelationsdatabaser med hjälp av microsoft PaaS-relationsdatabaserbjudanden.
Den här artikeln beskriver hur du skalar databasen i Azure SQL Database och Azure SQL Managed Instance genom att lägga till eller ta bort allokerade resurser.
Hantera och skala flera databaser i Azure SQL Database, så många som hundratals eller tusentals, med hjälp av elastiska pooler. För ett pris kan du distribuera resurser där de behövs.