Mettre à jour le fournisseur de ressources SQL

Important

À partir de la build Azure Stack Hub 2108, les fournisseurs de ressources SQL et MySQL sont proposés aux abonnements auxquels l’accès a été accordé. Si vous souhaitez commencer à utiliser cette fonctionnalité ou si vous devez effectuer une mise à niveau à partir d’une version précédente, ouvrez une demande de support afin que nos ingénieurs du support technique vous guident tout au long du processus de déploiement ou de mise à niveau.

Important

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 qui pourraient affecter votre déploiement. Les notes de publication spécifient également la version minimale d'Azure Stack Hub requise par le fournisseur de ressources.

Important

La mise à jour du fournisseur de ressources NE met PAS à jour le serveur SQL Server d’hébergement.

Un nouveau fournisseur de ressources SQL peut être publié lorsque le build Azure Stack Hub est mis à jour. Même si le fournisseur de ressources existant continue de fonctionner, nous vous recommandons d’effectuer une mise à jour dès que possible vers le build le plus récent.

Versions d’Azure Stack Hub prises 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 Fournisseur de ressources SQL version 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0

Mettre à jour le fournisseur de ressources SQL Server V2

Si vous avez déjà déployé SQL RP V2 et que vous souhaitez rechercher des mises à jour, consultez Comment appliquer des mises à jour au fournisseur de ressources.

Si vous souhaitez effectuer une mise à jour de SQL RP V1 vers SQL RP V2, vérifiez que vous avez d’abord mis à jour vers SQL RP V1.1.93.x, puis appliquez le processus de mise à niveau de la version principale pour effectuer la 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

Prérequis

  1. Assurez-vous d’avoir mis à jour SQL RP V1 vers la dernière version de 1.1.93.x. Sous Abonnement fournisseur par défaut, recherchez le groupe de ressources RP (format de nommage : system.<region>.sqladapter). Vérifiez l’étiquette de version et le nom de machine virtuelle SQL RP dans le groupe de ressources. Si vous utilisez toujours 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 obtenir le package MajorVersionUpgrade, puis ajoutez votre abonnement à la liste d’autorisation de la marketplace ASH pour la version v2 future.

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

  4. Vérifiez que les prérequis d’intégration du centre de données sont remplis.

Configuration requise Informations de référence
La redirection DNS conditionnelle est correctement définie. Intégration au centre de données Azure Stack Hub - DNS
Les ports d’entrée pour les fournisseurs de ressources sont ouverts. Intégration au centre de données Azure Stack Hub - Ports et protocoles entrants
Les objets du certificat PKI et SAN sont correctement définis. Prérequis PKI obligatoires pour le déploiement d'Azure Stack Hub
Prérequis de certificat PaaS pour le déploiement d'Azure Stack Hub
  1. (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 vers la version principale.

Notes

Vérifiez que le système d’exploitation de l’ordinateur client sur lequel vous exécutez le script n’est pas antérieur à Windows 10 ou Windows Server 2016, et que l’ordinateur client dispose d’une architecture X64.

Important

Nous vous recommandons fortement d’utiliser Clear-AzureRmContext -Scope CurrentUser et Clear-AzureRmContext -Scope Process pour effacer 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

Notes

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’un ordinateur client qui a déjà réussi le test de point de terminaison pour trouver l’adresse IP publique.

Valider la réussite de la mise à niveau

  1. Le script MajorVersionUpgrade s’est exécuté sans erreurs.
  2. Vérifiez le fournisseur de ressources dans la marketplace et assurez-vous que SQL RP 2.0 a été installé avec succès.
  3. Les anciens groupes de ressources system.location>.sqladapter et > dans l’abonnement du fournisseur par défaut ne seront pas automatiquement supprimés par le script.
  • Nous vous recommandons de conserver 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 locataire observe une base de données ou des métadonnées de connexion incohérentes, il est possible d’accéder au support pour restaurer les 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 possible de supprimer le groupe de ressources dbadapter.dns en toute sécurité.
  • [IMPORTANT] N’utilisez pas le script de déploiement V1 pour désinstaller la version V1. Après la mise à niveau et après avoir reçu la confirmation qu’elle a réussi, vous pouvez supprimer manuellement le groupe de ressources de l’abonnement du fournisseur.

Effectuer une mise à jour de SQL RP V1 version antérieure vers SQL RP V1.1.93.x

La mise à jour du fournisseur de ressources SQL V1 est cumulative. Vous pouvez effectuer directement la 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 script UpdateSQLProvider.ps1. 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 avec 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. Vous devrez fournir les informations de certificat.

Processus du script de mise à jour

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

Remarque

Nous vous conseillons de télécharger l’image de 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 seul package MSU dans le chemin de dépendance local. Le script échoue s’il existe plusieurs fichiers MSU à cet emplacement.

Une fois que le script UpdateSQLProvider.ps1 a créé une machine virtuelle, il migre les paramètres suivants depuis la machine virtuelle de l’ancien fournisseur de ressources :

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

Important

Nous vous recommandons fortement d’utiliser Clear-AzureRmContext -Scope CurrentUser et Clear-AzureRmContext -Scope Process pour effacer le cache avant d’exécuter le script de déploiement ou de mise à jour.

Paramètres du script de mise à jour

Vous pouvez spécifier les paramètres suivants à partir de la ligne de commande quand vous exécutez le script PowerShell UpdateSQLProvider.ps1. Si vous ne le faites pas, ou si la validation d’un paramètre échoue, vous êtes invité à fournir les paramètres requis.

Nom du paramètre Description Commentaire ou valeur par défaut
CloudAdminCredential Informations d’identification de l’administrateur du cloud, nécessaires pour accéder au point de terminaison privilégié. Obligatoire
AzCredential Informations d'identification du compte administrateur de service Azure Stack Hub. Utilisez les mêmes informations d'identification que celles utilisées pour le déploiement d'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 du 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 L’environnement Azure du compte 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 Microsoft Entra ID Chine, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Vous devez également placer le fichier de certificat .pfx dans ce répertoire. Facultatif pour un seul nœud, mais obligatoire pour plusieurs nœuds.
DefaultSSLCertificatePassword Mot de passe pour le certificat .pfx. Obligatoire
MaxRetryCount Nombre de fois où vous souhaitez réessayer chaque opération en cas d’échec. 2
RetryDuration Délai d’attente entre les tentatives, en secondes. 120
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 script de mise à jour PowerShell

Si vous mettez à jour le fournisseur de ressources SQL vers la version 1.1.33.0 ou une version antérieure, vous devez installer des versions spécifiques des modules Azure Stack Hub et AzureRm.Bootstrapper dans 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 sous C:\Program Files\SqlMySqlPsh.

Remarque

Si le dossier C:\Program Files\SqlMySqlPsh existe déjà avec le module PowerShell téléchargé, il est recommandé de nettoyer ce dossier avant d’exécuter le script de mise à jour. Cela permet de s’assurer que la version appropriée du module 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 manuellement le référentiel en tant que condition préalable. Pour plus d’informations, voir Déployer un fournisseur de ressources SQL

Voici un exemple d’utilisation du script UpdateSQLProvider.ps1 que vous pouvez exécuter à partir d’une console PowerShell avec privilèges élevés. Veillez à changer les informations des variables et les mots de passe selon vos 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 l’exécution du script de mise à jour du fournisseur de ressources terminée, fermez la session PowerShell active.

Étapes suivantes

Tenir à jour le fournisseur de ressources SQL