Freigeben über


Beim Sichern einer SQL Server-Datenbank mit einer VSS-Sicherungsanwendung kann für einige Datenbanken ein Fehler angezeigt werden

Dieser Artikel hilft Ihnen, das Problem zu beheben, das auftritt, wenn Sie Volume Shadow Copy Services (VSS)-basierte Anwendungen verwenden, um Ihre SQL Server-Datenbanken zu sichern.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 2014054

Problembeschreibung

Wenn Sie Volume Shadow Copy Services (VSS)-basierte Anwendungen verwenden, um Ihre SQL Server-Datenbanken zu sichern, schlägt der Sicherungsvorgang möglicherweise fehl, wenn der Datenbankname entweder führende oder nachfolgende Leerzeichen oder nicht druckbare Zeichen enthält.

Dasselbe Problem kann auch auftreten, wenn Sie versuchen, ein Volume zu sichern, das eine dieser Datenbanken enthält.

Ursache

VSS-basierte Sicherungsanwendungen verwenden SQLServerWriter (SQLWriter) zum Abfragen von Writer-Metadatenkomponenteninformationen, um zu bestimmen, welche Datenbankdateien gesichert werden müssen. Die Writer-Metadatenkomponente wird von SQLWriter mithilfe der VSS-API erstellt und enthält drei Datasets:

  • Autorenidentifikations- und Klassifizierungsinformationen
  • Spezifikationen auf Writer-Ebene
  • Komponentendaten

Wenn ein Datenbankname führende oder nachfolgende Leerzeichen oder nicht druckbare Zeichen enthält, wird dieses Dokument möglicherweise nicht erfolgreich erstellt. Daher können VSS-basierte Anwendungen diese Datenbanken oder Volumes, die diese Datenbanken enthalten, nicht sichern.

Lösung

Benennen Sie alle Datenbanken um, die führende oder nachfolgende Leerzeichen oder nicht druckbare Zeichen in ihren Namen enthalten. Sie können die folgende Abfrage verwenden, um das Vorhandensein solcher Zeichen vor oder am Ende der Namen zu finden:

SELECT database_id AS DatabaseID, '##'+name+'##' AS DatabaseName FROM sys.databases  

Beispielausgabe:

DatabaseID         DatabaseName
8                  ##AdventureWorks##          -- DB name is fine
15                 ## DBWithLeadingSpace##     -- DB name contains leading spaces
17                 ##DBWithTrailingSpace ##    -- DB name contains trailing spaces  

Notiz

Wenn der Datenbankname in der vorhergehenden Abfrage nicht druckbare Zeichen enthält, werden sie entweder als Leerzeichen oder junk-E-Mail ausgedruckt.

Weitere Informationen

Autoren (wie SQL Writer) fügen Komponenten mithilfe von IVssCreateWriterMetadata::AddComponent hinzu, wobei die folgenden Komponenteninformationen angegeben werden:

  • type
  • Name
  • Logischer Pfad (falls vorhanden)
  • Unterstützte Funktion
  • Auswählbarkeit
  • Metadaten, die während der Wiederherstellung vom Writer verwendet werden sollen
  • Anzeigeinformationen
  • Benachrichtigungsinformationen

C (Volume Shadow Copy Service) sind Sammlungen von Dateien, die eine logische Einheit für die Sicherung und Wiederherstellung bilden. Alle Dateien in einer Komponente (mit Ausnahme der explizit ausgeschlossenen) müssen gesichert und als Einheit wiederhergestellt werden.

Weitere Informationen finden Sie unter VSS-Metadaten.

Sie können eine oder mehrere der folgenden Methoden verwenden, um zu ermitteln, ob dieses Problem besteht:

  • Verschiedene Sicherungsanwendungen lösen möglicherweise benutzerdefinierte Nachrichten zu SqlServerWriter (oder SQLWriter) aus, die nicht gefunden werden.

  • Wenn Sie über eine Eingabeaufforderung auf dem SQL Server-Zielcomputer ausgeführt werden, wird die Ausgabe nicht angezeigt SqlServerWriter .

    vssadmin list writers