Aktualizowanie dostawcy zasobów MySQL w usłudze Azure Stack Hub

Ważne

Począwszy od kompilacji usługi Azure Stack Hub 2108, dostawcy zasobów SQL i MySQL są oferowani subskrypcjom, którym udzielono dostępu. Jeśli chcesz rozpocząć korzystanie z tej funkcji lub jeśli chcesz uaktualnić poprzednią wersję, otwórz zgłoszenie do pomocy technicznej , a nasi inżynierowie pomocy technicznej przeprowadzi Cię przez proces wdrażania lub uaktualniania.

Ważne

Przed zaktualizowaniem dostawcy zasobów przejrzyj informacje o wersji, aby dowiedzieć się więcej o nowych funkcjach, poprawkach i znanych problemach, które mogą mieć wpływ na wdrożenie. Informacje o wersji określają również minimalną wersję usługi Azure Stack Hub wymaganą dla dostawcy zasobów.

Ważne

Aktualizowanie dostawcy zasobów nie spowoduje zaktualizowania hosta serwera MySQL.

Gdy usługa Azure Stack Hub wyda nową kompilację, możemy wydać nową kartę dostawcy zasobów MySQL. Mimo że istniejąca karta nadal działa, zalecamy jak najszybsze zaktualizowanie do najnowszej kompilacji.

Obsługiwana wersja usługi Azure Stack Hub Wersja dostawcy usługi MySQL System Windows Server, na którym działa usługa RP
2206, 2301, 2306, 2311 MySQL RP w wersji 2.0.13.x Dodatek Microsoft AzureStack dla systemu Windows Server 1.2009.0
2108, 2206 MySQL RP w wersji 2.0.6.x Dodatek Microsoft AzureStack dla systemu Windows Server 1.2009.0

Aktualizowanie dostawcy zasobów serwera MySQL Server w wersji 2

Jeśli wdrożono już usługę MySQL RP V2 i chcesz sprawdzić dostępność aktualizacji, zobacz Jak zastosować aktualizacje do dostawcy zasobów.

Jeśli chcesz zaktualizować z mySQL RP V1 do MySQL RP V2, upewnij się, że najpierw zaktualizujesz usługę MySQL RP v1.1.93.x, a następnie zastosuj proces uaktualniania wersji głównej, aby uaktualnić z mySQl RP V1 do mySQL RP V2.

Aktualizacja z serwera MySQL RP v1.1.93.x do mySQL RP v2.0.6.0

Wymagania wstępne

  1. Upewnij się, że zaktualizowano program MySQL RP V1 do najnowszej wersji 1.1.93.x. W obszarze Domyślna subskrypcja dostawcy znajdź grupę zasobów RP (format nazewnictwa: system.<region>). mysqladapter). Potwierdź tag wersji i nazwę maszyny wirtualnej dostawcy usługi MySQL w grupie zasobów. Jeśli nadal korzystasz ze starej wersji i musisz zaktualizować do wersji 1.1.93.x, otwórz zgłoszenie do pomocy technicznej.

  2. Otwórz zgłoszenie do pomocy technicznej , aby pobrać pakiet MajorVersionUpgrade i dodać subskrypcję do listy dozwolonych ash marketplace dla przyszłej wersji V2.

  3. Pobierz usługę Microsoft AzureStack Add-On RP z systemem Windows Server 1.2009.0 do witryny Marketplace.

  4. Upewnij się, że usługa Azure Stack Hub spełnia wymagania wstępne dotyczące integracji centrum danych.

    Wymaganie wstępne Odwołanie
    Warunkowe przekazywanie DNS jest poprawnie ustawione. Integracja centrum danych usługi Azure Stack Hub — DNS
    Porty przychodzące dla dostawców zasobów są otwarte. Integracja centrum danych usługi Azure Stack Hub — porty i protokoły przychodzące
    Podmiot certyfikatu PKI i sieć SAN są poprawnie ustawione. Obowiązkowe wymagania wstępne dotyczące wdrożenia infrastruktury kluczy publicznych w usłudze Azure Stack Hub
    Wymagania wstępne dotyczące certyfikatu PaaS wdrożenia usługi Azure Stack Hub
  5. (dla środowiska rozłączonego) Zainstaluj wymagane moduły programu PowerShell podobne do procesu aktualizacji używanego do wdrażania dostawcy zasobów MySQL.

  6. Przygotuj identyfikator URI łącznika MySQL przy użyciu wymaganej wersji. Aby uzyskać szczegółowe informacje, zobacz Wdrażanie dostawcy zasobów MySQL. np. https://< storageAcountName.blob>.<region>.<Nazwa FQDN>/<nazwa_kontenera>/mysql-connector-net-8.0.21.msi

Wyzwalanie majorVersionUpgrade

Uruchom następujący skrypt z poziomu konsoli programu PowerShell z podwyższonym poziomem uprawnień, aby przeprowadzić uaktualnienie wersji głównej.

Uwaga

Upewnij się, że maszyna kliencka, na której jest uruchamiany skrypt, ma wersję systemu operacyjnego nie starszą niż Windows 10 lub Windows Server 2016, a komputer kliencki ma architekturę systemu operacyjnego X64.

Ważne

Zdecydowanie zalecamy używanie polecenia Clear-AzureRmContext -Scope CurrentUser i Clear-AzureRmContext -Scope Process w celu wyczyszczenia pamięci podręcznej przed uruchomieniem skryptu wdrożenia lub aktualizacji.

# 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-MySQLRP'
# 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\mysqlcert\SSL.pfx"
# Local blob uri where stores the required mysql connector
$MySQLConnector = "Provide the MySQL Connector Uri according to Prerequisites step."
# 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\MajorVersionUpgradeMySQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath -MySQLConnector $MySQLConnector

Uwaga

Adres DNS i odpowiadający mu adres IP usługi MySQL RP V2 są różne. Aby uzyskać nowy publiczny adres IP, możesz skontaktować się z pomocą techniczną, aby wymagać szkła awaryjnego DRP i znaleźć zasób MySQLRPVM1130-PublicIP. Możesz również uruchomić polecenie "nslookup mysqlrp.dbadapter.<fqdn>" z komputera klienckiego, który przeszedł już test punktu końcowego, aby dowiedzieć się publicznego adresu IP.

Sprawdzanie, czy uaktualnienie zakończyło się pomyślnie

  1. Skrypt MajorVersionUpgrade został wykonany bez żadnych błędów.
  2. Sprawdź dostawcę zasobów w witrynie Marketplace i upewnij się, że program MySQL RP 2.0 został pomyślnie zainstalowany.
  3. Stary system.<location.mysqladapter>, grupa zasobów i system.<location.dbadapter.dns>, grupa zasobów w domyślnej subskrypcji dostawcy nie zostanie automatycznie usunięta przez skrypt.
  • Zalecamy przechowywanie konta magazynu i Key Vault w grupie zasobów mysqladapter przez jakiś czas. Jeśli po uaktualnieniu każdy użytkownik dzierżawy obserwuje niespójne metadane bazy danych lub logowania, można uzyskać pomoc techniczną dotyczącą przywracania metadanych z grupy zasobów.
  • Po sprawdzeniu, czy strefa DNS w grupie zasobów dbadapter.dns jest pusta bez rekordu DNS, można bezpiecznie usunąć grupę zasobów dbadapter.dns.
  • [WAŻNE] Nie używaj skryptu wdrażania w wersji 1, aby odinstalować wersję V1. Po zakończeniu uaktualniania i potwierdzeniu, że uaktualnienie zakończyło się pomyślnie, można ręcznie usunąć grupę zasobów z subskrypcji dostawcy.

Aktualizacja z wersji 1 starszej usługi MySQL RP do wersji 1.1.93.x usługi MySQL RP

Aktualizacja dostawcy zasobów MySQL w wersji 1 jest zbiorcza. Możesz bezpośrednio zaktualizować do wersji 1.1.93.x.

Aby zaktualizować dostawcę zasobów do wersji 1.1.93.x, użyj skryptu UpdateMySQLProvider.ps1 . Użyj konta usługi z lokalnymi prawami administracyjnymi i jest właścicielem subskrypcji. Ten skrypt aktualizacji jest dołączony do pobierania dostawcy zasobów.

Aby zaktualizować dostawcę zasobów, należy użyć skryptu UpdateMySQLProvider.ps1 . Użyj konta usługi z lokalnymi prawami administracyjnymi i jest właścicielem subskrypcji. Skrypt aktualizacji jest dołączony do pobierania dostawcy zasobów.

Proces aktualizacji jest podobny do procesu używanego do wdrażania dostawcy zasobów. Skrypt aktualizacji używa tych samych argumentów co skrypt DeployMySqlProvider.ps1 i należy podać informacje o certyfikacie.

Aktualizowanie procesów skryptów

Skrypt UpdateMySQLProvider.ps1 tworzy nową maszynę wirtualną z najnowszym obrazem systemu operacyjnego, wdraża najnowszy kod dostawcy zasobów i migruje ustawienia ze starego dostawcy zasobów do nowego dostawcy zasobów.

Uwaga

Zalecamy pobranie obrazu dodatku Microsoft AzureStack dla systemu Windows Server 1.2009.0 z witryny Marketplace Management. Jeśli musisz zainstalować aktualizację, możesz umieścić pojedynczy pakiet MSU w lokalnej ścieżce zależności. Skrypt zakończy się niepowodzeniem, jeśli w tej lokalizacji znajduje się więcej niż jeden plik MSU.

Po utworzeniu nowej maszyny wirtualnej przez skryptUpdateMySQLProvider.ps1 skrypt migruje następujące ustawienia ze starej maszyny wirtualnej dostawcy zasobów:

  • informacje o bazie danych
  • informacje o serwerze hostingu
  • wymagany rekord DNS

Ważne

Zdecydowanie zalecamy używanie polecenia Clear-AzureRmContext -Scope CurrentUser i Clear-AzureRmContext -Scope Process w celu wyczyszczenia pamięci podręcznej przed uruchomieniem skryptu wdrożenia lub aktualizacji.

Aktualizowanie parametrów skryptu

Określ następujące parametry z wiersza polecenia po uruchomieniu skryptu programu PowerShellUpdateMySQLProvider.ps1. Jeśli nie, lub jeśli jakakolwiek walidacja parametru zakończy się niepowodzeniem, zostanie wyświetlony monit o podanie wymaganych parametrów.

Nazwa parametru Opis Komentarz lub wartość domyślna
CloudAdminCredential Poświadczenia administratora chmury niezbędne do uzyskania dostępu do uprzywilejowanego punktu końcowego. Wymagane
AzCredential Poświadczenia konta administratora usługi Azure Stack Hub. Użyj tych samych poświadczeń, które zostały użyte do wdrożenia usługi Azure Stack Hub. Skrypt zakończy się niepowodzeniem, jeśli konto, którego używasz z modułem AzCredential, wymaga uwierzytelniania wieloskładnikowego (MFA). Wymagane
VMLocalCredential Poświadczenia konta administratora lokalnego maszyny wirtualnej dostawcy zasobów MySQL. Wymagane
PrivilegedEndpoint Adres IP lub nazwa DNS uprzywilejowanego punktu końcowego. Wymagane
AzureEnvironment Środowisko platformy Azure konta administratora usługi używane do wdrażania usługi Azure Stack Hub. Wymagane tylko w przypadku wdrożeń Microsoft Entra. Obsługiwane nazwy środowisk to AzureCloud, AzureUSGovernment lub jeśli są używane chiny Tożsamość Microsoft Entra, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Plik pfx certyfikatu należy również umieścić w tym katalogu. Opcjonalne (obowiązkowe dla wielu węzłów)
DefaultSSLCertificatePassword Hasło certyfikatu pfx. Wymagane
MaxRetryCount Ile razy chcesz ponowić próbę wykonania każdej operacji, jeśli wystąpi błąd. 2
RetryDuration Interwał limitu czasu między ponawianiami prób w sekundach. 120
Odinstalowywanie Usuń dostawcę zasobów i wszystkie skojarzone zasoby (zobacz następujące uwagi). Nie
Debugmode Zapobiega automatycznemu czyszczeniu po awarii. Nie
AcceptLicense Pomija monit o zaakceptowanie licencji GPL. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

Przykład aktualizacji skryptu

Jeśli aktualizujesz wersję dostawcy zasobów MySQL do wersji 1.1.33.0 lub wcześniejszych, musisz zainstalować określone wersje modułów AzureRm.BootStrapper i Azure Stack Hub w programie PowerShell.

Jeśli aktualizujesz dostawcę zasobów MySQL do wersji 1.1.47.0 lub nowszej, możesz pominąć ten krok. Skrypt wdrażania automatycznie pobierze i zainstaluje niezbędne moduły programu PowerShell do ścieżki C:\Program Files\SqlMySqlPsh.

Uwaga

Jeśli folder C:\Program Files\SqlMySqlPsh już istnieje z pobranym modułem programu PowerShell, zaleca się wyczyszczenie tego folderu przed uruchomieniem skryptu aktualizacji. Upewnij się, że odpowiednia wersja modułu programu PowerShell została pobrana i użyta.

# 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

Uwaga

W scenariuszu rozłączonym należy pobrać wymagane moduły programu PowerShell i ręcznie zarejestrować repozytorium jako wymaganie wstępne. Aby uzyskać więcej informacji, zobacz Deploy MySQL resource provider (Wdrażanie dostawcy zasobów MySQL)

W poniższym przykładzie przedstawiono skrypt UpdateMySQLProvider.ps1 , który można uruchomić z poziomu konsoli programu PowerShell z podwyższonym poziomem uprawnień. Pamiętaj, aby zmienić informacje o zmiennej i hasła zgodnie z potrzebami:

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but could have been changed at install time.
$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 environment names are AzureCloud, AzureUSGovernment, or AzureChinaCloud. 
$AzureEnvironment = "<EnvironmentName>"

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

# The service admin account (can be Azure Active Directory or Active Directory Federation Services).
$serviceAdmin = "admin@mydomain.onmicrosoft.com" 
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass) 
 
# Set credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("mysqlrpadmin", $vmLocalAdminPass) 
 
# And 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\UpdateMySQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert -AcceptLicense

Po zakończeniu skryptu aktualizacji dostawcy zasobów zamknij bieżącą sesję programu PowerShell.

Następne kroki

Obsługa dostawcy zasobów MySQL