在 Azure SQL 数据库 中创建和配置无服务器数据库

适用于:Azure SQL 数据库

本文将解释如何创建新的无服务器数据库,将现有数据库迁移到无服务器计算层,以及在 Azure SQL 数据库 中修改无服务器配置。

创建新的无服务器数据库

创建新数据库或将现有数据库迁移到无服务器计算层,遵循与在配置计算层创建新数据库的模式相同。 该过程包括以下两个步骤:

  1. 指定服务目标。 服务目标规定了服务层级、硬件配置和最大 vCore 数。 关于服务目标选项,请参见 无服务器资源限制

  2. (可选)指定最小 vCore 数和自动暂停延迟以更改它们的默认值。 更多信息请参见 自动暂停和自动恢复

以下示例在无服务器计算层中创建新数据库。

使用 Azure 门户

请参阅快速入门:使用 Azure 门户在 Azure SQL 数据库中创建单一数据库

使用 PowerShell

使用以下 PowerShell 示例创建新的无服务器常规用途数据库:

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<new database name>"

$params = @{
    ResourceGroupName = $resourceGroupName
    ServerName = $serverName
    DatabaseName = $databaseName
    Edition = 'GeneralPurpose'
    ComputeModel = 'Serverless'
    ComputeGeneration = 'Gen5'
    MinVcore = 0.5
    MaxVcore = 2
    AutoPauseDelayInMinutes = 15
}
New-AzSqlDatabase @params

使用Azure CLI

通过以下 Azure CLI 示例创建一个新的无服务器通用数据库:

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<database name>"

az sql db create -g $resourceGroupName `
-s $serverName `
-n $databaseName `
-e GeneralPurpose `
--compute-model Serverless `
-f Gen5 `
--min-capacity 0.5 `
-c 2 `
--auto-pause-delay 15

使用 Transact-SQL (T-SQL)

当你用T-SQL创建新的无服务器数据库时,系统会对最小vCore和自动暂停延迟应用默认值。 之后你可以在 Azure 门户或通过 API(包括 PowerShell、Azure CLI 和 REST)更改这些值。

有关详细信息,请参阅 CREATE DATABASE

使用以下 T-SQL 示例创建新的常规用途无服务器数据库:

CREATE DATABASE testdb
( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_S_Gen5_1' ) ;

在计算层级或服务层级之间移动数据库

你可以在配置计算层和无服务器计算层之间移动数据库。

你也可以将无服务器数据库从通用服务层迁移到超大规模服务层。 有关详细信息,请参阅将现有数据库转换为超大规模

当你在不同计算层之间移动数据库时,如果使用 PowerShell 或 Azure CLI,请将计算模型参数指定为ServerlessProvisioned。 使用 T-SQL 时,请指定 SERVICE_OBJECTIVE。 查看 资源限制,确定相应的服务目标。

下面的示例将现有数据库从预配计算层级中移入无服务器计算层级。

使用 PowerShell

通过以下PowerShell示例,将已配置的计算通用数据库迁移到无服务器计算层:

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<new database name>"

$params = @{
    ResourceGroupName = $resourceGroupName
    ServerName = $serverName
    DatabaseName = $databaseName
    Edition = 'GeneralPurpose'
    ComputeModel = 'Serverless'
    ComputeGeneration = 'Gen5'
    MinVcore = 1
    MaxVcore = 4
    AutoPauseDelayInMinutes = 1440
}
Set-AzSqlDatabase @params

使用Azure CLI

要将已配置的计算通用数据库迁移到无服务器计算层,请使用以下 Azure CLI 示例:

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<database name>"

az sql db update -g $resourceGroupName `
-s $serverName `
-n $databaseName `
--edition GeneralPurpose `
--compute-model Serverless `
--family Gen5 `
--min-capacity 1 `
--capacity 4 `
--auto-pause-delay 1440

使用 Transact-SQL (T-SQL)

当你用 T-SQL 在不同计算层之间移动数据库时,操作会应用最小 vCore 和自动暂停延迟的默认值。 你可以在 Azure 门户或通过 API(包括 PowerShell、Azure CLI 和 REST)更改这些值。 有关详细信息,请参阅 ALTER DATABASE

要将已配置的计算通用数据库迁移到无服务器计算层,请使用以下 T-SQL 示例:

ALTER DATABASE testdb 
MODIFY ( SERVICE_OBJECTIVE = 'GP_S_Gen5_1') ;

修改无服务器配置

使用 PowerShell

使用 Set-AzSqlDatabase 来更改最大或最小的 vCore 值,以及自动暂停延迟。 使用 MaxVcoreMinVcoreAutoPauseDelayInMinutes 参数。 超大规模层级目前不支持无服务器自动暂停,因此自动暂停延迟参数只适用于通用层。

例如,修改 MaxVcoreMinVcoreAutoPauseDelayInMinutes

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<new database name>"

$params = @{
    ResourceGroupName = $resourceGroupName
    ServerName = $serverName
    DatabaseName = $databaseName
    MinVcore = 1
    MaxVcore = 4
    AutoPauseDelayInMinutes = 1440
}
Set-AzSqlDatabase @params

使用Azure CLI

az sql db update 来更改最大或最小vCore,以及自动暂停延迟。 使用 capacitymin-capacityauto-pause-delay 参数。 超大规模层级目前不支持无服务器自动暂停,因此自动暂停延迟参数只适用于通用层。

例如,修改数据库以使用不同的最小或最大vCore数量,或更改自动暂停延迟:

$resourceGroupName = "<resource group name>"
$serverName = "<logical SQL server name>"
$databaseName = "<database name>"

az sql db update -g $resourceGroupName `
-s $serverName `
-n $databaseName `
--min-capacity 1 `
--capacity 4 `
--auto-pause-delay 1440