适用于:Azure SQL 数据库
本文将解释如何创建新的无服务器数据库,将现有数据库迁移到无服务器计算层,以及在 Azure SQL 数据库 中修改无服务器配置。
创建新的无服务器数据库
创建新数据库或将现有数据库迁移到无服务器计算层,遵循与在配置计算层创建新数据库的模式相同。 该过程包括以下两个步骤:
指定服务目标。 服务目标规定了服务层级、硬件配置和最大 vCore 数。 关于服务目标选项,请参见 无服务器资源限制。
(可选)指定最小 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,请将计算模型参数指定为Serverless或Provisioned。 使用 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 值,以及自动暂停延迟。 使用 MaxVcore、 MinVcore和 AutoPauseDelayInMinutes 参数。 超大规模层级目前不支持无服务器自动暂停,因此自动暂停延迟参数只适用于通用层。
例如,修改 MaxVcore、 MinVcore或 AutoPauseDelayInMinutes
$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,以及自动暂停延迟。 使用 capacity、 min-capacity和 auto-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