建立執行個體集區 (預覽版) - Azure SQL 受控執行個體

適用於:Azure SQL 受控執行個體

本文將教導如何為 Azure SQL 受控執行個體建立執行個體集區,以及如何將執行個體移入和移出集區。

執行個體集區可讓您使用共用資源將多個執行個體部署至單一虛擬機器,以提供方便且符合成本效益的基礎結構,以移轉多個 SQL Server 執行個體,而不需要將較小型且計算密集較低的工作負載合併到較大的 SQL 受控執行個體。

注意

適用於 Azure SQL 受控執行個體的執行個體集區目前處於預覽狀態。

必要條件

若要建立執行個體集區,您應該具備:

子網路大小考慮

如果您打算使用執行個體集區,請仔細規劃子網路的大小。 有關子網路大小調整指引,請參閱判斷所需的子網路大小與範圍

在計算一個包含多個一般用途執行個體的執行個體集區所需的 IP 位址數目時,請使用下列公式:

2 * (5 + (3 * # of MIs)) + 5

# of MIs 是指您計劃佈建的執行個體的潛在數目上限。 集區中執行個體的可能數目上限為 40。

建立執行個體集區

您可以使用 PowerShell 或 Azure CLI 建立執行個體集區。 請考慮下列事項:

  • 目前只有標準系列 (Gen5) 或進階版系列硬體上的一般用途服務層級可供使用。
  • 集區名稱只能包含小寫字母、數字和連字號,且開頭不得為連字號。
  • Azure Hybrid Benefit 適用於執行個體集區層級。 您可以在建立集區時設定授權類型,並在建立集區之後更新授權類型。

重要

部署執行個體集區是長時間執行的作業,最多可能需要 4.5 小時。

若要建立執行個體集區,請使用 New-AzSqlInstancePool

請考慮下列事項:

  • 針對 LicenseType,如果您沒有可用於 Azure Hybrid Benefit 折扣的 SQL Server 授權,請使用適用於 Azure Hybrid Benefit 的 BasePriceLicenseIncluded
  • 使用 Get-AzLocation | select displayname, location 以取得執行個體集區可供使用的區域清單。

執行下列範例指令碼,在標準系列 (Gen5) 硬體上建立具有 8 個虛擬核心的新執行個體集區:

# Identify the SubnetId
$virtualNetwork = Get-AzVirtualNetwork -Name <vnet name> -ResourceGroupName <resource group name>
$miSubnet = Get-AzVirtualNetworkSubnetConfig -Name <subnet name> -VirtualNetwork $virtualNetwork
$miSubnetConfigId = $miSubnet.Id

# Create the instance
$instancePool = New-AzSqlInstancePool `
    -ResourceGroupName  <resource group name> `
    -Name <instance pool name> `
    -SubnetId $miSubnetConfigId `
    -LicenseType LicenseIncluded `
    -VCore 8 `
    -Edition GeneralPurpose `
    -ComputeGeneration Gen5 `
    -Location <region>

在集區內建立新的執行個體

建立集區之後,您可以使用 PowerShell 或 Azure CLI 在集區內建立新的執行個體。

若要識別集區參數,請使用 Get-AzSqlInstancePool,然後使用 New-AzSqlInstance 在特定集區內建立執行個體。

執行下列範例指令碼,在您的集區中建立新的執行個體:

$adminCredential = Get-Credential
$instancePool = Get-AzSqlInstancePool -ResourceGroupName <resource group name> -Name <instance pool name>

$instance01 = $instancePool | New-AzSqlInstance `
    -Name $instance01`
    -VCore 2 `
    -StorageSizeInGB 32 `
    -AdministratorCredential $adminCredential `

移動現有執行個體

您可以使用 PowerShell 或 Azure CLI,在集區中移入和移出執行個體,只要符合以下條件:

  • 其位於與集區相同的資源群組中。
  • 其位於與集區相同的虛擬網路和子網路上。
  • 其符合執行個體集區資源限制。

當現有的執行個體移入集區時,集區層級的設定優先於執行個體層級設定。 例如,執行個體會繼承集區層級設定的授權類型和維護時段。 當執行個體移出集區時,它會保留繼承自集區的設定。 唯一的例外為授權類型,當執行個體從執行個體集區中移除時,預設會回到 'LicenseIncluded' - 在執行個體移出集區之後,必須手動設定 Azure Hybrid Benefit混合式容錯移轉權限權益

若要將執行個體移入集區,請在使用 Set-AzSqlInstance 時提供集區名稱:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

若要將執行個體移出集區,請提供空白集區名稱:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

連線到集區中的執行個體

若要連線到集區中的執行個體,請先啟用執行個體的公用端點,然後允許網路安全性群組上的公用端點流量

若要啟用執行個體的公用端點,請在使用 Set-AzSqlInstance 更新執行個體屬性時,將 -PublicDataEndpointEnabled 設定為 true

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName -PublicDataEndpointEnabled $true

建立資料庫

在集區內建立執行個體的資料庫,與為單一執行個體建立資料庫相同。 您可以使用 PowerShell 或 Azure CLI 來建立新的資料庫。

若要為您的執行個體建立新的資料庫,請使用 New-AzSqlInstanceDatabase

New-AzSqlInstanceDatabase -Name <database name> -InstanceName <instance name> -ResourceGroupName <resource group> 

取得集區使用量

您可以使用 PowerShell 來判定如何在集區內使用資源。

若要取得集區內的執行個體清單,請使用 Get-AzSqlInstance

$instancePool | Get-AzSqlInstance

若要取得集區資源使用狀況,請使用 Get-AzSqlInstancePoolUsage

$instancePool| Get-AzSqlInstancePoolUsage

您可以新增 -ExpandChildren 參數,以取得集區及其內部執行個體的詳細概觀:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

若要列出執行個體中的資料庫,請使用 Get-AzSqlInstanceDatabase

$databases = Get-AzSqlInstanceDatabase -InstanceName $instance01Name  -ResourceGroupName $resourceGroupName

注意

若要檢查部署到集區的執行個體的限制,以及每個執行個體集區的資料庫,請檢閱資源限制

更新執行個體集區

您可以使用 PowerShell 來變更執行個體集區限制。

下列範例指令碼可變更授權類型、虛擬核心大小和硬體類型:

變更授權類型:

$instancePool | Set-AzSqlInstancePool -LicenseType BasePrice -VCores 16 -ComputeGeneration Gen8

您也可以判定可用的維護時段排程:

# 'Available maintenance schedules in $location'
$configurations = Get-AzMaintenancePublicConfiguration
$configurations | ?{ $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance"} 
$maintenanceWindowOptions = $configurations | ?{ $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance"}

然後,您可以透過指定時段選項來變更維護時段,例如:

$instancePool | Set-AzSqlInstancePool -MaintenanceConfigurationId $maintenanceWindowOptions[1].Id

更新集區式執行個體

如果尚未超過集區資源限制,您可以使用 PowerShell 或 Azure CLI 來修改集區內部執行個體的資源組態,

若要修改集區內部執行個體的資源參數,請使用 Set-AzSqlInstance

例如,下列指令碼會將虛擬核心更新為 8,並將 Instance1 的儲存大小變更為 512 GB:

$instance1name | Set-AzSqlInstance -VCore 8 -StorageSizeInGB 512 -InstancePoolName $instancePoolName

刪除執行個體集區

只要刪除集區中的所有執行個體,或將其移出集區,您即可使用 PowerShell 或 Azure CLI 刪除執行個體集區。

若要刪除執行個體集區,請使用 Remove-AzSqlInstancePool

下列範例指令碼會刪除空白執行個體集區:

Remove-AzSqlInstancePool -ResourceGroupName <resource group name -Name <instance pool name>

執行個體集區作業

下表顯示可用的執行個體集區作業:

Command Azure 入口網站 PowerShell Azure CLI
建立執行個體集區 .是 Yes
更新集區屬性 No .是 Yes
檢查集區使用和屬性 Yes .是
刪除執行個體集區 Yes .是 Yes
在集區內部建立受控執行個體 No .是 Yes
將受控執行個體移入集區 No .是 Yes
從集區刪除受控執行個體 Yes .是 Yes
將受控執行個體移出集區 No .是 Yes
在集區內的執行個體中建立資料庫 Yes .是 Yes
從 SQL 受控執行個體刪除資料庫 .是 Yes

若要使用 PowerShell,請安裝最新版的 PowerShell Core,並遵循安裝 Azure PowerShell 模組的指示。

可用的 PowerShell 命令

Cmdlet 描述
New-AzSqlInstancePool 建立執行個體集區。
Get-AzSqlInstancePool 傳回執行個體集區的資訊。
Set-AzSqlInstancePool 設定執行個體集區的屬性。
Remove-AzSqlInstancePool 移出執行個體集區。
Get-AzSqlInstancePoolUsage 傳回執行個體集區使用量的相關資訊。

對於集區和單一執行個體內的執行個體相關作業,請使用標準受控執行個體命令,但當您針對集區中的執行個體使用這些命令時,必須填入「執行個體集區名稱」屬性。

限制

在公開預覽期間,集區中的執行個體具有下列限制:

  • 集區名稱只能包含小寫字母、數字和連字號,且開頭不得為連字號。
  • 集區中的所有執行個體都使用相同的授權模型。 當您為執行個體指定的授權模型與集區的授權模型不同時,會使用集區授權模型。 在將執行個體移出集區時,它會自動切換到全額付費授權 (LicenseType = 'LicenseIncluded')。 手動啟用 Azure Hybrid Benefit混合式容錯移轉權限權益,以變更授權模型。
  • 集區執行個體必須屬於相同的子網路和資源群組。 只有在集區和相同資源群組的子網路內,才能將執行個體移入和移出集區。
  • 只有標準系列 (Gen5) 或進階版系列硬體上的一般用途服務層級可供使用。 下一代一般用途、業務關鍵 服務層級和進階系列記憶體優化硬體無法使用。
  • 集區中執行個體的可能數目上限為 40。
  • 只有在集區中的所有執行個體都已刪除或移出集區之後,才能刪除執行個體集區。
  • 您無法使用 Azure 入口網站來:
    • 設定執行個體集區。 使用 PowerShell 或 Azure CLI。
    • 將執行個體移入和移出集區。 使用 PowerShell 或 Azure CLI。
  • 當執行個體位於集區時,不支援下列 SQL 受控執行個體功能:

支援要求

請在 Azure 入口網站中建立和管理執行個體集區的支援要求。

如果您建立或刪除執行個體時遇到問題,請確定您已在 [問題子類型] 欄位中指定 [執行個體集區]

Azure 入口網站 中實例集區支援要求的螢幕快照。

如果您遇到與集區內單一受控執行個體或資料庫有關的問題,則應該為 Azure SQL 受控執行個體建立一般支援票證。

若要建立較大的 SQL 受控執行個體部署 (不論有沒有執行個體集區),您會需要取得較大的區域配額。 如需詳細資訊,請參閱要求增加 Azure SQL Database 配額。 執行個體集區的部署邏輯會將集區層級的虛擬核心使用量總計與您的配額進行比較,以判斷是否允許您建立新的資源而不需要進一步增加配額。