Бөлісу құралы:


Настройка SQL Server, включенная Azure Arc

Применимо к:SQL Server

Каждый сервер с поддержкой Azure Arc включает набор свойств, которые применяются ко всем экземплярам SQL Server, установленным на этом сервере. Эти свойства можно настроить после установки расширения Azure для SQL Server на компьютере. Однако свойства вступают в силу только в том случае, если установлены экземпляры ИЛИ экземпляры SQL Server. В портал Azure SQL Server, включенный в Azure Arc Overview, отражает, как конфигурация SQL Server влияет на конкретный экземпляр.

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

  • Вы находитесь в роли участника по крайней мере в одной из подписок Azure, созданных вашей организацией. Узнайте, как создать новую подписку на выставление счетов.

  • Вы находитесь в роли участника для группы ресурсов, в которой будет зарегистрирован экземпляр SQL Server. Дополнительные сведения см. в управляемых группах ресурсов Azure.

  • Microsoft.HybridCompute Поставщики Microsoft.AzureArcData ресурсов регистрируются в каждой подписке, используемой для выставления счетов по мере использования SQL Server.

Регистрация поставщиков ресурсов

Чтобы зарегистрировать поставщиков ресурсов, используйте один из следующих методов:

  1. Выбор пункта Подписки
  2. Выберите свою подписку
  3. В разделе Параметры с помощью пункта Поставщики ресурсов
  4. Найдите Microsoft.AzureArcData и Microsoft.HybridCompute и выберите Зарегистрировать.

Изменение конфигурации SQL Server

Вы можете использовать портал Azure, PowerShell или CLI для изменения всех или некоторых параметров конфигурации на определенном сервере с поддержкой Arc в нужное состояние.

Чтобы изменить конфигурацию SQL Server для большей области, например группу ресурсов, подписку или несколько подписок с одной командой, используйте modify-license-type.ps1 сценарий PowerShell. Он опубликован как пример открытый код SQL Server и включает пошаговые инструкции.

Совет

Запустите скрипт из Azure Cloud Shell, так как:

  • У него есть необходимые предварительно установленные модули Azure PowerShell
  • Он автоматически проходит проверку подлинности.

Дополнительные сведения см. в разделе "Запуск скрипта с помощью Cloud Shell".

Существует два способа настройки узла SQL Server в портал Azure.

  • Откройте страницу обзора сервера с поддержкой Arc и выберите конфигурацию SQL Server, как показано ниже.

    Снимок экрана: SQL Server, включенный Azure Arc в портал Azure.

    Or

  • Откройте страницу обзора SQL Server с поддержкой Arc и выберите "Свойства". В разделе конфигурации SQL Server выберите нужный параметр:

    • Тип лицензии
    • Подписка ESU
    • Автоматическое обновление

    Снимок экрана: конфигурация экземпляра SQL Server портал Azure.

Установка свойства типа лицензии

Выберите один из типов лицензий. Сведения о типах лицензий см. в разделе "Типы лицензий".

Использование лицензии на физическое ядро

Установите этот флажок, если вы настраиваете виртуальную машину, и вы используете неограниченное преимущество виртуализации для лицензирования программного обеспечения SQL Server или подписки SQL. Для свойства UsePhysicalCoreLicense конфигурации узла будет задано значение True. Если выбрано, лицензия p-core имеет приоритет, а затраты на программное обеспечение SQL Server будут иметь значение NULL.

Внимание

Если физическая лицензия на ядро настроена с помощью плана выставления счетов по мере использования, выбранный тип лицензии должен быть задан как оплату по мере использования. Это не приведет к дополнительным затратам на уровне виртуальной машины, но гарантирует отсутствие лицензирования и выставления счетов в случае отмены активации или удаления лицензии p-core.

Подписка на расширенные обновления системы безопасности

Расширенные обновления безопасности (ESU) доступны для квалифицированных экземпляров SQL Server, использующих лицензию с Software Assurance или оплатой по мере использования в качестве типа лицензии. Выберите подписку на расширенные обновления системы безопасности. Подписка будет активирована после нажатия кнопки "Сохранить".

Примечание.

  • Чтобы активировать подписку ESU, тип лицензии должен иметь значение Pay-as-you-go или License with Software Assurance. Если для него задана только лицензия, параметры расширенных обновлений безопасности будут отключены.
  • Если тип лицензии ESU включен, нельзя изменить до LicenseOnly отмены подписки ESU.

Использование лицензии ESU физического ядра

Установите этот флажок, если вы настраиваете виртуальную машину, и вы используете неограниченное преимущество виртуализации при включении подписки ESU. Он задает значение UseEsuPhysicalCoreLicensetrue. Если выбрано, лицензия p-core имеет приоритет, а плата ЗА ESU SQL Server на уровне виртуальной машины будет иметь значение NULL.

Отмена подписки на расширенные обновления системы безопасности

Вы можете отменить расширенные обновления безопасности, включенные Azure Arc в любое время. Отмена немедленно останавливает расходы ESU. Выберите отмену подписки на расширенные обновления системы безопасности. Подписка будет прекращена после нажатия кнопки "Сохранить".

Добавление в список исключенных экземпляров

Некоторые экземпляры можно исключить из операций подключения в масштабе, управляемых политикой Azure или автоматическим подключением. Чтобы исключить определенные экземпляры из этих операций, добавьте имена экземпляров в список "Пропустить экземпляры ". Дополнительные сведения о параметрах подключения в масштабе см. в статье "Альтернативные варианты развертывания" для SQL Server, включенных Azure Arc.

Внимание

Экземпляры SQL Server, использующие оплату по мере использования (PAYG), не могут быть исключены.

Сохранение обновленной конфигурации

После проверки типа лицензии, параметра ESU и любого экземпляра, чтобы исключить, нажмите кнопку "Сохранить ", чтобы применить изменения.

Внимание

Неограниченное преимущество виртуализации для программного обеспечения SQL Server или подписки SQL Server ESU не поддерживается в инфраструктуре перечисленных поставщиков. Если вы используете SQL Server на виртуальной машине указанного поставщика и выберите этот параметр, намерение будет игнорироваться, и вы будете взимать плату за виртуальные ядра виртуальной машины. Дополнительные сведения см. в разделе "Перечисленные поставщики ".

Подписка на расширенные обновления системы безопасности в масштабе с помощью Политика Azure

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

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

  1. Перейдите к Политика Azure в портал Azure и выберите "Определения".
  2. Найдите подходящие экземпляры SQL Server с поддержкой Arc для подписки на расширенные обновления безопасности и щелкните правой кнопкой мыши политику.
  3. Выберите " Назначить политику".
  4. Выберите подписку и при необходимости группу ресурсов в качестве области.
  5. Убедитесь, что для принудительного применения политики задано значение "Включено".
  6. На вкладке "Параметры" задайте значение "Включить расширенные обновления безопасности " значение True.
  7. На вкладке "Исправление":
    1. Выберите "Создать задачу исправления" для применения этой политики к существующим ресурсам. Если этот параметр не выбран, политика применяется только к вновь созданным ресурсам.
    2. Выберите "Создать управляемое удостоверение" и выберите управляемое удостоверение, назначаемое системой (рекомендуется) или назначаемое пользователем управляемое удостоверение, которое имеет расширение Azure для развертывания и чтения SQL Server.
    3. Выберите расположение удостоверения.
  8. Выберите Review + Create (Просмотреть и создать).
  9. Нажмите кнопку создания.

Запрос конфигурации SQL Server

Azure Resource Graph можно использовать для запроса параметров конфигурации SQL Server в выбранной области. См. следующие примеры.

Подсчет по типу лицензии

В этом примере возвращается количество по типу лицензии.

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
| summarize count() by tostring(licenseType)

Определение экземпляров, в которых тип лицензии не определен

Этот запрос возвращает список экземпляров, в которых тип лицензии имеет значение NULL.

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| where isnull(properties.settings.LicenseType)
| project ['id'], resourceGroup, subscriptionId

Список сведений о конфигурации для каждого экземпляра SQL Server

Этот запрос определяет множество сведений о каждом экземпляре, включая тип лицензии, параметр ESU и включенные функции.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| extend machineIdHasSQLServerDiscovered = id
| project name, machineIdHasSQLServerDiscovered, resourceGroup, subscriptionId
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), "")
    | project Extension_State = properties.provisioningState,
    License_Type = properties.settings.LicenseType,
    ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""),
    Extension_Version = properties.instanceView.typeHandlerVersion,
    Excluded_instances = properties.ExcludedSqlInstances,
    Purview = iff(notnull(properties.settings.ExternalPolicyBasedAuthorization),"enabled",""),
    Entra = iff(notnull(properties.settings.AzureAD),"enabled",""),
    BPA = iff(notnull(properties.settings.AssessmentSettings),"enabled",""),
    machineIdHasSQLServerExtensionInstalled)on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isnotempty(machineIdHasSQLServerExtensionInstalled)
| project-away machineIdHasSQLServerDiscovered, machineIdHasSQLServerExtensionInstalled

Вывод списка серверов с поддержкой Arc с экземплярами SQL Server

Этот запрос определяет серверы с поддержкой Azure Arc с экземплярами SQL Server, обнаруженными на них.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
//| summarize count()

Этот запрос возвращает серверы с поддержкой Azure Arc, имеющие экземпляры SQL Server, но расширение SQL Server Arc не установлено. Этот запрос применяется только к серверам Windows.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| project machineIdHasSQLServerDiscovered = id
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type == "WindowsAgent.SqlServer"
    | project machineIdHasSQLServerExtensionInstalled = substring(id, 0, indexof(id, "/extensions/WindowsAgent.SqlServer")))
on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isempty(machineIdHasSQLServerExtensionInstalled)
| project machineIdHasSQLServerDiscoveredButNotTheExtension = machineIdHasSQLServerDiscovered

Дополнительные примеры запросов Azure Resource Graph см . в примерах запросов Начальных ресурсов Graph.

Вывод списка экземпляров SQL Server с поддержкой Arc, подписанных на ESU

В следующем примере показано, как просмотреть все подходящие экземпляры SQL Server 2012 (11.x) и их состояние подписки ESU.

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances'
| extend Version = properties.version
| extend Edition = properties.edition
| extend containerId = tolower(tostring (properties.containerResourceId))
| where Version contains "2012"
| where Edition in ("Enterprise", "Standard")
| where isnotempty(containerId)
| project containerId, SQL_instance = name, Version, Edition
| join kind=inner (
    resources
    | where type == "microsoft.hybridcompute/machines"
    | extend machineId = tolower(tostring(id))
    | project machineId, Machine_name = name
)
on $left.containerId == $right.machineId
| join kind=inner (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = tolower(iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), ""))
    | project machineIdHasSQLServerExtensionInstalled, Extension_State = properties.provisioningState, License_Type = properties.settings.LicenseType, ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""), Extension_Version = properties.instanceView.typeHandlerVersion
)
on $left.machineId == $right.machineIdHasSQLServerExtensionInstalled
| project-away machineId, containerId, machineIdHasSQLServerExtensionInstalled

Вывод списка серверов с поддержкой Arc, на которых размещен оплачиваемый экземпляр SQL Server

Этот запрос определяет компьютеры (виртуальные или физические), на которых размещаются экземпляры SQL Server, которые оплачиваются или требуют лицензии на программное обеспечение SQL Server. Он содержит сведения о конфигурации SQL Server, включая тип лицензии, параметр ESU, размер v-core или p-cores и другие соответствующие параметры.

resources
| where type =~ 'Microsoft.HybridCompute/machines'
| extend status = tostring(properties.status)
| where status =~ 'Connected'
| extend machineID = tolower(id)
| extend VMbyManufacturer = toboolean(iff(properties.detectedProperties.manufacturer in (
        "VMware",
        "QEMU",
        "Amazon EC2",
        "OpenStack",
        "Hetzner",
        "Mission Critical Cloud",
        "DigitalOcean",
        "UpCloud",
        "oVirt",
        "Alibaba",
        "KubeVirt",
        "Parallels",
        "XEN"
    ), 1, 0))
| extend VMbyModel = toboolean(iff(properties.detectedProperties.model in (
        "OpenStack",
        "Droplet",
        "oVirt",
        "Hypervisor",
        "Virtual",
        "BHYVE",
        "KVM"
    ), 1, 0))
| extend GoogleVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Google") and (properties.detectedProperties.model =~ "Google Compute Engine"), 1, 0))
| extend NutanixVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Nutanix") and (properties.detectedProperties.model =~ "AHV"), 1, 0))
| extend MicrosoftVM = toboolean(iff((properties.detectedProperties.manufacturer =~ "Microsoft Corporation") and (properties.detectedProperties.model =~ "Virtual Machine"), 1, 0))
| extend billableCores = iff(VMbyManufacturer or VMbyModel or GoogleVM or NutanixVM or MicrosoftVM, properties.detectedProperties.logicalCoreCount, properties.detectedProperties.coreCount)        
| join kind = leftouter // Join Extension
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend extMachineID = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.extMachineID
        | join kind = inner       // Join SQL Arc
            (
            resources
            | where type =~ 'microsoft.azurearcdata/sqlserverinstances'
            | extend sqlVersion = tostring(properties.version)
            | extend sqlEdition = tostring(properties.edition) 
            | extend is_Enterprise = toint(iff(sqlEdition == "Enterprise", 1, 0))
            | extend sqlStatus = tostring(properties.status)
            | extend licenseType = tostring(properties.licenseType)
            | where sqlEdition in ('Enterprise', 'Standard') 
            | where licenseType !~ 'HADR'
            | where sqlStatus =~ "Connected"
            | extend ArcServer = tolower(tostring(properties.containerResourceId))
            | order by sqlEdition
            )
            on $left.machineID == $right.ArcServer
            | where isnotnull(extensionId)
            | summarize Edition = iff(sum(is_Enterprise) > 0, "Enterprise", "Standard") by machineID
            , name
            , resourceGroup
            , subscriptionId
            , Model = tostring(properties.detectedProperties.model)
            , Manufacturer = tostring(properties.detectedProperties.manufacturer)
            , License_Type = tostring(properties1.settings.LicenseType)
            , OS = tostring(properties.osName)
            , Uses_UV = tostring(properties1.settings.UsePhysicalCoreLicense.IsApplied)
            , Cores = tostring(billableCores)
            , Version = sqlVersion
            | project-away machineID
            | order by Edition, name asc

Управление неограниченным преимуществом виртуализации для SQL Server

Чтобы включить неограниченную виртуализацию, SQL Server, включенная Azure Arc, поддерживает специальный тип ресурсов: SQLServerLicense. Этот ресурс позволяет лицензировать множество виртуальных машин с установленными экземплярами SQL Server. Дополнительные сведения о модели лицензирования см. в разделе "Лицензирование экземпляров SQL Server с неограниченной виртуализацией".

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

Роль RBAC включает следующие разрешения:

  • Microsoft.AzureArcData/SqlLicenses/read
  • Microsoft.AzureArcData/SqlLicenses/write
  • Microsoft.Management/managementGroups/read
  • Microsoft.Resources/subscriptions/read
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Support/supporttickets/write

Создание лицензии SQL Server

Чтобы создать ресурс лицензии SQL Server, используйте один из следующих методов:

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server
  3. Нажмите кнопку +Создать
  4. Выбор лицензии на физическое ядро SQL Server
  5. Завершение работы мастера создания

Обновление ресурса лицензии SQL Server

Чтобы изменить свойство лицензии SQL Server, например активировать его на более позднюю дату, используйте один из следующих методов:

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server
  3. Выберите в вопросе лицензию
  4. Выберите " Настроить" в разделе "Управление"
  5. Внесите изменения и нажмите кнопку "Применить"

Управление ресурсами в области лицензии p-core

Вы можете управлять ресурсами в области конкретной лицензии физического ядра SQL Server, выполнив следующие действия.

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server
  3. Выберите в вопросе лицензию
  4. Выбор ресурсов в области управления

Если определенные ресурсы не настроены для использования этой лицензии (при применении столбца лицензий физического ядра отображается значение NO), можно изменить следующее:

  1. Выберите определенные ресурсы в списке
  2. Выберите вкладку "Применить лицензию"
  3. Прочитайте заявление об отказе и нажмите кнопку "Подтвердить"

Вывод списка серверов с поддержкой Arc в области лицензии SQL Server

В этом запросе перечислены все серверы с поддержкой Azure Arc в области лицензии и соответствующие свойства каждого.

resources
        | where type =~ 'Microsoft.HybridCompute/machines'
        | where ('${scopeType}'!= 'Subscription' or subscriptionId == '${subscription}')
        | where ('${scopeType}' != 'ResourceGroup' or (resourceGroup == '${resourceGroup.toLowerCase()}' and subscriptionId == '${subscription}'))
        | extend status = tostring(properties.status)
        | where status =~ 'Connected'
        | join kind = leftouter
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend machineId = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.machineId
        | where isnotnull(extensionId)
        | project id, name, properties.status, resourceGroup, subscriptionId, Model = properties.detectedProperties.model, Manufacturer = properties.detectedProperties.manufacturer, kind, OSE = properties.osName, License_applied = properties1.settings.UsePhysicalCoreLicense.IsApplied
        |order by name asc

Управление неограниченным преимуществом виртуализации для подписки SQL Server ESU

Чтобы включить неограниченную виртуализацию для подписки ESU, SQL Server с поддержкой Azure Arc поддерживает специальный тип ресурсов: SQLServerEsuLicense. Этот ресурс позволяет включить подписку ESU для набора физических узлов с неограниченным количеством виртуальных машин, выполняющих экземпляры SQL Server вне поддержки. Дополнительные сведения о модели лицензирования см. в разделе "Лицензирование экземпляров SQL Server с неограниченной виртуализацией".

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

Роль RBAC включает следующие разрешения:

  • Microsoft.AzureArcData/SqlLicenses/read
  • Microsoft.AzureArcData/SqlLicenses/write
  • Microsoft.Management/managementGroups/read
  • Microsoft.Resources/subscriptions/read
  • Microsoft.Resources/subscriptions/resourceGroups/read
  • Microsoft.Support/supporttickets/write

Создание ресурса лицензии SQL Server ESU

Чтобы создать ресурс лицензии ESU SQL Server, используйте один из следующих методов:

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU
  3. Нажмите кнопку +Создать
  4. Завершение работы мастера создания

Обновление ресурса лицензии SQL Server ESU

Чтобы изменить свойства лицензии SQL Server ESu, например завершить подписку, используйте один из следующих методов:

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU
  3. Выберите в вопросе лицензию
  4. Выберите " Настроить" в разделе "Управление"
  5. Внесите изменения и нажмите кнопку "Применить"

Управление ресурсами в области лицензии P-core ESU

Вы можете управлять ресурсами в области определенной лицензии SQL Server ESU, выполнив следующие действия.

  1. Выбор Azure Arc
  2. В разделе "Службы данных" выберите лицензии SQL Server ESU
  3. Выберите в вопросе лицензию
  4. Выбор ресурсов в области управления

В этом представлении отображаются только подключенные компьютеры в области, в которых размещен экземпляр SQL Server вне службы, с версией, которая соответствует версии лицензии P-core ESU, которую вы управляете. Если определенные ресурсы не настроены для использования этой лицензии (примененный к физическому основному столбцу отображается значение NO), можно изменить следующее:

  1. Выберите определенные ресурсы в списке
  2. Выберите вкладку "Подписка на ESUs" , чтобы подписаться или отменить подписку из ESUs , чтобы отменить подписку.
  3. Прочитайте заявление об отказе и нажмите кнопку "Подтвердить"

Вывод списка серверов с поддержкой Arc в области лицензии SQL Server ESU

В этом запросе перечислены все серверы с поддержкой Azure Arc в области лицензии и соответствующие свойства каждого.

resources
        | where type =~ 'Microsoft.HybridCompute/machines'
        | where ('${scopeType}'!= 'Subscription' or subscriptionId == '${subscription}')
        | where ('${scopeType}' != 'ResourceGroup' or (resourceGroup == '${resourceGroup.toLowerCase()}' and subscriptionId == '${subscription}'))
        | extend status = tostring(properties.status)
        | where status =~ 'Connected'
        | join kind = leftouter
        (
        resources
        | where type =~ 'Microsoft.HybridCompute/machines/extensions'
        | where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
        | extend machineId = substring(id, 0, indexof(id, '/extensions'))
        | extend extensionId = id
        )
        on $left.id == $right.machineId
        | where isnotnull(extensionId)
        | project id, name, properties.status, resourceGroup, subscriptionId, Model = properties.detectedProperties.model, Manufacturer = properties.detectedProperties.manufacturer, kind, OSE = properties.osName, License_applied = properties1.settings.UseEsuPhysicalCoreLicense.IsApplied
        |order by name asc