Autoscaling Azure SQL Database

后端 未结 4 580
说谎
说谎 2020-12-24 05:45

We have an application that uses Azure SQL for the database backend. Under normal load/conditions this database can successfully run on a Premium 1 plan. However, during the

4条回答
  •  悲&欢浪女
    2020-12-24 06:19

    Another way to do it is using Azure automation and using run book below:

    param
    (
        # Desired Azure SQL Database edition {Basic, Standard, Premium}
        [parameter(Mandatory=$true)] 
        [string] $Edition,
    
        # Desired performance level {Basic, S0, S1, S2, P1, P2, P3}
        [parameter(Mandatory=$true)] 
        [string] $PerfLevel
    
    )
    
    inlinescript
    {
        # I only care about 1 DB so, I put it into variable asset and access from here
        $SqlServerName = Get-AutomationVariable -Name 'SqlServerName'
        $DatabaseName = Get-AutomationVariable -Name 'DatabaseName'
    
    
        Write-Output "Begin vertical scaling script..."
    
        # Establish credentials for Azure SQL Database server 
        $Servercredential = new-object System.Management.Automation.PSCredential("yourDBadmin", ("YourPassword" | ConvertTo-SecureString -asPlainText -Force)) 
    
        # Create connection context for Azure SQL Database server
        $CTX = New-AzureSqlDatabaseServerContext -ManageUrl “https://$SqlServerName.database.windows.net” -Credential $ServerCredential
    
        # Get Azure SQL Database context
        $Db = Get-AzureSqlDatabase $CTX –DatabaseName $DatabaseName
    
        # Specify the specific performance level for the target $DatabaseName
        $ServiceObjective = Get-AzureSqlDatabaseServiceObjective $CTX -ServiceObjectiveName "$Using:PerfLevel"
    
        # Set the new edition/performance level
        Set-AzureSqlDatabase $CTX –Database $Db –ServiceObjective $ServiceObjective –Edition $Using:Edition -Force
    
        # Output final status message
        Write-Output "Scaled the performance level of $DatabaseName to $Using:Edition - $Using:PerfLevel"
        Write-Output "Completed vertical scale"
    }
    


    Ref:
    Azure Vertically Scale Runbook
    Setting schedule when u want to scale up/down.
    For me, I used 2 schedules with input parameters, 1 for scaling up and another one for scaling down.
    Hope that help.

提交回复
热议问题