Freigeben über


Nicht komponentenbasierte VSS-Sicherungen wie Azure Site Recovery-Aufträge schlagen auf Servern fehl, auf denen SQL Server-Instanzen mit AUTO_CLOSE-DBs gehostet werden

Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem nicht komponentenfremde Volume Shadow Copy Service (VSS)-Sicherungen wie Azure Site Recovery (ASR)-Aufträge auf Servern fehlschlagen, auf denen SQL Server-Instanzen mit AUTO-CLOSE DBs gehostet werden.

Originalproduktversion: SQL Server 2017 unter Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server in VM – Windows
Ursprüngliche KB-Nummer: 4504104

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verfügen über einen Server, auf dem eine beliebige Version von Microsoft SQL Server ausgeführt wird.
  • Diese SQL Server-Instanz hostet Datenbanken mit dem Auto-CLOSE-Optionssatz.
  • Sie führen eine VSS-Sicherung ohne Komponente (z. B. mithilfe des ASR-Agents) für Volumes dieses Servers aus, die SQL Server-Datenbankdateien hosten.

In dieser Situation stellen Sie fest, dass die VSS-Sicherung fehlschlägt und den folgenden Eintrag im Anwendungsprotokoll auslöst:

Ein VSS Writer hat ein Ereignis mit Fehler 0x800423f4 abgelehnt, der Writer hat einen nicht vorübergehenden Fehler erlebt. Wenn der Sicherungsvorgang erneut versucht wird, tritt der Fehler wahrscheinlich erneut auf. Änderungen, die der Writer an den Writer-Komponenten während der Behandlung des Ereignisses vorgenommen hat, stehen dem Antragsteller nicht zur Verfügung. Überprüfen Sie das Ereignisprotokoll auf verwandte Ereignisse aus der Anwendung, die den VSS Writer hostet.
Operation:
PostSnapshot-Ereignis
Kontext:
Ausführungskontext: Writer
Writer-Klassen-ID: {ID}
Writer-Name: SqlServerWriter
Writer-Instanzname: Microsoft SQL Server 2012:SQLWriter
Writer-Instanz-ID: {ID}
Befehlszeile: ""C:\Programme\Microsoft SQL Server\90\Shared\sqlwriter.exe""
Prozess-ID: xxx"

Ursache

Dieses Problem tritt auf, da SQL Server SQLWriter derzeit keine AUTO-CLOSE-Datenbanken ordnungsgemäß im Nicht-Komponentenmodus VSS-Sicherungsanforderungen verarbeitet.

Problemumgehung

Als kurzfristige Entschärfung wird empfohlen, die Auto-CLOSE-Option für alle Datenbanken aller SQL Server-Instanzen zu deaktivieren, die auf Servern gehostet werden, die keine Komponenten-VSS-Sicherungen erhalten. In der Regel sind virtuelle Azure-Computer, die SQL Server ausführen, betroffen, da ASR-Agent solche Nichtkomponentensicherungen ausführt.

Weitere Informationen

  • Standardmäßig ist die AUTO_CLOSE Eigenschaft auf "OFF" in SQL Server festgelegt, um das SQL Express-Verhalten zu verstehen: Ressourcennutzung im Leerlauf, AUTO_CLOSE und Benutzerinstanzen. Wenn Sie sicher sind, dass Sie diese Einstellung nicht manuell auf Servern aktiviert haben, die möglicherweise von diesem Problem betroffen sind, untersuchen Sie alle SQL Server Express-Instanzen, die möglicherweise im Hintergrund als Komponenten anderer Anwendungen installiert wurden.

  • Um eine Liste der Datenbanken abzurufen, die den Modus aktiviert haben AUTO_CLOSE , führen Sie die Abfrage für eine bestimmte SQL Server-Instanz aus: select name,database_id,is_auto_close_on from sys.databases where is_auto_close_on=1.

  • Informationen zum Ändern der Einstellung finden Sie im AUTO_CLOSE Abschnitt alter DATABASE SET-Optionen in der Onlinedokumentation für TSQL.

    • Führen Sie zum Umschalten dieser Option den folgenden Befehl im Standardclient sqlcmd.exe aus (z. B. für die Datenbank "Meine Datenbank"):

      alter database <myDatabase> set auto_close OFF
      
    • Die Änderung wird sofort wirksam. Führen Sie zum Wiederherstellen dieser Änderung den folgenden Befehl aus:

      alter database <myDatabase> set auto_close ON
      
  • Wenn Sie eine GUI-Methode bevorzugen, verwenden Sie die Datenbankeigenschaftenoptionen> in SQL Server Management Studio.