Операции поддержки для поставщиков ресурсов SQL

Важно!

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

Поставщик ресурсов SQL выполняется на заблокированной виртуальной машине. Чтобы включить операции обслуживания, вам нужно обновить систему безопасности виртуальной машины. Чтобы сделать это с помощью принципа наименьших привилегий, используйте конечную точку POWERShell Just Enough Administration (JEA)DBAdapterMaintenance. Пакет установки поставщика ресурсов содержит скрипт для этого действия.

Установка исправлений и обновлений

Поставщик ресурсов SQL не обслуживается как часть Azure Stack Hub, так как это дополнительный компонент. Корпорация Майкрософт предоставляет обновления поставщика ресурсов SQL по мере необходимости.

Для SQL RP версии 1 при выпуске обновленного поставщика ресурсов SQL Server предоставляется скрипт для применения обновления. Этот сценарий создает виртуальную машину поставщика ресурсов, перенося в нее состояние старой виртуальной машины поставщика.

Для SQL RP версии 2 поставщики ресурсов обновляются с помощью той же функции обновления, которая используется для применения обновлений Azure Stack Hub.

Дополнительную информацию см. в статье Обновление поставщика ресурсов SQL.

Обновление виртуальной машины поставщика

SQL RP версии 1 выполняется на пользовательской виртуальной машине, необходимо применить необходимые исправления и обновления при их выпуске. Вы можете установить пакет клиентский компонент Центра обновления Windows во время установки или обновления поставщика ресурсов.

SQL RP версии 2 выполняется на управляемом сервере Windows, который скрыт. Вам не нужно исправлять или обновлять виртуальную машину поставщика ресурсов. Он будет обновляться автоматически при обновлении RP.

Обновление определений Защитника Windows

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Обновление определений Защитника Windows:

  1. Скачайте обновление определений Защитника Windows на странице обновлений механизма обнаружения угроз для программы "Защитник Windows".

    На странице обновления определений прокрутите список вниз до пункта Manually download the update (Скачать обновление вручную). Скачайте 64-разрядный файл "Windows Defender Antivirus for Windows 10 and Windows 8.1" (Антивирусная программа "Защитник Windows" для Windows 10 и Windows 8.1).

    Вы также можете использовать эту прямую ссылку, чтобы скачать и установить файл fpam-fe.exe.

  2. Создайте сеанс PowerShell для конечной точки обслуживания виртуальной машины для адаптера поставщика ресурсов SQL.

  3. Скопируйте файл обновления определений на виртуальную машину, используя сеанс конечной точки обслуживания.

  4. Во время сеанса обслуживания PowerShell выполните команду Update-DBAdapterWindowsDefenderDefinitions.

  5. После установки определений советуем удалить этот файл обновления определений с помощью команды Remove-ItemOnUserDrive.

Пример скрипта PowerShell для обновления определений

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

# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

Настройка расширения Диагностики Azure для поставщика ресурсов SQL

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Расширение Диагностики Azure по умолчанию устанавливается на виртуальную машину адаптера поставщика ресурсов SQL. Далее приведены инструкции по настройке расширения для сбора операционных журналов событий поставщика ресурсов SQL и журналов IIS с целью устранения неполадок и аудита.

  1. Войдите на портал администратора Azure Stack Hub.

  2. Выберите Виртуальные машины на панели слева, найдите виртуальную машину адаптера поставщика ресурсов SQL и выберите ее.

  3. В разделе Параметры диагностики на виртуальной машине откройте вкладку Журналы и выберите Настройка, чтобы настроить собираемые журналы событий. Go to diagnostics settings

  4. Добавьте Microsoft-AzureStack-DatabaseAdapter/Operational!* для сбора SQL журналов операционных событий поставщика ресурсов. Add event logs

  5. Чтобы включить сбор журналов IIS, установите флажки Журналы IIS и Журналы неудачных запросов. Add IIS logs

  6. Наконец, нажмите кнопку "Сохранить ", чтобы сохранить все параметры диагностики.

После настройки сбора журналов событий и журналов IIS для поставщика ресурсов SQL эти журналы можно найти в системной учетной записи хранения с именем sqladapterdiagaccount.

См. основные сведения о расширении Диагностики Azure.

Обновление учетных данных SQL

Вы несете ответственность за создание и обслуживание учетных записей системного администратора на серверах SQL. Поставщику ресурсов нужна учетная запись с этими привилегиями для управления базами данных для пользователей. При этом доступ к данным этих пользователей не требуется. Если требуется обновить пароли системного администратора на серверах SQL, можно использовать интерфейс администратора поставщика ресурсов, чтобы изменить сохраненный пароль. Эти пароли сохраняются в Key Vault в экземпляре Azure Stack Hub.

Чтобы изменить параметры, выберите BrowseADMINISTRATIVE> RESOURCES >SQL Hosting Servers>SQL Logins и выбрать имя пользователя. Сначала необходимо внести изменения в экземпляр SQL (и все реплики, если это необходимо).) В разделе Параметры выберите "Пароль".

Update the SQL admin password

Смена секретов

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

При использовании поставщиков ресурсов SQL и MySQL в интегрированных системах Azure Stack Hub оператор Azure Stack Hub отвечает за смену следующих секретов инфраструктуры поставщика ресурсов, чтобы обеспечить их актуальность:

  • внешний SSL-сертификат, предоставленный во время развертывания;
  • пароль учетной записи локального администратора виртуальной машины поставщика ресурсов, предоставленный во время развертывания;
  • пароль пользователя диагностики (dbadapterdiag) поставщика ресурсов.
  • (версия >= 1.1.47.0) Key Vault сертификат, созданный во время развертывания.

Примеры PowerShell для смены секретов

Одновременно изменяйте все секреты.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Измените пароль пользователя диагностики.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Измените пароль учетной записи локального администратора виртуальной машины.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Смена SSL-сертификата

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Смена сертификата Key Vault

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Параметры SecretRotationSQLProvider.ps1

Параметр Описание Комментарий
AzureEnvironment Среда Azure учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для развертываний Azure AD. Поддерживаемые имена среды: AzureCloud, AzureUSGovernment или, при использовании подписки Azure для Китая, AzureChinaCloud. Необязательно
AzCredential Учетные данные учетной записи администратора службы Azure Stack Hub. Сценарий завершится ошибкой, если учетная запись, используемая с AzCredential, требует многофакторной проверки подлинности (MFA). Обязательный
CloudAdminCredential Учетные данные учетной записи домена администратора облака Azure Stack Hub. Обязательный
PrivilegedEndpoint Привилегированная конечная точка для получения информации о метке Azure Stack (Get-AzureStackStampInformation). Обязательный
DiagnosticsUserPassword Пароль учетной записи для пользователя диагностики. Необязательно
VMLocalCredential Учетная запись локального администратора на виртуальной машине MySQLAdapter. Необязательно
DefaultSSLCertificatePassword Пароль SSL-сертификата по умолчанию (*.pfx). Необязательно
DependencyFilesLocalPath Локальный путь к файлам зависимостей. Необязательно
KeyVaultPfxPassword Пароль, используемый для создания сертификата Key Vault для адаптера базы данных. Необязательно

Эти инструкции применяются только к SQL RP версии 2, работающей в интегрированных системах Azure Stack Hub.

Примечание

В настоящее время смена секретов для поставщиков ресурсов с добавлением значений (RPs) поддерживается только с помощью PowerShell.

Как и инфраструктура Azure Stack Hub, поставщики дополнительных ресурсов используют как внутренние, так и внешние секреты. Как оператор, вы отвечаете за:

  • предоставление обновленных внешних секретов, таких как новый сертификат TLS, используемый для защиты конечных точек поставщика ресурсов;
  • Регулярное управление сменой секретов поставщика ресурсов.

При приближении срока действия секретов на портале администрирования создаются следующие оповещения. Смена секретов позволит устранить условия, активирующие следующие оповещения:

  • ожидается истечение срока действия внутреннего сертификата;
  • ожидается истечение срока действия внешнего сертификата.

Предварительные требования

При подготовке к процессу смены:

  1. Если вы еще этого не сделали, установите модуль PowerShell Az для Azure Stack Hub, прежде чем продолжать. Для смены секретов Azure Stack Hub требуется предварительная версия 2.0.2 или более поздняя. Дополнительные сведения см. в разделе Миграция с AzureRM на Azure PowerShell Az в Azure Stack Hub.

  2. Установка модулей Azs.Deployment.Admin 1.0.0: коллекция PowerShell | Azs.Deployment.Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Если срок действия внешнего сертификата приближается, просмотрите требования к сертификату инфраструктуры открытых ключей Azure Stack Hub (PKI) для получения или продления сертификата X509, включая сведения о требуемом формате PFX. Также ознакомьтесь с требованиями, указанными в разделе Необязательные сертификаты PaaS для вашего конкретного поставщика дополнительных ресурсов.

Подготовка нового сертификата TLS для смены внешних сертификатов

Примечание

Если истек срок действия только внутреннего сертификата, этот раздел можно пропустить.

Затем создайте или обновите свой TLS-сертификат для защиты конечных точек поставщика дополнительных ресурсов:

  1. Выполните действия, описанные в разделе Создание запросов на подпись сертификатов (CSR) для обновления сертификата для вашего поставщика ресурсов. Здесь вы используете средство проверки готовности Azure Stack Hub для создания CSR. Обязательно запустите правильный командлет для вашего поставщика ресурсов на шаге "Создание запросов сертификатов для других служб Azure Stack Hub". НапримерNew-AzsDbAdapterCertificateSigningRequest, используется для SQL и RP MySQL. По завершении вы отправите созданный объект . REQ-файл в центр сертификации (ЦС) для нового сертификата.

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

  3. Наконец, выполните действия, описанные в разделе Проверка сертификатов PKI Azure Stack Hub. Вы снова нужно использовать средство проверки готовности, чтобы выполнить проверочные тесты для вашего нового сертификата.

Смена внутреннего сертификата

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия, чтобы сменить внешние секреты поставщика ресурсов:

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. Подключение в Azure Stack Hub с помощью сценария входа в PowerShell для PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Определите идентификатор продукта поставщика ресурсов. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;

    Например, для развертывания SQL RP может быть идентификатор "microsoft.sqlrp"продукта.

  3. Выполните командлет, Invoke-AzsProductRotateSecretsAction чтобы сменить внутренний сертификат:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Смена внешнего сертификата

Сначала необходимо заметить значения для следующих параметров. | Заполнитель | Описание | Пример значения | | ----------- | ----------- | --------------| | <product-id> | Идентификатор продукта последнего развертывания поставщика ресурсов. | microsoft.sqlrp | | <installed-version> | Версия последнего развертывания поставщика ресурсов. | 2.0.0.2 | | <package-id> | Идентификатор пакета создается путем объединения идентификатора продукта и установленной версии. | microsoft.sqlrp.2.0.0.2 | | <cert-secret-name> | Имя, под которым хранится секрет сертификата. | SSLCert | | <cert-pfx-file-path> | Путь к PFX-файлу сертификата. | C:\dir\dbadapter-cert-file.pfx | | <pfx-password> | Пароль, назначенный сертификату. PFX-файл. | strong@CertSecret6 |

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия.

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. Подключение в Azure Stack Hub с помощью сценария входа в PowerShell для PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Получите значение параметра product-id. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;
    • "properties"."deployment"."version" – содержит номер развернутой версии.

Например, развертывание SQL RP может иметь идентификатор "microsoft.sqlrp"продукта и версию"2.0.0.2".

  1. Создайте идентификатор пакета поставщика ресурсов, объединив идентификатор продукта поставщика ресурсов и версию. Например, при использовании значений, производных на предыдущем шаге, SQL идентификатор пакета RP.microsoft.sqlrp.2.0.0.2

  2. Используя идентификатор пакета, полученный на предыдущем шаге, выполните Get-AzsProductSecret -PackageId, чтобы получить список типов секретов, используемых поставщиком ресурсов. В возвращенной коллекции value найдите элемент, содержащий значение "Certificate" для свойства "properties"."secretKind". Этот элемент содержит свойства для секрета сертификата RP. Запишите имя, присвоенное этому секрету сертификата, которое определяется последним сегментом свойства "name" сразу над "properties".

Например, коллекция секретов, возвращенная для SQL RP, содержит "Certificate" секрет с именем SSLCert.

  1. Используйте командлет Set-AzsProductSecret для импорта нового сертификата в Key Vault, который будет использоваться в процессе смены. Замените значения заполнителей переменной соответствующим образом перед запуском скрипта.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Наконец, используйте Invoke-AzsProductRotateSecretsAction командлет для смены секретов:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Мониторинг хода смены секретов

Вы можете отслеживать ход смены секретов либо в консоли PowerShell, либо на портале администратора, выбрав поставщика ресурсов в службе Marketplace:

Screen of secret rotation in progress.

Примечание

Время смены секретов может стоить более 10 минут. После этого состояние поставщика ресурсов изменится на "Установлено".

Сбор данных журналов диагностики

Azure Stack Hub имеет несколько способов сбора, сохранения и отправки журналов диагностики в служба поддержки Майкрософт. Начиная с версии 1.1.93 поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Дополнительные сведения см. в разделе "Сбор журналов диагностики".

Начиная с версии 1.1.93 поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Если вы используете более раннюю версию, рекомендуется обновить поставщик ресурсов SQL до последней версии.

Чтобы собрать данные журналов с заблокированной виртуальной машины, используйте конечную точку DBAdapterDiagnostics PowerShell Just Enough Administration (JEA). Она предоставляет следующие команды:

  • Get-AzsDBAdapterLog. Эта команда создает пакет ZIP с журналами диагностики поставщика ресурсов и сохраняет этот файл на пользовательском диске сеанса. Эту команду можно выполнить без параметров, чтобы собрать данные журналов за последние четыре часа.
  • Remove-AzsDBAdapterLog. Эта команда удаляет имеющиеся пакеты журналов на виртуальной машине поставщика ресурсов.

Требования и процесс работы конечной точки

При установке или обновлении поставщика ресурсов создается учетная запись пользователя dbadapterdiag. Она используется для сбора журналов диагностики.

Примечание

Пароль учетной записи dbadapterdiag такой же, как и у локального администратора на виртуальной машине, созданной при развертывании или обновлении поставщика.

Чтобы использовать команды DBAdapterDiagnostics, нужно создать удаленный сеанс PowerShell для виртуальной машины поставщика ресурсов и выполнить команду Get-AzsDBAdapterLog.

Вы можете задать период для сбора журналов с помощью параметров FromDate и ToDate. Если один или оба этих параметра не заданы, используются следующие значения по умолчанию:

  • FromDate — за четыре часа до текущего момента.
  • ToDate — текущий момент времени.

Пример скрипта PowerShell для сбора журналов

Приведенный ниже сценарий показывает, как собирать данные журналов диагностики на виртуальной машине поставщика ресурсов.

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'

$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics `
        -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Известные ограничения поставщика ресурсов SQL Server версии 1

Ограничение:
Если произошел сбой сценария развертывания, обновления или смены секретов, некоторые журналы не могут собираться стандартным механизмом сбора журналов.

Обходной путь.
Помимо использования стандартного механизма сбора журналов, перейдите в папку Logs в извлеченной папке, где находится скрипт, чтобы найти дополнительные журналы.

Дальнейшие действия

Добавление серверов размещения SQL Server