Wartungsvorgänge von SQL-Ressourcenanbietern

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.

Der SQL-Ressourcenanbieter wird auf einem gesperrten virtuellen Computer (virtual machine, VM) ausgeführt. Damit Wartungsvorgänge durchgeführt werden können, müssen Sie die Sicherheit der VM aktualisieren. Verwenden Sie hierzu den Endpunkt DBAdapterMaintenance mit PowerShell Just Enough Administration (JEA), um das Prinzip der geringsten Rechte einzuhalten. Das Ressourcenanbieter-Installationspaket enthält ein Skript für diese Aktion.

Patchen und Aktualisieren

Der SQL-Ressourcenanbieter wird nicht als Teil von Azure Stack Hub gewartet, da es sich um eine Add-On-Komponente handelt. Microsoft stellt bei Bedarf Updates für den SQL-Ressourcenanbieter bereit.

Für SQL RP V1: Wenn ein aktualisierter SQL Server-Ressourcenanbieter veröffentlicht wird, wird ein Skript zur Verfügung gestellt, um das Update anzuwenden. Dieses Skript erstellt eine neue Ressourcenanbieter-VM und migriert den Zustand der älteren Anbieter-VM auf die neue VM.

Für SQL RP V2: Ressourcenanbieter werden mit dem Updatefeature aktualisiert, das auch zum Anwenden von Azure Stack Hub-Updates verwendet wird.

Weitere Informationen finden Sie unter Aktualisieren des SQL-Ressourcenanbieters.

Aktualisieren der Anbieter-VM

SQL RP V1 wird auf einer Benutzer-VM ausgeführt, daher müssen Sie die erforderlichen Patches und Updates installieren, sobald sie veröffentlicht werden. Sie können ein Windows Update-Pakets während der Installation oder des Updates des Ressourcenanbieters installieren.

SQL RP V2 wird auf einer verwalteten Windows Server-Instanz ausgeführt, die ausgeblendet ist. Sie müssen kein Patch oder Update für den virtuellen Computer des Ressourcenanbieters durchführen. Er wird automatisch aktualisiert, wenn Sie den Ressourcenanbieter aktualisieren.

Aktualisieren der Windows Defender-Definitionen für die VM

Diese Anweisungen gelten nur für SQL RP V1, das auf integrierten Azure Stack Hub-Systemen ausgeführt wird.

Aktualisieren der Windows Defender-Definitionen für den virtuellen Computer

  1. Laden Sie aktuellen Windows Defender-Definitionen von der Seite Security Intelligence-Updates für Windows Defender Antivirus und andere Microsoft Antimalware-Lösungen herunter.

    Scrollen Sie auf der Seite mit den Definitionsupdates nach unten zu „Manuelles Herunterladen des Updates“. Laden Sie die 64-Bit-Datei „Windows Defender Antivirus for Windows 10 and Windows 8.1“ herunter.

    Alternativ können Sie auch diesen Direktlink verwenden, um die Datei „fpam-fe.exe“ herunterzuladen und auszuführen.

  2. Erstellen Sie eine PowerShell-Sitzung mit dem Wartungsendpunkt der SQL-Ressourcenanbieteradapter-VM.

  3. Kopieren Sie die Datei mit den Definitionsupdates unter Verwendung der Wartungsendpunkt-Sitzung auf den virtuellen Computer.

  4. Führen Sie in der PowerShell-Wartungssitzung den Befehl Update-DBAdapterWindowsDefenderDefinitions aus.

  5. Nach der Installation empfiehlt es sich, die Datei mit den Definitionsupdates mithilfe des Befehls Remove-ItemOnUserDrive zu entfernen.

PowerShell-Skriptbeispiel zum Aktualisieren von Definitionen

Zum Aktualisieren der Defender-Definitionen können Sie das folgende Skript bearbeiten und ausführen. Ersetzen Sie die Werte im Skript durch Werte aus Ihrer Umgebung.

# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

Konfigurieren der Azure-Diagnoseerweiterung für den SQL-Ressourcenanbieter

Diese Anweisungen gelten nur für SQL RP V1, das auf integrierten Azure Stack Hub-Systemen ausgeführt wird.

Die Azure-Diagnoseerweiterung wird standardmäßig auf dem virtuellen Computer des SQL-Ressourcenanbieteradapters installiert. In den folgenden Schritten wird gezeigt, wie Sie die Erweiterung zum Sammeln von Betriebsereignisprotokollen des SQL-Ressourcenanbieters und von IIS-Protokollen zur Problembehandlung und Überwachung anpassen.

  1. Melden Sie sich beim Azure Stack Hub-Administratorportal an.

  2. Wählen Sie im linken Bereich Virtuelle Computer aus, suchen Sie nach dem virtuellen Computer des SQL-Ressourcenanbieteradapters, und wählen Sie ihn aus.

  3. Navigieren Sie in den Diagnoseeinstellungen des virtuellen Computers zur Registerkarte Protokolle, und wählen Sie Benutzerdefiniert aus, um die zu erfassenden Ereignisprotokolle anzupassen. Go to diagnostics settings

  4. Fügen Sie Microsoft-AzureStack-DatabaseAdapter/Operational!* hinzu, um Betriebsereignisprotokolle des SQL-Ressourcenanbieters zu sammeln. Add event logs

  5. Wenn Sie die Sammlung von IIS-Protokollen aktivieren möchten, aktivieren Sie die Optionen IIS-Protokolle und Protokolle zu fehlerhaften Anforderungen. Add IIS logs

  6. Wählen Sie abschließend Speichern aus, um alle Diagnoseeinstellungen zu speichern.

Wenn die Sammlung von Ereignisprotokollen und IIS-Protokollen für den SQL-Ressourcenanbieter konfiguriert wurde, finden Sie die Protokolle in einem Systemspeicherkonto mit dem Namen sqladapterdiagaccount.

Weitere Informationen zur Azure-Diagnoseerweiterung finden Sie unter Was ist die Azure-Diagnoseerweiterung?.

Aktualisieren von SQL-Anmeldeinformationen

Sie sind für das Erstellen und Verwalten von Systemadministratorkonten auf Ihren SQL Server-Instanzen verantwortlich. Der Ressourcenanbieter benötigt ein Konto mit diesen Berechtigungen zum Verwalten von Datenbanken für Benutzer – er benötigt keinen Zugriff auf die Daten der Benutzer. Wenn Sie die Systemadministratorkennwörter auf Ihren SQL Server-Instanzen ändern müssen, können Sie die Administratorschnittstelle des Ressourcenanbieters verwenden, um das gespeicherte Kennwort zu ändern. Diese Kennwörter werden in einem Schlüsseltresor in Ihrer Azure Stack Hub-Instanz gespeichert.

Um die Einstellungen zu ändern, wählen Sie Durchsuchen>VERWALTUNGSRESSOURCEN>SQL-Hostserver>SQL-Anmeldungen, und wählen Sie einen Benutzernamen aus. Die Änderung muss zuerst auf der SQL-Instanz vorgenommen werden (und ggf. auf allen Replikaten). Wählen Sie unter Einstellungen die Option Kennwort aus.

Update the SQL admin password

Geheimnisrotation

Diese Anweisungen gelten nur für SQL RP V1, das auf integrierten Azure Stack Hub-Systemen ausgeführt wird.

Bei Verwendung der SQL- und MySQL-Ressourcenanbieter mit integrierten Azure Stack Hub-Systemen ist der Azure Stack Hub-Operator dafür verantwortlich, die folgenden Geheimnisse der Ressourcenanbieterinfrastruktur zu rotieren, um sicherzustellen, dass sie nicht ablaufen:

  • Das während der Bereitstellung angegebene externe SSL-Zertifikat
  • Das während der Bereitstellung angegebene Kennwort des lokalen Administratorkontos der Ressourcenanbieter-VM
  • Das Kennwort des Diagnosebenutzers (dbadapterdiag) für den Ressourcenanbieter
  • (version >= 1.1.47.0) Während der Bereitstellung generiertes Key Vault-Zertifikat.

PowerShell-Beispiele für die Rotation von Geheimnissen

Wichtig

Eine erfolgreiche Geheimnisrotation erfordert das Entfernen aller vorhandenen Versionen der PowerShell-Module für Azure Stack Hub, bevor das folgende Skript ausgeführt wird.

Gleichzeitiges Ändern aller Geheimnisse

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Ändern des Kennworts für den Diagnosebenutzer

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Ändern des Kennworts des lokalen Administratorkontos für die VM

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Rotieren des SSL-Zertifikats

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Rotieren des Key Vault-Zertifikats

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Parameter für „SecretRotationSQLProvider.ps1“

Parameter Beschreibung Kommentar
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 Azure Active Directory für China AzureChinaCloud. Optional
AzCredential Anmeldeinformationen für das Azure Stack Hub-Dienstadministratorkonto. Beim Skript tritt ein Fehler auf, wenn für das Konto, das Sie mit AzCredential verwenden, mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erforderlich ist. Obligatorisch.
CloudAdminCredential Anmeldeinformationen für das Domänenkonto des Azure Stack Hub-Cloudadministrators. Obligatorisch.
PrivilegedEndpoint Privilegierter Endpunkt für den Zugriff auf „Get-AzureStackStampInformation“ Obligatorisch.
DiagnosticsUserPassword Kennwort des Diagnosebenutzerkontos Optional
VMLocalCredential Lokales Administratorkonto des virtuellen Computers „MySQLAdapter“ Optional
DefaultSSLCertificatePassword Kennwort für das SSL-Standardzertifikat (PFX-Datei) Optional
DependencyFilesLocalPath Lokaler Pfad der Abhängigkeitsdateien Optional
KeyVaultPfxPassword Das Kennwort, das zum Generieren des Key Vault-Zertifikats für Datenbankadapter verwendet wird. Optional

Diese Anweisungen gelten nur für SQL RP V2, das auf integrierten Azure Stack Hub-Systemen ausgeführt wird.

Hinweis

Die Rotation von Geheimnissen für Mehrwert-Ressourcenanbieter (Resource Providers, RPs) wird derzeit nur über PowerShell unterstützt.

Wie die Azure Stack Hub-Infrastruktur verwenden Ressourcenanbieter mit Mehrwert sowohl interne als auch externe Geheimnisse. Als Operator tragen Sie folgende Verantwortungen:

  • Bereitstellen aktueller externer Geheimnisse, z. B. ein neues TLS-Zertifikat, das zum Schutz der Ressourcenanbieterendpunkte verwendet wird
  • Verwalten der regulären Rotation von Ressourcenanbietergeheimnissen

Für Geheimnisse, deren Ablauf bald bevorsteht, werden im Administratorportal folgende Benachrichtigungen generiert. Diese Warnungen lassen sich durch das Durchführen einer Geheimnisrotation beheben:

  • Pending internal certificate expiration (Bevorstehender Ablauf eines internen Zertifikats)
  • Pending external certificate expiration (Bevorstehender Ablauf eines externen Zertifikats)

Voraussetzungen

Vorbereitung des Rotationsprozesses:

  1. Falls noch nicht geschehen, installieren Sie das PowerShell Az-Modul für Azure Stack Hub, bevor Sie fortfahren. Für die Azure Stack Hub-Geheimnisrotation ist Version 2.0.2-preview oder höher erforderlich. Weitere Informationen finden Sie unter Migrieren von AzureRM zum Az-Modul von Azure PowerShell in Azure Stack Hub.

  2. Installieren Sie die Azs.Deployment.Admin 1.0.0-Module: PowerShell-Katalog | Azs.Deployment.Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Wenn sich das externe Zertifikat dem Ablaufdatum nähert, überprüfen Sie die Zertifikatanforderungen der Public Key-Infrastruktur (PKI) von Azure Stack Hub auf wichtige Informationen zu Voraussetzungen, einschließlich Informationen zum erforderlichen PFX-Format, bevor Sie das X509-Zertifikat abrufen oder erneuern. Überprüfen Sie auch die Voraussetzungen für Ihren spezifischen Ressourcenanbieter mit Mehrwert, die im Abschnitt zu optionalen PaaS-Zertifikaten angegeben werden.

Vorbereiten eines neuen TLS-Zertifikats für die externe Zertifikatrotation

Hinweis

Wenn nur das interne Zertifikat demnächst abläuft, können Sie diesen Abschnitt überspringen.

Als Nächstes erstellen oder erneuern Sie Ihr TLS-Zertifikat zum Schutz der Ressourcenanbieterendpunkte, die einen Mehrwert schaffen:

  1. Führen Sie die Schritte unter Generieren von Zertifikatsignieranforderungen für die Zertifikaterneuerung für Ihren Ressourcenanbieter aus. Hier verwenden Sie das Tool zur Bereitschaftsüberprüfung von Azure Stack Hub, um die Zertifikatsignieranforderung zu erstellen. Stellen Sie sicher, dass Sie das richtige Cmdlet für Ihren Ressourcenanbieter im Schritt „Generieren von Zertifikatanforderungen für andere Azure Stack Hub-Dienste“ ausführen. Beispiel: New-AzsDbAdapterCertificateSigningRequest wird für SQL- und MySQL-Ressourcenanbieter verwendet. Wenn Sie fertig sind, übermitteln Sie die generierte REQ-Datei an Ihre Zertifizierungsstelle für das neue Zertifikat.

  2. Sobald Sie Ihre Zertifikatdatei von der Zertifizierungsstelle erhalten haben, führen Sie die Schritte unter Vorbereiten von Zertifikaten für die Bereitstellung oder Rotation. Verwenden Sie das Tool zur Bereitschaftsüberprüfung nochmal, um die von der Zertifizierungsstelle zurückgegebene Datei zu verarbeiten.

  3. Führen Sie schließlich die Schritte unter Überprüfen von Azure Stack Hub-PKI-Zertifikaten aus. Sie verwenden das Tool zur Bereitschaftsüberprüfung ein weiteres Mal, um Validierungstests für Ihr neues Zertifikat durchzuführen.

Rotieren des internen Zertifikats

Öffnen Sie eine PowerShell-Konsole mit erhöhten Rechten, und führen Sie die folgenden Schritte aus, um die externen Geheimnisse des Ressourcenanbieters zu rotieren:

  1. Melden Sie sich mit Ihren Operatoranmeldeinformationen bei Ihrer Azure Stack Hub-Umgebung an. Das PowerShell-Anmeldeskript finden Sie unter Herstellen einer Verbindung mit Azure Stack Hub mithilfe von PowerShell. Stellen Sie sicher, dass Sie die Az-Cmdlets von PowerShell (anstelle von AzureRM) verwenden, und ersetzen Sie alle Platzhalterwerte, z. B. Endpunkt-URLs und Verzeichnismandantennamen.

  2. Bestimmen Sie die Produkt-ID des Ressourcenanbieters. Führen Sie das Cmdlet Get-AzsProductDeployment aus, um eine Liste der neuesten Bereitstellungen von Ressourcenanbietern abzurufen. Die zurückgegebene "value"-Sammlung enthält ein Element für jeden bereitgestellten Ressourcenanbieter. Suchen Sie nach dem gewünschten Ressourcenanbieter, und notieren Sie sich die Werte der folgenden Eigenschaften:

    • "name": Diese Eigenschaft enthält die Produkt-ID des Ressourcenanbieters im zweiten Segment des Werts.

    Die SQL RP-Bereitstellung kann z. B. eine Produkt-ID von "microsoft.sqlrp" aufweisen.

  3. Führen Sie das Cmdlet Invoke-AzsProductRotateSecretsAction aus, um das interne Zertifikat zu rotieren:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Rotieren des externen Zertifikats

Notieren Sie sich zunächst die Werte für die folgenden Parameter. | Platzhalter | Beschreibung | Beispielwert | | ----------- | ----------- | --------------| | <product-id> | Die Produkt-ID der neuesten Ressourcenanbieterbereitstellung. | microsoft.sqlrp | | <installed-version> | Die Version der neuesten Ressourcenanbieterbereitstellung. | 2.0.0.2 | | <package-id> | Die Paket-ID wird erstellt, indem die Produkt-ID und die installierte Version verkettet werden. | microsoft.sqlrp.2.0.0.2 | | <cert-secret-name> | Der Name, unter dem das Zertifikatgeheimnis gespeichert wird. | SSLCert | | <cert-pfx-file-path> | Der Pfad zur PFX-Datei Ihres Zertifikats. | C:\dir\dbadapter-cert-file.pfx | | <pfx-password> | Das Kennwort, das der PFX-Datei Ihres Zertifikats zugewiesen ist. | strong@CertSecret6 |

Öffnen Sie eine PowerShell-Konsole mit erhöhten Rechten, und führen Sie die folgenden Schritte aus:

  1. Melden Sie sich mit Ihren Operatoranmeldeinformationen bei Ihrer Azure Stack Hub-Umgebung an. Das PowerShell-Anmeldeskript finden Sie unter Herstellen einer Verbindung mit Azure Stack Hub mithilfe von PowerShell. Stellen Sie sicher, dass Sie die Az-Cmdlets von PowerShell (anstelle von AzureRM) verwenden, und ersetzen Sie alle Platzhalterwerte, z. B. Endpunkt-URLs und Verzeichnismandantennamen.

  2. Rufen Sie den Parameterwert der Produkt-ID ab. Führen Sie das Cmdlet Get-AzsProductDeployment aus, um eine Liste der neuesten Bereitstellungen von Ressourcenanbietern abzurufen. Die zurückgegebene "value"-Sammlung enthält ein Element für jeden bereitgestellten Ressourcenanbieter. Suchen Sie nach dem gewünschten Ressourcenanbieter, und notieren Sie sich die Werte der folgenden Eigenschaften:

    • "name": Diese Eigenschaft enthält die Produkt-ID des Ressourcenanbieters im zweiten Segment des Werts.
    • "properties"."deployment"."version": Diese Eigenschaft enthält die Versionsnummer der aktuellen Bereitstellung.

Die SQL RP-Bereitstellung kann z. B. eine Produkt-ID von "microsoft.sqlrp" und die Version "2.0.0.2" aufweisen.

  1. Erstellen Sie die Paket-ID des Ressourcenanbieters, indem Sie die Produkt-ID und Versionsnummer des Ressourcenanbieters verketten. Bei Verwendung der im vorherigen Schritt abgeleiteten Werte, lautet die Paket-ID des SQL-Ressourcenanbieters beispielsweise microsoft.sqlrp.2.0.0.2.

  2. Führen Sie Get-AzsProductSecret -PackageId mit der Paket-ID aus, die Sie im vorherigen Schritt abgeleitet haben, um die Liste der Geheimnistypen abzurufen, die vom Ressourcenanbieter verwendet werden. Suchen Sie in der zurückgegebenen value-Sammlung das Element, das einen Wert von "Certificate" für die Eigenschaft "properties"."secretKind" enthält. Dieses Element enthält Eigenschaften für das Zertifikatsgeheimnis des Ressourcenanbieters. Notieren Sie sich den Namen, der diesem Zertifikatsgeheimnis zugewiesen ist und anhand des letzten Segments der Eigenschaft "name" direkt über "properties" identifiziert wird.

Die Geheimnissammlung, die für den SQL-Ressourcenanbieter zurückgegeben wird, enthält z. B. ein "Certificate"-Geheimnis namens SSLCert.

  1. Verwenden Sie das Cmdlet Set-AzsProductSecret, um Ihr neues Zertifikat in den Schlüsseltresor zu importieren, der vom Rotationsprozess verwendet wird. Ersetzen Sie die variablen Platzhalterwerte entsprechend, bevor Sie das Skript ausführen.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Verwenden Sie abschließend das Cmdlet Invoke-AzsProductRotateSecretsAction, um die Geheimnisse zu rotieren:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Überwachen des Status der Geheimnisrotation

Sie können den Geheimnisrotationsprozess entweder in der PowerShell-Konsole oder im Administratorportal überwachen, indem Sie den Ressourcenanbieter im Marketplace-Dienst auswählen:

Screen of secret rotation in progress.

Hinweis

Die Geheimnisrotation kann mehr als 10 Minuten dauern. Anschließend ändert sich der Status des Ressourcenanbieters in „Installiert“.

Erfassen von Diagnoseprotokollen

Azure Stack Hub bietet mehrere Methoden zum Erfasse, Speichern und Senden von Diagnoseprotokollen an den Microsoft-Support. Der SQL-Ressourcenanbieter unterstützt ab Version 1.1.93 das Standardverfahren zum Erfassen von Protokollen aus der Azure Stack Hub-Umgebung. Weitere Informationen finden Sie unter Sammlung von Diagnoseprotokollen.

Der SQL-Ressourcenanbieter unterstützt ab Version 1.1.93 das Standardverfahren zum Erfassen von Protokollen aus der Azure Stack Hub-Umgebung. Wenn Sie eine ältere Version verwenden, empfiehlt es sich, den SQL-Ressourcenanbieter auf die neueste Version zu aktualisieren.

Zur Erfassung von Protokollen der gesperrten virtuellen Computer können Sie den Endpunkt DBAdapterDiagnostics mit PowerShell Just Enough Administration (JEA) verwenden. Dieser Endpunkt bietet die folgenden Befehle:

  • Get-AzsDBAdapterLog. Dieser Befehl erstellt ein Zip-Paket der Diagnoseprotokolle des Ressourcenanbieters und speichert die Datei auf dem Benutzerlaufwerk der Sitzung. Sie können diesen Befehl ohne Parameter ausführen, und die Protokolle der letzten vier Stunden werden gesammelt.
  • Remove-AzsDBAdapterLog. Dieser Befehl entfernt vorhandene Protokollpakete vom virtuellen Computer des Ressourcenanbieters.

Endpunktanforderungen und Prozess

Beim Installieren oder Aktualisieren eines Ressourcenanbieters wird das dbadapterdiag-Benutzerkonto erstellt. Sie werden dieses Konto verwenden, um Diagnoseprotokolle zu sammeln.

Hinweis

Das Kennwort des Kontos „dbadapterdiag“ entspricht dem Kennwort des lokalen Administrators der VM, die während der Bereitstellung oder dem Update eines Anbieters erstellt wurde.

Zur Verwendung der DBAdapterDiagnostics-Befehle müssen Sie eine PowerShell-Remotesitzung mit der VM des Ressourcenanbieters herstellen und den Befehl Get-AzsDBAdapterLog ausführen.

Mit den Parametern FromDate und ToDate legen Sie die Zeitspanne für die Protokollsammlung fest. Wenn Sie einen oder beide dieser Parameter nicht angeben, werden die folgenden Standardwerte verwendet:

  • „FromDate“ sind vier Stunden vor der aktuellen Uhrzeit.
  • „ToDate“ ist die aktuelle Uhrzeit.

PowerShell-Skriptbeispiel für die Protokollerfassung

Das folgende Skript zeigt, wie Diagnoseprotokolle aus der Ressourcenanbieter-VM gesammelt werden.

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'

$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics `
        -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Bekannte Einschränkungen des SQL Server-Ressourcenanbieters, Version 1

Einschränkung:
Wenn das Skript zum Bereitstellen, Aktualisieren oder Rotieren von Geheimnissen fehlgeschlagen ist, können einige Protokolle nicht über den Standardmechanismus zur Protokollerfassung erfasst werden.

Problemumgehung:
Neben der Verwendung des Standard-Protokollerfassungsmechanismus können Sie im Ordner „Logs“ im extrahierten Ordner, in dem sich das Skript befindet, nach weiteren Protokollen suchen.

Nächste Schritte

Hinzufügen von SQL Server-Hostservern