首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ComputeModel将Azure数据库上的ComputeModel属性设置为Serverless?

如何使用ComputeModel将Azure数据库上的ComputeModel属性设置为Serverless?
EN

Stack Overflow用户
提问于 2022-09-12 15:33:59
回答 2查看 120关注 0票数 0

我正在使用和Restore命令从已删除的数据库备份中还原一个Azure SQL数据库(Serverless)。还原工作,但是标记和ComputeModel没有与数据库一起还原。

我试过使用Set-AzSqlDatabase:

代码语言:javascript
复制
Set-AzSqlDatabase -ResourceGroupName $resourcegroupname -DatabaseName $databasename -ServerName $servername -ComputeModel "Serverless" -AutoPauseDelayInMinutes 45

更新:我尝试了以下代码,并在使用Set-AzResource之前设置了该代码,但它没有继续运行

代码语言:javascript
复制
$resource = Get-AzResource -ResourceGroupName $resourcegroupname -ResourceType "Microsoft.Sql/servers/databases" -Name "$servername/$databasename"

Write-Host "Setting ComputeModel to Serverless..."
$resource.Kind = "v12.0,user,vcore,serverless"
$resource  
# resource.Kind is successfully set on the $resource object

Write-Host "Set-AzResource..."
$resource | Set-AzResource -Force

有人有什么想法吗?

谢谢。

干杯,

安迪

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-15 19:36:44

感谢@holger和@Delliganesh塞瓦内桑的帮助,我得以实现了一个解决方案,该解决方案恢复了最近删除的数据库( Sevanesan ),添加了一些资源标记,并将ComputeModel设置为无服务器。

下面是代码:

代码语言:javascript
复制
<# 
Purpose: Restore the most recently deleted Azure Sql Database

Dependencies:
    Az.Sql PowerShell module
#>

# Set variables first
$resourcegroupname = 'myresourcegroup'
$servername = 'myservername'
$databasename = 'mydatabasename'

[hashtable]$tags = @{ 
    application = "testing"
}

try {
    $deleteddatabases = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName $resourcegroupname -ServerName $servername -DatabaseName $databasename
} catch {
    Write-Error "Error getting database backups [Get-AzSqlDeletedDatabaseBackup]: " + $_.Exception.Message
    exit(1)
}

# Get most recent backup in case there are multiple copies
# Assumes index and order in foreach is the same - proven in test
Write-Host "Database backups:"
$index = 0
$MostRecentBackupIndex = 0
$MostRecentBackupDate = (Get-date).AddDays(-2) # initialize variable with date from two days ago
foreach ($db in $deleteddatabases) {
    if ($db.CreationDate -ge $MostRecentBackupDate) {
        $MostRecentBackupIndex = $index
        $MostRecentBackupDate = $db.CreationDate
        Write-Host "Most Recent Database: $($db.DatabaseName) : Created: $($db.CreationDate) : DeleteDate: $($db.DeletionDate)"
    }
    $index++
}

$deleteddatabase = $deleteddatabases[$MostRecentBackupIndex]

Write-Host "----------------------------------------------------------------------------------"
Write-Host "Restoring: $($deleteddatabase.DatabaseName) from: $($deleteddatabase.CreationDate) backup"
Write-Host "----------------------------------------------------------------------------------"

Write-Host "Deleted database info ResourceId: "
Write-Host $deleteddatabase.ResourceId

try {
    Restore-AzSqlDatabase -FromDeletedDatabaseBackup `
        -DeletionDate $deleteddatabase.DeletionDate `
        -ResourceGroupName $resourcegroupname `
        -ServerName $servername `
        -TargetDatabaseName $databasename `
        -ResourceId $deleteddatabase.ResourceID `
        -Edition $deleteddatabase.Edition `
        -Vcore 2 `
        -ComputeGeneration "Gen5" 
} catch {
    Write-Error "Error restoring database [Restore-AzSqlDatabase]: " + $_.Exception.Message
    exit(1)
}

# Wait a few minutes to allow restore to complete before applying the tags
Start-Sleep -Seconds 180

Write-Host "Applying tags to database..."
try {
    $resource = Get-AzResource -ResourceGroupName $resourcegroupname -ResourceType "Microsoft.Sql/servers/databases" -Name "$servername/$databasename"
    New-AzTag -ResourceId $resource.Id -Tag $tags
} catch {
    Write-Error "Error adding tags to database [Get-AzResource, New-AzTag]: " + $_.Exception.Message
    exit(1)
}

Write-Host "Setting ComputeModel to Serverless..."
try {
    # Important - must include -AutoPauseDelayInMinutes 60, -MinVcore, and MaxVcore parameters (thanks holger)
    Set-AzSqlDatabase -ResourceGroupName $resourcegroupname -DatabaseName $databasename -ServerName $servername -ComputeModel Serverless -AutoPauseDelayInMinutes 60 -MinVcore 1 -MaxVcore 2
} catch {
    Write-Error "Error setting serverless mode [Set-AzSqlDatabase]: " + $_.Exception.Message
    exit(1)
}

Write-Host "Database restore complete."
票数 0
EN

Stack Overflow用户

发布于 2022-09-13 14:07:14

Get-AzSqlDeletedDatabaseBackup还原-Restore数据库 PowerShell cmdlet不包含用于获取ComputeModel的属性。

虽然还原删除备份数据库,但我们不需要ComputeModel属性。在设置数据库时,我们需要使用ComputeModel.

如果您想获得Azure数据库的计算模型,可以使用,Get-AzResource命令来获取特定的信息。

谢谢@joy王SO解,我们可以得到无服务器的Azure数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73691724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档