Azure SQL Databaseでサーバーレスデータベースを作成・設定

適用対象:Azure SQL データベース

この記事では、新しいサーバーレスデータベースの作成方法、既存のデータベースをサーバーレス計算層に移行する方法、そしてAzure SQL Databaseでのサーバーレス設定の変更方法を説明します。

新しいサーバーレス データベースを作成する

新しいデータベースの作成や既存のデータベースをサーバーレスのコンピュート層に移行することは、プロビジョニングされたコンピュート層で新しいデータベースを作成するのと同じパターンに従います。 このプロセスは以下の2つのステップから成り立っています。

  1. サービス目標を指定します。 サービス目標では、サービス レベル、ハードウェア構成、および最大仮想コア数が規定されます。 サービス目的の選択肢については、 サーバーレスリソース制限を参照してください。

  2. 必要に応じて、最小仮想コア数と自動一時停止遅延を指定して、既定値を変更します。 詳細は「 自動一時停止」と「自動再開」をご覧ください。

次の例では、サーバーレス コンピューティング レベルで新しいデータベースを作成します。

Azure ポータルを使用する

Quickstart: Azure ポータルを使用してAzure SQL Databaseで単一データベースを作成するを参照してください。

PowerShell の使用

次の PowerShell の例を使用して、新しいサーバーレス General Purpose データベースを作成します。

$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 の例を使用して、新しい General Purpose サーバーレス データベースを作成します。

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

コンピューティング レベルまたはサービス レベル間でデータベースを移行する

データベースはプロビジョニング済みのコンピュート層とサーバーレスのコンピュート層間で移動できます。

また、サーバーレスデータベースを汎用サービス層からハイパースケールサービス層に移行することも可能です。 詳細については、「既存のデータベースを Hyperscaleに変換する」を参照してください。

データベースをコンピュートティア間で移動する際は、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や自動一時停止遅延を変更してください。 MaxVcoreMinVcoreAutoPauseDelayInMinutesのパラメータを使いましょう。 Hyperscaleティアは現在サーバーレスの自動停止をサポートしていないため、オートポーズ遅延パラメータは汎用ティアにのみ適用されます。

例えば、MaxVcoreMinVcore、または 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、自動一時停止遅延を変更してください。 capacitymin-capacityauto-pause-delayのパラメータを使いましょう。 Hyperscaleティアは現在サーバーレスの自動停止をサポートしていないため、オートポーズ遅延パラメータは汎用ティアにのみ適用されます。

例えば、データベースを異なる最小または最大数の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