Создание пула экземпляров (предварительная версия) — Управляемый экземпляр SQL Azure

Применимо к:Управляемый экземпляр SQL Azure

В этой статье описывается, как создать пул экземпляров для Управляемый экземпляр SQL Azure, а также как перемещать экземпляры в пул и из него.

Пулы экземпляров позволяют развертывать несколько экземпляров с общими ресурсами на одной виртуальной машине, что обеспечивает удобную и эффективную инфраструктуру для переноса нескольких экземпляров SQL Server без необходимости объединять небольшие и менее вычислительные рабочие нагрузки на более крупные Управляемый экземпляр SQL.

Примечание.

Пулы экземпляров для Управляемый экземпляр SQL Azure в настоящее время находятся в предварительной версии.

Необходимые компоненты

Чтобы создать пул экземпляров, необходимо:

Рекомендации по размеру подсети

Тщательно спланируйте размер подсети, если планируется использовать пул экземпляров. См. инструкции по определению требуемого размера подсети и диапазона для рекомендаций по размеру подсети.

Используйте следующую формулу при вычислении количества IP-адресов, необходимых для одного пула экземпляров, содержащего несколько экземпляров общего назначения:

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

Это # of MIs относится к максимальному потенциальному количеству экземпляров, которые планируется подготовить. Максимально возможное количество экземпляров в пуле — 40.

Создание пула экземпляров

Пул экземпляров можно создать с помощью PowerShell или Azure CLI. Рассмотрим следующий пример.

  • В настоящее время доступно только уровень служб общего назначения в стандартной серии (5-го поколения) или оборудовании серии "Премиум".
  • Имя пула может содержать только строчные буквы, цифры и дефисы, но оно не может начинаться с дефиса.
  • Преимущество гибридного использования Azure применяется на уровне пула экземпляров. Можно задать тип лицензии при создании пула и обновить тип лицензии после создания пула.

Внимание

Развертывание пула экземпляров — это длительная операция, которая может занять до 4,5 часа.

Чтобы создать пул экземпляров, используйте New-AzSqlInstancePool.

Рассмотрим следующий пример.

  • Для LicenseTypeэтого используйте BasePrice для Преимущество гибридного использования Azure или LicenseIncluded, если у вас нет лицензии SQL Server, которую можно использовать для скидки Преимущество гибридного использования Azure.
  • Используется Get-AzLocation | select displayname, location для получения списка регионов, где доступны пулы экземпляров.

Создайте пул экземпляров с 8 виртуальными ядрами на оборудовании стандартной серии (5-го поколения), выполнив следующий пример сценария:

# 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 и гибридной отработки отказа должно быть настроено вручную после перемещения экземпляра из пула.

Чтобы переместить экземпляр в пул, укажите имя пула при использовании Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Чтобы переместить экземпляр из пула, укажите пустое имя пула:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Подключение экземпляр в пуле

Чтобы подключиться к экземпляру в пуле, сначала включите общедоступную конечную точку для экземпляра, а затем разрешите трафик общедоступной конечной точки в группе безопасности сети.

Чтобы включить общедоступную конечную точку для экземпляра, установите -PublicDataEndpointEnabledзначение true при обновлении свойств экземпляра с помощью Set-AzSqlInstance:

$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 и изменяет размер хранилища на 512 ГБ для Instance1:

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

Удаление пула экземпляров

Пул экземпляров можно удалить с помощью PowerShell или Azure CLI, когда все экземпляры в пуле были удалены или перемещены из пула.

Чтобы удалить пул экземпляров, используйте Remove-AzSqlInstancePool.

Следующий пример скрипта удаляет пустой пул экземпляров:

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

Операции с пулом экземпляров

В следующей таблице показаны доступные операции пула экземпляров:

Команда Портал Azure PowerShell Azure CLI
Создание пула экземпляров No Да Да
Обновление свойств пула No Да Да
Проверка использования пула и свойств Да Да Да
Удаление пула экземпляров Да Да Да
Создание управляемого экземпляра в пуле No Да Да
Перемещение управляемого экземпляра в пул No Да Да
Удаление управляемого экземпляра из пула Да Да Да
Перемещение управляемого экземпляра из пула No Да Да
Создание базы данных в экземпляре в пуле Да Да Да
Удаление базы данных из управляемого экземпляра SQL Да Да Да

Чтобы использовать PowerShell, установите последнюю версию PowerShell Core и следуйте инструкциям по установке модуля Azure PowerShell.

Доступные команды PowerShell

Командлет Description
New-AzSqlInstancePool Создает пул экземпляров.
Get-AzSqlInstancePool Возвращает сведения о пуле экземпляров.
Set-AzSqlInstancePool Задает свойства для пула экземпляров.
Remove-AzSqlInstancePool Удаляет пул экземпляров.
Get-AzSqlInstancePoolUsage Возвращает сведения об использовании пула экземпляров.

Для операций, относящихся к экземплярам внутри пулов и отдельным экземплярам, используйте стандартные команды управляемого экземпляра, но при использовании этих команд для экземпляра в пуле необходимо заполнить свойство имени пула экземпляров.

Ограничения

Во время общедоступной предварительной версии экземпляры в пуле имеют следующие ограничения:

  • Имя пула может содержать только строчные буквы, цифры и дефисы, но оно не может начинаться с дефиса.
  • Все экземпляры в пуле используют одну и ту же модель лицензирования. При указании модели лицензии для экземпляра, отличного от модели лицензии для пула, используется модель лицензии пула. При перемещении экземпляра из пула он автоматически переключается на полную платную лицензию (LicenseType = LicenseIncluded). Вручную активируйте Преимущество гибридного использования Azure или преимущество гибридных прав отработки отказа, чтобы изменить модель лицензирования.
  • Экземпляры в пуле должны принадлежать одной подсети и группе ресурсов. Перемещение экземпляра в пул и из него возможно только в подсети пула и той же группы ресурсов.
  • Только уровень служб общего назначения доступен на оборудовании ценовой категории "Стандартный" (5-го поколения) или "Премиум". Оборудование, оптимизированное для памяти следующего поколения, критически важный для бизнеса уровня служб и оптимизированное для памяти класса Premium оборудование недоступно.
  • Максимально возможное количество экземпляров в пуле — 40.
  • Пул экземпляров можно удалить только после того, как все экземпляры в пуле удаляются или перемещаются из пула.
  • Вы не можете использовать портал Azure для:
    • Настройте пул экземпляров. Вместо этого используйте PowerShell или Azure CLI.
    • Перемещение экземпляров в пул и из него. Вместо этого используйте PowerShell или Azure CLI.
  • Следующие Управляемый экземпляр SQL функции не поддерживаются, если экземпляры находятся в пуле:

Запросы в службу поддержки

Создание запросов на поддержку и управление ими осуществляется на портале Azure.

Если при создании или удалении экземпляра возникают проблемы, обязательно укажите пулы экземпляров в поле подтипа проблемы.

Снимок экрана: запрос на поддержку пулов экземпляров в портал Azure.

Если у вас возникли проблемы, связанные с одним управляемым экземпляром или базой данных в пуле, необходимо создать обычный запрос в службу поддержки для Управляемый экземпляр SQL Azure.

Чтобы создать более крупные Управляемый экземпляр SQL развертывания (с пулами экземпляров или без нее), может потребоваться получить более крупную региональную квоту. Дополнительные сведения см. в статье Запрос на увеличение квоты для базы данных SQL Azure. Логика развертывания пулов экземпляров сравнивает общее потребление виртуальных ядер на уровне пула с квотой, чтобы определить, разрешено ли создавать новые ресурсы без дальнейшего увеличения квоты.