Обновление поставщика ресурсов SQL

Важно!

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

Важно!

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

Важно!

Обновление поставщика ресурсов НЕ приведет к обновлению SQL Server размещения.

При обновлении сборки Azure Stack Hub может быть выпущен новый поставщик ресурсов SQL. Хотя существующий поставщик ресурсов может продолжать работать, мы рекомендуем как можно скорее обновить его до последней сборки.

Поддерживаемая версия Azure Stack Hub Версия SQL RP Windows Server, на котором запущена служба RP
2206, 2301, 2306 SQL RP версии 2.0.13.x Microsoft AzureStack RP Windows Server 1.2009.0
2108, 2206 SQL RP версии 2.0.6.x Microsoft AzureStack RP Windows Server 1.2009.0

Обновление поставщика ресурсов SQL Server версии 2

Если вы уже развернули SQL RP версии 2 и хотите проверка обновления, проверка Как применить обновления к поставщику ресурсов.

Если вы хотите выполнить обновление с SQL RP версии 1 до SQL RP версии 2, убедитесь, что вы сначала обновили sql RP версии 1.1.93.x, а затем примените процесс обновления основной версии для обновления с SQL RP версии 1 до SQL RP V2.

Обновление с SQL RP версии 1.1.93.x до SQL RP версии 2.0.6.0

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

  1. Убедитесь, что вы обновили SQL RP версии 1 до последней версии 1.1.93.x. В разделе Подписка поставщика по умолчанию найдите группу ресурсов RP (формат именования: system.<region>. sqladapter). Подтвердите тег версии и имя виртуальной машины sql RP в группе ресурсов. Если вы по-прежнему используете старую версию и вам нужно выполнить обновление до 1.1.93.x, обратитесь в службу поддержки.

  2. Откройте обращение в службу поддержки , чтобы получить пакет MajorVersionUpgrade, и добавьте свою подписку в список разрешений ASH Marketplace для будущей версии версии 2.

  3. Скачайте Microsoft AzureStack Add-On RP Windows Server 1.2009.0 в Marketplace.

  4. Убедитесь, что выполнены предварительные требования к интеграции центра обработки данных.

Предварительное требование Ссылка
Условное перенаправление DNS настроено правильно. Интеграция DNS центра обработки данных Azure Stack Hub
Открыты входящие порты для поставщиков ресурсов. Порты и протоколы (входящие)
Субъект сертификата PKI и SAN настроены правильно. Обязательные сертификаты
Необязательные сертификаты PaaS
  1. (для отключенной среды) Установите необходимые модули PowerShell аналогично процессу обновления, используемому для развертывания поставщика ресурсов.

Триггер MajorVersionUpgrade

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

Примечание

Убедитесь, что клиентский компьютер, на котором выполняется скрипт, имеет версию ОС не старше Windows 10 или Windows Server 2016, а клиентский компьютер имеет архитектуру операционной системы X64.

Важно!

Мы настоятельно рекомендуем использовать Clear-AzureRmContext -Scope CurrentUser и Clear-AzureRmContext -Scope Process , чтобы очистить кэш перед запуском сценария развертывания или обновления.

# Check Operating System version
$osVersion = [environment]::OSVersion.Version
if ($osVersion.Build -lt 10240)
{
    Write-Host "OS version is too old: $osVersion."
    return
}

$osArch = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
if ($osArch -ne "64-bit")
{
    Write-Host "OS Architecture is not 64 bit."
    return
}

# Check LongPathsEnabled registry key
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem'
$longPathsEnabled = 'LongPathsEnabled'
$property = Get-ItemProperty -Path $regPath -Name $longPathsEnabled -ErrorAction Stop
if ($property.LongPathsEnabled -eq 0)
{
    Write-Host "Detect LongPathsEnabled equals to 0, prepare to set the property."
    Set-ItemProperty -Path $regPath -Name $longPathsEnabled -Value 1 -ErrorAction Stop
    Write-Host "Set the long paths property, please restart the PowerShell."
    return
} 

# Use the NetBIOS name for the Azure Stack Hub domain. 
$domain = "YouDomain" 

# For integrated systems, use the IP address of one of the ERCS VMs
$privilegedEndpoint = "YouDomain-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "AzureCloud"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\extracted-folder\MajorVersionUpgrade-SQLRP'

# The service admin account can be Azure Active Directory or Active Directory Federation Services.
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Add the cloudadmin credential that's required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'xxxxxxx' -AsPlainText -Force

# Provide the pfx file path
$PfxFilePath = "C:\tools\sqlcert\SSL.pfx"

# PowerShell modules used by the RP MajorVersionUpgrade are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 

. $tempDir\MajorVersionUpgradeSQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath

Примечание

DNS-адрес и соответствующий IP-адрес sql RP версии 2 различаются. Чтобы получить новый общедоступный IP-адрес, можно обратиться в службу поддержки, чтобы требовать аварийного восстановления и найти SQLRPVM1130-PublicIP ресурс. Можно также запустить nslookup sqlrp.dbadapter.<fqdn>" от клиентского компьютера, который уже прошел тест конечной точки, чтобы узнать общедоступный IP-адрес.

Проверка успешного обновления

  1. Скрипт MajorVersionUpgrade выполняется без ошибок.
  2. Проверьте поставщик ресурсов в Marketplace и убедитесь, что RP SQL 2.0 успешно установлен.
  3. Старая система.<location.sqladapter>, группа ресурсов и система.<Группа ресурсов location.dbadapter.dns> в подписке поставщика по умолчанию не будет автоматически удалена скриптом.
  • Мы рекомендуем хранить учетную запись хранения и Key Vault в группе ресурсов sqladapter в течение некоторого времени. Если после обновления любой пользователь клиента наблюдает несогласованные метаданные базы данных или имени входа, можно получить поддержку для восстановления метаданных из группы ресурсов.
  • Убедившись, что зона DNS в группе ресурсов dbadapter.dns пуста без записи DNS, можно безопасно удалить группу ресурсов dbadapter.dns.
  • [ВАЖНО] Не используйте сценарий развертывания версии 1 для удаления версии 1. После завершения обновления и подтверждения успешности обновления можно вручную удалить группу ресурсов из подписки поставщика.

Обновление с более ранней версии SQL RP версии 1 до SQL RP версии 1.1.93.x

Обновление поставщика ресурсов SQL версии 1 является накопительным. Вы можете напрямую обновить до версии 1.1.93.x.

Чтобы обновить поставщик ресурсов до версии 1.1.93.x, используйте скрипт UpdateSQLProvider.ps1 . Используйте учетную запись службы с правами локального администратора и владельца подписки. Этот скрипт обновления включен в скачивание поставщика ресурсов.

Процесс обновления осуществляется так же, как и развертывание поставщика ресурсов. Скрипт обновления использует те же аргументы, что и скрипт DeploySqlProvider.ps1, и вам потребуется предоставить сведения о сертификате.

Процессы скрипта обновления

Скрипт UpdateSQLProvider.ps1 создает виртуальную машину с последней версией образа ОС, развертывает последний код поставщика ресурсов и переносит параметры из старого поставщика ресурсов в новый поставщик ресурсов.

Примечание

Рекомендуется скачать образ windows Server 1.2009.0 надстройки Microsoft AzureStack из Marketplace Management. Если необходимо установить обновление, один MSU-пакет можно поместить в локальный каталог зависимого элемента. Если поместить несколько MSU-файлов в этом расположении, выполнение скрипта завершится ошибкой.

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

  • сведения о базе данных;
  • сведения о сервере размещения;
  • необходимые записи DNS.

Важно!

Мы настоятельно рекомендуем использовать Clear-AzureRmContext -Scope CurrentUser и Clear-AzureRmContext -Scope Process , чтобы очистить кэш перед запуском сценария развертывания или обновления.

Обновление параметров сценария

Следующие параметры можно указать в командной строке при выполнении сценария PowerShell UpdateSQLProvider.ps1. Если вы не зададите нужные параметры или их значения не пройдут проверку, вам будет предложено указать требуемые параметры.

Имя параметра Описание Комментарий или значение по умолчанию
CloudAdminCredential Учетные данные администратора облака, необходимые для доступа к привилегированной конечной точке. Обязательно
AzCredential Учетные данные администратора службы Azure Stack Hub. Используйте те же учетные данные, которые вы указали при развертывании Azure Stack Hub. Сценарий завершится ошибкой, если для учетной записи, используемой с AzCredential, требуется многофакторная проверка подлинности (MFA). Обязательно
VMLocalCredential Учетные данные для локальной учетной записи администратора виртуальной машины поставщика ресурсов SQL. Обязательно
PrivilegedEndpoint IP-адрес или DNS-имя привилегированной конечной точки. Обязательно
AzureEnvironment Среда Azure учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для Microsoft Entra развертываний. Поддерживаемые имена сред: AzureCloud, AzureUSGovernment или, если используется идентификатор Microsoft Entra Для Китая, AzureChinaCloud. AzureCloud;
DependencyFilesLocalPath В этот каталог также нужно поместить PFX-файл сертификата. Необязательно для одного узла, но обязательно для нескольких узлов.
DefaultSSLCertificatePassword Пароль для PFX-файла сертификата. Обязательно
MaxRetryCount Число повторов каждой операции в случае сбоя. 2
RetryDuration Время ожидания между повторными попытками в секундах. 120
Удаление Удаляет поставщик ресурсов и все связанные с ним ресурсы. нет
DebugMode Отключает автоматическую очистку в случае сбоя. нет

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

Если вы обновляете версию поставщика ресурсов SQL до версии 1.1.33.0 или более ранних версий, необходимо установить определенные версии модулей AzureRm.BootStrapper и Azure Stack Hub в PowerShell.

Если вы обновляете поставщик ресурсов SQL до версии 1.1.47.0 или более поздней, этот шаг можно пропустить. Сценарий развертывания автоматически скачает и установит необходимые модули PowerShell для пути C:\Program Files\SqlMySqlPsh.

Примечание

Если папка C:\Program Files\SqlMySqlPsh уже существует с загруженным модулем PowerShell, рекомендуется очистить эту папку перед запуском скрипта обновления. Это необходимо для того, чтобы убедиться, что была загружена и использована правильная версия модуля PowerShell.

# Run the following scripts when updating to version 1.1.33.0 only.
# Install the AzureRM.Bootstrapper module, set the profile, and install the AzureStack module.
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell.
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

Примечание

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

Ниже приведен пример сценария UpdateSQLProvider.ps1, который можно запустить из консоли PowerShell с повышенными привилегиями. Не забудьте изменить данные переменной и пароли, если это требуется.

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but this might have been changed at installation.
$domain = "AzureStack"

# For integrated systems, use the IP address of one of the ERCS VMs.
$privilegedEndpoint = "AzS-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\TEMP\SQLRP'

# The service admin account (this can be Azure AD or AD FS).
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Set the credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("sqlrpadmin", $vmLocalAdminPass)

# Add the cloudadmin credential required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath

# Change directory to the folder where you extracted the installation files.
# Then adjust the endpoints.
. $tempDir\UpdateSQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert

После завершения скрипта обновления поставщика ресурсов закройте текущий сеанс PowerShell.

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

Обслуживание поставщика ресурсов SQL