Aktualisieren des SQL-Ressourcenanbieters

Wichtig

Ab dem Azure Stack Hub-Build 2108 werden die SQL- und MySQL-Ressourcenanbieter für Abonnements angeboten, denen Zugriff gewährt wurde. Wenn Sie dieses Feature nutzen möchten oder ein Upgrade von einer früheren Version benötigen, eröffnen Sie ein Supportticket, woraufhin unsere Supporttechniker Sie durch den Bereitstellungs- bzw. Upgradeprozess leiten werden.

Wichtig

Überprüfen Sie vor der Aktualisierung des Ressourcenanbieters die Anmerkungen zu dieser Version auf Informationen zu neuen Funktionen, Fehlerbehebungen und bekannten Problemen, die sich auf die Bereitstellung auswirken können. Die Versionshinweise geben auch die minimale Azure Stack Hub-Version an, die für den Ressourcenanbieter erforderlich ist.

Wichtig

Beim Aktualisieren des Ressourcenanbieters wird der SQL-Hostserver NICHT aktualisiert.

Unter Umständen wird ein neuer SQL-Ressourcenanbieter veröffentlicht, wenn Azure Stack Hub auf einen neuen Build aktualisiert wird. Auch wenn der vorhandene Ressourcenanbieter weiterhin funktioniert, ist es ratsam, so schnell wie möglich das Update auf den aktuellen Build durchzuführen.

Unterstützte Azure Stack Hub-Version SQL RP Version Windows Server-Instanz, auf der der RP-Dienst ausgeführt wird
2108 SQL RP-Version 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
2108, 2102, 2008, 2005 SQL-RP-Version 1.1.93.5 Microsoft AzureStack Add-on RP Windows Server
2005, 2002, 1910 SQL RP Version 1.1.47.0 Windows Server 2016 Datacenter – Server Core
1908 SQL RP Version 1.1.33.0 Windows Server 2016 Datacenter – Server Core

Aktualisieren des SQL Server-Ressourcenanbieters V2

Wenn Sie SQL RP V2 bereits bereitgestellt haben und nach Updates suchen möchten, lesen Sie Anwenden von Updates auf den Ressourcenanbieter.

Wenn Sie ein Update von SQL RP V1 auf SQL RP V2 durchführen möchten, vergewissern Sie sich, dass Sie zuerst ein Update auf SQL RP V1.1.93.x durchgeführt haben. Wenden Sie dann den Upgradeprozess für die Hauptversion an, um ein Upgrade von SQL RP V1 auf SQL RP V2 durchzuführen.

Update von SQL RP V1.1.93.x auf SQL RP V2.0.6.0

Voraussetzungen

  1. Stellen Sie sicher, dass Sie SQL RP V1 auf die neueste Version 1.1.93.x aktualisiert haben. Suchen Sie unter „Standardanbieterabonnement“ die RP-Ressourcengruppe (Benennungsformat: system.<region>.sqladapter). Bestätigen Sie das Versionstag und den Namen der SQL RP-VM in der Ressourcengruppe.

  2. Eröffnen Sie ein Supportticket, um das MajorVersionUpgrade-Paket zu erhalten, und fügen Sie Ihr Abonnement der Positivliste von ASH Marketplace für die künftige V2-Version hinzu.

  3. Laden Sie Microsoft AzureStack Add-On RP Windows Server 1.2009.0 in den Marketplace herunter.

  4. Stellen Sie sicher, dass die Voraussetzungen der Rechenzentrumsintegration erfüllt sind.

Voraussetzung Verweis
Bedingte DNS-Weiterleitung ist ordnungsgemäß festgelegt. Azure Stack Hub-Rechenzentrumsintegration – DNS
Eingangsports für Ressourcenanbieter sind geöffnet. Azure Stack Hub-Rechenzentrumsintegration – Ports und Protokolle (eingehend)
PKI-Zertifikatantragsteller und SAN sind ordnungsgemäß festgelegt. Obligatorische PKI-Voraussetzungen für die Azure Stack Hub-Bereitstellung
PaaS-Zertifikatvoraussetzungen für die Azure Stack Hub-Bereitstellung
  1. (für Umgebungen ohne Internetverbindung) Installieren Sie die erforderlichen PowerShell-Module ähnlich wie beim Aktualisierungsprozess, der zum Bereitstellen des Ressourcenanbieters verwendet wurde.

Auslösen von MajorVersionUpgrade

Führen Sie das folgende Skript über eine PowerShell-Konsole mit erhöhten Rechten aus, um ein Upgrade der Hauptversion durchzuführen.

Hinweis

Stellen Sie sicher, dass auf dem Clientcomputer, auf dem Sie das Skript ausführen, eine neuere Betriebssystemversion als Windows 10 oder Windows Server 2016 installiert ist und der Clientcomputer über eine X64-Betriebssystemarchitektur verfügt.

# 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

Hinweis

Die DNS-Adresse und die entsprechende IP-Adresse von SQL RP V2 unterscheiden sich. Um die neue öffentliche IP-Adresse zu erhalten, können Sie sich an den Support wenden, um einen DRP-Notfall anzufordern und die Ressource „SQLRPVM1130-PublicIP“ zu ermitteln. Sie können auch „nslookup sqlrp.dbadapter.< fqdn>“ auf einem Clientcomputer ausführen, der den Endpunkttest bereits bestanden hat, um die öffentliche IP-Adresse zu ermitteln.

Überprüfen, ob das Upgrade erfolgreich war

  1. Das MajorVersionUpgrade-Skript wurde ohne Fehler ausgeführt.
  2. Überprüfen Sie den Ressourcenanbieter im Marketplace, und stellen Sie sicher, dass SQL RP 2.0 erfolgreich installiert wurde.
  3. Die alte Ressourcengruppe system.location>.sqladapter und die Ressourcengruppe > im Abonnement des Standardanbieters werden nicht automatisch durch das Skript gelöscht.
  • Es wird empfohlen, das Storage-Konto und den Key Vault in der sqladapter-Ressourcengruppe zu belassen. Wenn nach dem Upgrade ein Mandantenbenutzer inkonsistente Datenbank- oder Anmeldemetadaten feststellt, ist es möglich, Unterstützung zum Wiederherstellen der Metadaten aus der Ressourcengruppe zu erhalten.
  • Nachdem Sie überprüft haben, ob die DNS-Zone in der Ressourcengruppe „dbadapter.dns“ ohne DNS-Eintrag leer ist, kann die Ressourcengruppe „dbadapter.dns“ gefahrlos gelöscht werden.
  • [WICHTIG] Verwenden Sie zum Deinstallieren der Version V1 nicht das V1-Bereitstellungsskript. Nachdem das Upgrade abgeschlossen und bestätigt wurde, dass das Upgrade erfolgreich war, können Sie die Ressourcengruppe manuell aus dem Anbieterabonnement löschen.

Update von einer früheren Version von SQL RP V1 auf SQL RP V1.1.93.x

Das Update des SQL-Ressourcenanbieters V1 ist kumulativ. Sie können direkt ein Update auf Version 1.1.93.x vornehmen.

Verwenden Sie zum Aktualisieren des Ressourcenanbieters auf 1.1.93.x das Skript UpdateSQLProvider.ps1. Verwenden Sie Ihr Dienstkonto mit lokalen Administratorrechten, das ein Besitzer des Abonnements ist. Dieses Updateskript ist im Download des Ressourcenanbieters enthalten.

Der Updateprozess ähnelt dem Prozess zum Bereitstellen des Ressourcenanbieters. Das Updateskript verwendet die gleichen Argumente wie das Skript „DeploySqlProvider.ps1“, und Sie müssen Zertifikatinformationen angeben.

Aktualisieren von Skriptprozessen

Das Skript UpdateSQLProvider.ps1 erstellt eine neue VM mit dem neuesten Betriebssystemimage, stellt den aktuellen Ressourcenanbietercode bereit und migriert die Einstellungen vom alten zum neuen Ressourcenanbieter.

Hinweis

Es wird empfohlen, das Image „Microsoft AzureStack Add-on RP Windows Server 1.2009.0“ aus der Marketplace-Verwaltung herunterzuladen. Wenn Sie ein Update installieren müssen, können Sie unter dem lokalen Abhängigkeitspfad ein einzelnes MSU-Paket platzieren. Beim Skript tritt ein Fehler auf, wenn an diesem Speicherort mehrere MSU-Dateien vorhanden sind.

Nach dem Erstellen einer neuen VM migriert das Skript UpdateSQLProvider.ps1 die folgenden Einstellungen von der alten Ressourcenanbieter-VM:

  • Datenbankinformationen
  • Hostserverinformationen
  • Erforderlicher DNS-Eintrag

Wichtig

Es wird dringend empfohlen, Clear-AzureRmContext -Scope CurrentUser und Clear-AzureRmContext -Scope Process zu verwenden, um den Cache vor dem Ausführen des Bereitstellungs- oder Aktualisierungsskripts zu löschen.

Aktualisieren von Skriptparametern

Wenn Sie das PowerShell-Skript UpdateSQLProvider.ps1 ausführen, können Sie die folgenden Parameter in der Befehlszeile angeben. Wenn Sie keine Parameter angeben oder bei der Überprüfung eines Parameters ein Fehler auftritt, werden Sie aufgefordert, die erforderlichen Parameter anzugeben.

Parametername BESCHREIBUNG Kommentar oder Standardwert
CloudAdminCredential Die Anmeldeinformationen für den Cloudadministrator, die für den Zugriff auf den privilegierten Endpunkt erforderlich sind. Erforderlich
AzCredential Die Anmeldeinformationen für das Azure Stack Hub-Dienstadministratorkonto. Verwenden Sie die gleichen Anmeldeinformationen wie bei der Bereitstellung von Azure Stack Hub. Beim Skript tritt ein Fehler auf, wenn für das Konto, das Sie mit AzCredential verwenden, mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erforderlich ist. Erforderlich
VMLocalCredential Die Anmeldeinformationen für das lokale Administratorkonto des virtuellen Computers mit dem SQL-Ressourcenanbieter. Erforderlich
PrivilegedEndpoint Die IP-Adresse oder der DNS-Name des privilegierten Endpunkts. Erforderlich
AzureEnvironment Die zum Bereitstellen von Azure Stack Hub verwendete Azure-Umgebung des Dienstadministratorkontos. Nur für Azure AD-Bereitstellungen erforderlich. Unterstützte Umgebungsnamen sind AzureCloud, AzureUSGovernment oder für ein chinesisches Azure AD AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Ihre Zertifikatdatei (.pfx) muss ebenfalls in diesem Verzeichnis abgelegt werden. Optional für einzelne Knoten, aber obligatorisch für mehrere Knoten
DefaultSSLCertificatePassword Das Kennwort für das PFX-Zertifikat. Erforderlich
MaxRetryCount Die Anzahl von Wiederholungsversuchen für jeden Vorgang, wenn ein Fehler auftritt. 2
RetryDuration Das Timeoutintervall zwischen Wiederholungen in Sekunden. 120
Deinstallieren Entfernt den Ressourcenanbieter und alle zugeordneten Ressourcen. Nein
DebugMode Verhindert die automatische Bereinigung nach einem Fehler. Nein

Beispiel für ein PowerShell-Aktualisierungsskript

Wenn Sie den SQL-Ressourcenanbieter auf Version 1.1.33.0 oder früher aktualisieren, müssen Sie bestimmte Versionen von AzureRm.BootStrapper und den Azure Stack Hub-Modulen in PowerShell installieren.

Wenn Sie den SQL-Ressourcenanbieter auf Version 1.1.47.0 oder höher aktualisieren, können Sie diesen Schritt überspringen. Das Bereitstellungsskript lädt die erforderlichen PowerShell-Module automatisch herunter und installiert sie im Pfad „C:\Programme\SqlMySqlPsh“.

Hinweis

Wenn der Ordner „C:\Programme\SqlMySqlPsh“ bereits vorhanden und ein PowerShell-Modul darin enthalten ist, empfiehlt es sich, diesen Ordner vor Ausführung des Updateskripts zu bereinigen. Dadurch wird sichergestellt, dass die richtige Version des PowerShell-Moduls heruntergeladen und verwendet wird.

# 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

Hinweis

In einem nicht verbundenen Szenario müssen Sie vor der Bereitstellung die erforderlichen PowerShell-Module manuell herunterladen und das Repository registrieren. Weitere Informationen finden Sie unter Bereitstellen des SQL-Ressourcenanbieters in Azure Stack Hub.

Nachstehend finden Sie ein Beispiel für das Skript UpdateSQLProvider.ps1, das Sie an einer PowerShell-Konsole mit erhöhten Rechten ausführen können. Achten Sie darauf, die Variableninformationen und Kennwörter wie erforderlich zu ändern:

# 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

Wenn das Updateskript für den Ressourcenanbieter ausgeführt ist, schließen Sie die aktuelle PowerShell-Sitzung.

Nächste Schritte

Wartungsvorgänge