Можно ли сделать лазурные эластичные весы для бассейна автоматически? - PullRequest
0 голосов
/ 12 июня 2018

Как указано, я пытаюсь автоматически масштабировать свои базы данных Azure.Я нашел сценарий рабочего процесса powershell для одной базы данных, который отлично работает.Мне было интересно, можно ли автоматически масштабировать мой эластичный бассейн.Я пытался переписать сценарий, но много раз не получалось.

Вот сценарий ниже:

workflow Set-AzureSqlDatabaseEdition 
{ 
    param 
    ( 
        # Name of the Azure SQL Database server (Ex: bzb98er9bp) 
        [parameter(Mandatory=$true)]  
        [string] $SqlServerName, 

        # Target Azure SQL Elastic Pool
        [parameter(Mandatory=$true)]  
        [string] $ElasticPoolName, 

        # Desired Azure SQL Elastic Pool edition {Basic, Standard, Premium} 
        [parameter(Mandatory=$true)]  
        [string] $Edition, 

        # Desired DTU 
        [parameter(Mandatory=$true)]  
        [string] $DTU, 

        # DatabaseDtuMin  
        [parameter(Mandatory=$true)]
        [string] $DatabaseDtuMin,

        # DatabaseDtuMax
        [parameter(Mandatory=$true)]
        [string] $DatabaseDtuMax,

        # Credentials for $SqlServerName stored as an Azure Automation credential asset 
        # When using in the Azure Automation UI, please enter the name of the credential asset for the "Credential" parameter 
        [parameter(Mandatory=$true)]  
        [PSCredential] $Credential 
    ) 

    inlinescript 
    { 
        Write-Output "Begin vertical scaling script..." 

        # Establish credentials for Azure SQL Database server  
        $Servercredential = new-object System.Management.Automation.PSCredential($Using:Credential.UserName, (($Using:Credential).GetNetworkCredential().Password | ConvertTo-SecureString -asPlainText -Force))  

        # Create connection context for Azure SQL Database server 
        $CTX = New-AzureSqlDatabaseServerContext -ManageUrl “https://$Using:SqlServerName.database.windows.net” -Credential $ServerCredential 

        # Get Azure Elastic Pool context 
        $EP = Get-AzureRmSqlElasticPool $CTX ElasticPoolName $Using:ElasticPoolName 

        # Specify the specific performance level for the target $DatabaseName 
        $DTU = Get-AzureRmSqlElasticPool $CTX ElasticPoolName $Using:DTU 

        # Set the new edition/performance level 
        Set-AzureRmSqlElasticPool $CTX ElasticPoolName $DTU –ServiceObjective $DTU –Edition $Using:Edition -Force 

        # Output final status message 
        Write-Output "Scaled the performance level of $Using:DatabaseName to $Using:Edition - $Using:PerfLevel" 
        Write-Output "Completed vertical scale" 
    } 
}

Я надеюсь, что кто-то может указать мне правильное направление, чтобы сделать это, если это возможно.

Большое спасибо !!!

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

см. https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-monitor-and-scale-pool-powershell

Этот пример сценария PowerShell отслеживает показатели производительности эластичного пула, масштабирует его до более высокого уровня производительности и создает правило оповещения для одного из показателей производительности.

0 голосов
/ 12 июня 2018

Если вы открыты для сторонних продуктов, посмотрите на CloudMonix - в нем есть функция, позволяющая автоматически масштабировать эластичные пулы, хранилища SQL и базы данных SQL Azure по любым показателям и/ или дата-время.

В нем можно определить диапазоны шкалы и настройки шкалы.Диапазоны масштабирования обычно являются критериями, основанными на времени, между которыми происходит масштабирование (т. Е. Для 9:00 - 17:00 минимальный уровень - P3, а максимальный - P5 и т. Д.), А корректировки масштаба - это пошаговые перемещения по уровням на основе какого-либо показателя производительности (DTU>80 или запросов / с на сайте> 50 и т. Д.)

PowerShell не требуется

...