Mettre à jour le fournisseur de ressources SQL

Importante

Les fournisseurs de ressources SQL et MySQL pour Azure Stack Hub sont déconseillés et ne sont pas disponibles pour l'intégration de nouveaux clients. Au lieu de cela, déployez SQL ou MySQL directement sur des machines virtuelles et gérez-les à l’aide d’outils et pratiques standard. Les déploiements existants des fournisseurs de ressources continuent d’être pris en charge, mais aucune nouvelle fonctionnalité de développement ou d’intégration n’est planifiée.

Importante

Avant de mettre à jour le fournisseur de ressources, passez en revue les notes de publication pour en savoir plus sur les nouvelles fonctionnalités, les correctifs et les problèmes connus susceptibles d’affecter votre déploiement. Les notes de publication spécifient également la version minimale d’Azure Stack Hub requise pour le fournisseur de ressources.

Importante

La mise à jour du fournisseur de ressources ne met pas à jour le SQL Server d'hébergement.

Un nouveau fournisseur de ressources SQL peut être publié lorsque Azure Stack Hub est mis à jour vers une nouvelle build. Bien que le fournisseur de ressources existant continue de fonctionner, effectuez une mise à jour vers la dernière build dès que possible.

Version d’Azure Stack Hub prise en charge Version SQL RP Windows Server sur lequel le service rp s’exécute
2206, 2301, 2306, 2311 SQL RP version 2.0.13.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
2108, 2206 SQL RP version 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0

Mettre à jour le fournisseur de ressources SQL Server V2

Pour rechercher les mises à jour de SQL RP V2, consultez Comment appliquer des mises à jour au fournisseur de ressources.

Pour effectuer une mise à jour de SQL RP V1 vers SQL RP V2, commencez par effectuer une mise à jour vers SQL RP V1.1.93.x. Ensuite, appliquez le processus de mise à niveau de version majeure pour effectuer une mise à niveau de SQL RP V1 vers SQL RP V2.

Mise à jour de SQL RP V1.1.93.x vers SQL RP V2.0.6.0

Conditions préalables

  1. Veillez à mettre à jour SQL RP V1 vers la dernière version 1.1.93.x. Sous Abonnement fournisseur par défaut, recherchez le groupe de ressources RP (format de nommage : system.<region>.sqladapter). Confirmez la balise de version et le nom de la machine virtuelle SQL RP dans le groupe de ressources. Si vous êtes toujours sur une ancienne version et que vous devez effectuer une mise à jour vers la version 1.1.93.x, ouvrez un cas de support pour obtenir de l’aide.

  2. Ouvrez une demande de support pour incident pour obtenir le package MajorVersionUpgrade, puis ajoutez votre abonnement à la liste d’autorisation de la marketplace ASH pour la version v2 à venir.

  3. Téléchargez Microsoft AzureStack Add-On RP Windows Server 1.2009.0 sur la Place de marché.

  4. Vérifiez que les conditions préalables à l’intégration du centre de données sont remplies.

    Prérequis Référence
    Le transfert DNS conditionnel est défini correctement. Intégration du centre de données Azure Stack Hub - DNS
    Les ports entrants pour les fournisseurs de ressources sont ouverts. Intégration du centre de données Azure Stack Hub - Ports et protocoles entrants
    Le sujet du certificat PKI et le SAN sont correctement définis. Conditions préalables obligatoires pour le déploiement d’Azure Stack Hub à clé publique
    Prérequis du certificat PaaS de déploiement Azure Stack Hub
  5. Pour un environnement déconnecté, installez les modules PowerShell requis, comme le processus de mise à jour utilisé pour déployer le fournisseur de ressources.

Déclencher MajorVersionUpgrade

Exécutez le script suivant à partir d’une console PowerShell avec élévation de privilèges pour effectuer une mise à niveau de version majeure.

Remarque

Assurez-vous que l’ordinateur client sur lequel vous exécutez le script est de version du système d’exploitation antérieure à Windows 10 ou Windows Server 2016 et que l’ordinateur client dispose de l’architecture du système d’exploitation X64.

Importante

Utilisez et Clear-AzureRmContext -Scope Process effacez Clear-AzureRmContext -Scope CurrentUser le cache avant d’exécuter le script de déploiement ou de mise à jour.

# 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

Remarque

L’adresse DNS et l’adresse IP correspondante de SQL RP V2 sont différentes. Pour obtenir la nouvelle adresse IP publique, vous pouvez demander un compte de secours DRP au support technique et rechercher la ressource SQLRPVM1130-PublicIP. Vous pouvez également exécuter à nslookup sqlrp.dbadapter.<fqdn> partir d’une machine cliente qui a déjà passé le test de point de terminaison pour connaître l’adresse IP publique.

Valider la réussite de la mise à niveau

  1. Le script MajorVersionUpgrade s’exécute sans erreur.
  2. Vérifiez le fournisseur de ressources dans la Place de marché et vérifiez que SQL RP 2.0 a été installé correctement.
  3. L’ancien système.<groupe de ressources et système location.sqladapter>.<Le groupe de ressources location.dbadapter.dns> dans l’abonnement fournisseur par défaut n’est pas automatiquement supprimé par le script.

Conservez le compte de stockage et le Key Vault dans le groupe de ressources sqladapter pendant un certain temps. Si, après la mise à niveau, un utilisateur client observe des métadonnées de base de données ou de connexion incohérentes, il est possible de prendre en charge la restauration des métadonnées à partir du groupe de ressources.

Après avoir vérifié que la zone DNS dans le groupe de ressources dbadapter.dns est vide sans enregistrement DNS, il est sûr de supprimer le groupe de ressources dbadapter.dns.

Importante

N’utilisez pas le script de déploiement V1 pour désinstaller la version V1. Une fois la mise à niveau terminée et la confirmation que la mise à niveau a réussi, vous pouvez supprimer manuellement le groupe de ressources de l’abonnement fournisseur.

Mettre à jour la version antérieure de SQL RP V1 vers SQL RP V1.1.93.x

La mise à jour V1 du fournisseur de ressources SQL est cumulative. Vous pouvez directement effectuer une mise à jour vers la version 1.1.93.x.

Pour mettre à jour le fournisseur de ressources vers la version 1.1.93.x, utilisez le UpdateSQLProvider.ps1 script. Vous devez utiliser votre compte de service avec des droits d’administrateur local et être propriétaire de l’abonnement. Ce script de mise à jour est inclus dans le téléchargement du fournisseur de ressources.

Le processus de mise à jour est similaire au processus utilisé pour déployer le fournisseur de ressources. Le script de mise à jour utilise les mêmes arguments que le script DeploySqlProvider.ps1, et vous devez fournir des informations de certificat.

Mettre à jour les processus de script

Le UpdateSQLProvider.ps1 script crée une machine virtuelle avec la dernière image du système d’exploitation, déploie le code du fournisseur de ressources le plus récent et migre les paramètres de l’ancien fournisseur de ressources vers le nouveau fournisseur de ressources.

Remarque

Nous vous recommandons de télécharger l’image Microsoft AzureStack Add-on RP Windows Server 1.2009.0 à partir de la Gestion de la Place de marché. Si vous devez installer une mise à jour, vous pouvez placer un package MSU unique dans le chemin de dépendance local. Le script échoue s’il existe plusieurs fichiers MSU dans cet emplacement.

Une fois que le UpdateSQLProvider.ps1 script a créé une machine virtuelle, le script migre les paramètres suivants à partir de l’ancienne machine virtuelle du fournisseur de ressources :

  • informations sur la base de données
  • informations sur le serveur d’hébergement
  • enregistrement DNS requis

Importante

Utilisez et Clear-AzureRmContext -Scope Process effacez Clear-AzureRmContext -Scope CurrentUser le cache avant d’exécuter le script de déploiement ou de mise à jour.

Mettre à jour les paramètres de script

Spécifiez les paramètres suivants à partir de la ligne de commande lorsque vous exécutez le UpdateSQLProvider.ps1 script PowerShell. Si vous ne spécifiez pas de paramètres ou si une validation de paramètre échoue, le script vous invite à fournir les paramètres requis.

Nom du paramètre Descriptif Commentaire ou valeur par défaut
CloudAdminCredential Informations d’identification de l’administrateur cloud, nécessaires pour accéder au point de terminaison privilégié. Obligatoire
AzCredential Informations d’identification pour le compte d’administrateur du service Azure Stack Hub. Utilisez les mêmes informations d’identification que celles que vous avez utilisées pour déployer Azure Stack Hub. Le script échoue si le compte que vous utilisez avec AzCredential nécessite une authentification multifacteur (MFA). Obligatoire
VMLocalCredential Informations d’identification pour le compte d’administrateur local de la machine virtuelle du fournisseur de ressources SQL. Obligatoire
PrivilegedEndpoint Adresse IP ou nom DNS du point de terminaison privilégié. Obligatoire
AzureEnvironment Environnement Azure du compte d’administrateur de service que vous avez utilisé pour déployer Azure Stack Hub. Obligatoire uniquement pour les déploiements Microsoft Entra. Les noms d’environnement pris en charge sont AzureCloud, AzureUSGovernment ou si vous utilisez un ID Microsoft Entra chine, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Vous devez également placer votre fichier .pfx de certificat dans ce répertoire. Facultatif pour un seul nœud, mais obligatoire pour plusieurs nœuds
DefaultSSLCertificatePassword Mot de passe du certificat .pfx. Obligatoire
MaxRetryCount Nombre de fois où vous souhaitez réessayer chaque opération en cas de défaillance. 2
RetryDuration Intervalle de délai d’expiration entre les nouvelles tentatives, en secondes. 01:20:21
Désinstaller Supprime le fournisseur de ressources et toutes les ressources associées. Non
DebugMode Empêche le nettoyage automatique en cas d’échec. Non

Exemple de mise à jour du script PowerShell

Pour mettre à jour le fournisseur de ressources SQL vers la version 1.1.33.0 ou antérieure, installez des versions spécifiques des modules et Azure Stack Hub des AzureRm.BootStrapper modules dans les modules PowerShell.

Si vous mettez à jour le fournisseur de ressources SQL vers la version 1.1.47.0 ou ultérieure, vous pouvez ignorer cette étape. Le script de déploiement télécharge et installe automatiquement les modules PowerShell nécessaires pour vous permettre de chemin d’accès C:\Program Files\SqlMySqlPsh.

Remarque

Si le dossier C:\Program Files\SqlMySqlPsh existe déjà avec les modules PowerShell téléchargés, nettoyez ce dossier avant d’exécuter le script de mise à jour. Cette étape garantit que la version appropriée des modules PowerShell est téléchargée et utilisée.

# 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

Remarque

Dans un scénario déconnecté, vous devez télécharger les modules PowerShell requis et inscrire le référentiel manuellement en tant que prérequis. Pour plus d’informations, consultez Déployer un fournisseur de ressources SQL.

L’exemple suivant montre comment utiliser le UpdateSQLProvider.ps1 script. Exécutez le script à partir d’une console PowerShell avec élévation de privilèges. Veillez à modifier les informations de variable et les mots de passe en fonction des besoins :

# 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

Une fois le script de mise à jour du fournisseur de ressources terminé, fermez la session PowerShell actuelle.

Étapes suivantes

Gérer le fournisseur de ressources SQL