Обновление поставщика ресурсов SQL
Важный
Начиная с версии Azure Stack Hub 2108, поставщики ресурсов SQL и MySQL доступны для подписок, которым разрешен доступ. Если вы хотите начать использовать эту функцию или вам нужно выполнить обновление с предыдущей версии, откройте заявку в службу поддержки, и наши инженеры службы поддержки помогут вам выполнить развертывание или обновление.
Важный
Перед обновлением поставщика ресурсов ознакомьтесь с примечаниями к выпуску, чтобы узнать о новой функциональности, исправлениях и известных проблемах, которые могут повлиять на развертывание. Примечания о выпуске также указывают минимальную версию Azure Stack Hub, необходимую для поставщика ресурсов.
Важный
Обновление поставщика ресурсов НЕ обновит размещённый SQL Server.
Новый поставщик ресурсов SQL может быть выпущен при обновлении Azure Stack Hub до новой сборки. Хотя существующий поставщик ресурсов продолжает работать, рекомендуется обновить до последней сборки как можно скорее.
Поддерживаемая версия Azure Stack Hub | Версия SQL RP | Windows Server, на котором запущена служба RP |
---|---|---|
2206, 2301, 2306, 2311 | 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 до версии 2, убедитесь, что вы сначала обновили SQL RP до версии 1.1.93.x, а затем примените процедуру обновления основной версии для обновления с SQL RP версии 1 до версии 2.
Обновление с SQL RP версии 1.1.93.x до SQL RP версии 2.0.6.0
Необходимые условия
Убедитесь, что вы обновили SQL RP версии 1 до последней версии 1.1.93.x. В разделе "Подписка поставщика по умолчанию" найдите группу ресурсов RP (формат именования: system.
<region
>.sqladapter). Подтвердите тег версии и имя виртуальной машины SQL RP в группе ресурсов. Если вы все еще используете старую версию и хотите обновить до версии 1.1.93.x, откройте обращение в службу поддержки.открыть вариант поддержки, чтобы получить пакет MajorVersionUpgrade и добавить подписку в список разрешений ASH Marketplace для будущей версии 2.
Скачайте Microsoft AzureStack Add-On RP Windows Server 1.2009.0 в Marketplace.
Убедитесь, что выполнены предварительные требования для интеграции центра обработки данных.
Предпосылка | Ссылка |
---|---|
Условное перенаправление DNS правильно задано. | интеграция центра обработки данных Azure Stack Hub — DNS |
Открыты входящие порты для поставщиков ресурсов. | Интеграция центра обработки данных Azure Stack Hub — входящие порты и протоколы |
Субъект сертификата PKI и SAN заданы правильно. |
обязательные PKI требования для развертывания Azure Stack Hub предварительные требования к развертыванию сертификата PaaS в Azure Stack Hub |
- (для отключенной среды) Установите необходимые модули 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-адрес, вы можете связаться со службой поддержки, чтобы запросить выполнение аварийной процедуры DRP и найти ресурс SQLRPVM1130-PublicIP. Вы также можете выполнить команду "nslookup sqlrp.dbadapter.<полное доменное имя>" на клиентском компьютере, который уже прошел тест конечной точки, чтобы узнать внешний IP-адрес.
Проверка успешного обновления
- Скрипт MajorVersionUpgrade выполняется без ошибок.
- Проверьте поставщика ресурсов в маркетплейсе и убедитесь, что SQL RP 2.0 успешно установлен.
- Старая система . Расположение<>.sqladapter, группе ресурсов и системе . Расположение<>.dbadapter.dns, и группе ресурсов в подписке провайдера по умолчанию не будут автоматически удалены скриптом.
- Мы рекомендуем временно оставить учетную запись хранения и Key Vault в группе ресурсов sqladapter. Если после обновления какой-либо пользователь арендатора замечает несоответствия в базе данных или метаданных входа, можно обратиться за поддержкой для восстановления метаданных из группы ресурсов.
- Убедившись, что зона DNS в группе ресурсов dbadapter.dns пуста без записи DNS, безопасно удалить группу ресурсов dbadapter.dns.
- [ВАЖНО] Не используйте скрипт развертывания версии 1 для удаления версии 1. После завершения обновления и подтверждения успешного обновления можно вручную удалить группу ресурсов из подписки поставщика.
Обновление с более ранней версии SQL RP V1 до SQL RP V1.1.93.x.
Обновление поставщика ресурсов SQL версии 1 является накопительным. Вы можете напрямую обновить версию 1.1.93.x.
Чтобы обновить поставщик ресурсов до версии 1.1.93.x, используйте скрипт UpdateSQLProvider.ps1. Используйте учетную запись службы с правами локального администратора и является владельцем подписки. Этот скрипт обновления включён в состав загрузки поставщика ресурсов.
Процесс обновления аналогичен процессу, используемому для развертывания поставщика ресурсов . Скрипт обновления использует те же аргументы, что и скрипт DeploySqlProvider.ps1, и вам потребуется предоставить сведения о сертификате.
Обновление процессов скрипта
Скрипт UpdateSQLProvider.ps1 создает новую виртуальную машину с последним образом ОС, развертывает последний код поставщика ресурсов и переносит параметры из старого поставщика ресурсов в новый поставщик ресурсов.
Заметка
Рекомендуется скачать образ надстройки Microsoft AzureStack RP Windows Server 1.2009.0 из 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. | обязательный |
ПривилегированнаяТочка | IP-адрес или DNS-имя привилегированной конечной точки. | обязательный |
AzureEnvironment | Среда Azure для учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для развертываний Microsoft Entra. Поддерживаемые имена сред — это AzureCloud, azureUSGovernmentили при использовании идентификатора Microsoft Entra в Китае AzureChinaCloud. | AzureCloud |
DependencyFilesLocalPath | Кроме того, необходимо поместить PFX-файл сертификата в этот каталог. | Необязательно для одного узла, но обязательно для нескольких узлов |
DefaultSSLCertificatePassword | Пароль для PFX-сертификата. | обязательный |
MaxRetryCount | Количество повторных попыток каждой операции при сбое. | 2 |
ВремяПовторнойПопытки | Интервал времени ожидания между повторными попытками в секундах. | 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.