Übersicht über die tatsächliche Sicherung von Dateien
VSS ermöglicht einem Anfordernden den Zugriff auf die Schattenkopie von Volumes, die Daten für die Sicherung enthalten, und das Kopieren von Daten auf Sicherungsmedien. Writer fahren während dieses Prozesses im Allgemeinen mit dem normalen Betrieb fort. Weitere Informationen finden Sie unter Übersicht über die Verarbeitung einer Sicherung unter VSS.
Die folgende Tabelle zeigt die Abfolge der Aktionen und Ereignisse, die zum Sichern von Dateien erforderlich sind.
| Aktion des Anfordernden | Ereignis | Writer-Aktion |
|---|---|---|
| Zugreifen auf Dateien auf dem schattenkopieren Volume (siehe IVssBackupComponents::GetSnapshotProperties, VSS_SNAPSHOT_PROP) | Keine | Keine |
| Generieren Sie die Liste der zu sichernden Dateien, und kopieren Sie Dateidaten auf Sicherungsmedien. | Keine | Keine |
| Geben Sie den Erfolg oder Fehler der Sicherung mit IVssBackupComponents::SetBackupSucceeded an. | Keine | Keine |
| Der Anfordernde gibt an, dass die Sicherung abgeschlossen wurde, indem er IVssBackupComponents::BackupComplete aufruft. | BackupComplete | Führen Sie alle Bereinigungen nach der Sicherung durch (siehe CVssWriter::OnBackupComplete, IVssWriterComponents, IVssComponent). |
Der Anfordernde wartet darauf, dass alle Writer den Empfang des IVssBackupComponents::BackupComplete-Ereignisses mithilfe von IVssAsync bestätigen. Außerdem sollte der Writerstatus überprüft werden (siehe IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus). Der Anfordernde muss gatherWriterStatus zu diesem Zeitpunkt aufrufen, damit die Writersitzung in einen abgeschlossenen Zustand gesetzt wird.[!Note] |
Keine | Keine |
| Speichern Sie das Sicherungskomponentendokument und jedes Writer-Metadatendokument in XML-Dokumenten, die auf das Sicherungsmedium geschrieben werden können (siehe IVssBackupComponents::SaveAsXML und IVssExwriterMetadata::SaveAsXML). | Keine | Keine |
Writeraktionen während der Sicherung von Dateien
Nachdem die Schattenkopie abgeschlossen wurde, sollten alle E/A-Vorgänge auf dem System, das gesichert wird, fortgesetzt werden können, ohne die Integrität der Sicherung zu unterbrechen. Dies ist einer der Hauptgründe für die Schattenkopiefunktion.
Daher gibt es wie in der Ermittlungsphase (siehe Übersicht über die Sicherungsermittlungsphase) einige Anforderungen an die Writer, während Dateien tatsächlich gesichert werden.
Nachdem eine Sicherung abgeschlossen wurde und ein Ansucher ein BackupComplete-Ereignis generiert hat, aufruft VSS die CVssWriter::OnBackupComplete-Methode jedes Writers, eine virtuelle Methode, die standardmäßig einfach TRUE zurückgibt. Writer können jedoch die Standardimplementierung außer Kraft setzen und Aktionen wie das Entfernen verbleibender temporärer Dateien ausführen oder die IVssWriterComponents-Schnittstelle verwenden, mit der sie aufgerufen werden, um den Status der Sicherung jeder enthaltenen enthaltenen Komponenten (und aller Komponenten, die sie definieren können) durch Abrufen des entsprechenden IVssComponent-Objekts zu überprüfen. Der Writer kann dann den Erfolg oder Fehler der Sicherung durch Aufrufen von IVssComponent:GetBackupSucceeded bestimmenund entsprechend agieren. Der von IVssComponent:GetBackupSucceeded zurückgegebene Wert ist nur TRUE, wenn alle explizit in die Komponente eingeschlossenen Dateien und alle implizit eingeschlossenen Unterkomponenten erfolgreich sichern wurden.
Wenn der Aufruf von CVssWriter::OnBackupComplete abgeschlossen ist, sollte der Anfordernde ein letztes Mal IVssBackupComponents::GatherWriterStatus und IVssBackupComponents::GetWriterStatus (für jeden Writer) aufrufen. Der Sitzungszustandsspeicher des Writers ist eine begrenzte Ressource, und Writer müssen schließlich Sitzungszustände wiederverwenden. Dieser Schritt markiert den Sicherungssitzungsstatus des Writers als abgeschlossen und benachrichtigt VSS, dass dieser Sicherungssitzungsslot von einem nachfolgenden Sicherungsvorgang wiederverwendet werden kann.
Aktionen des Anfordernden während der Sicherung von Dateien
Wie unter Übersicht über die Sicherungsermittlungsphaseerwähnt, sollten Sie die tatsächliche Liste der zu sichernden Dateien erst generieren, wenn die Schattenkopie abgeschlossen ist.
Das Geräteobjekt, das der Schattenkopie eines bestimmten Volumes entspricht, wird verwendet, um zugriff auf Dateien auf dem kopierten Schattenvolumen zu erhalten, nachdem die Schattenkopie abgeschlossen wurde. Das Geräteobjekt wird aus dem VSS _ SNAPSHOT _ PROP-Objekt erhalten, das von IVssBackupComponents::GetSnapshotProperties zurückgegeben wird. Jede Schattenkopie eines Schattenkopiesets hat ein eigenes Geräteobjekt.
Das Geräteobjekt und die Pfade, die aus den Spezifikationen des Writer-Metadatendokuments der Komponenten ermittelt wurden, werden dann verwendet, um Dateien für die Sicherung auszuwählen. Weitere Informationen finden Sie unter Requester Access to Shadow Copied Data (Zugriff des Anfordernden auf schattenkopierte Daten).
Welche Dateien in der Sicherungsliste enthalten sein werden, hängt von der Art der jeweiligen Sicherung, der Komponentenauswahl für die Sicherung und der logischen Pfadstruktur des Writers ab (siehe Working with Selectability for Backup).
Zusätzlich zu den dateien, die in den Komponenten angegeben sind, kann ein angegebener Writer auch Explizit ausgeschlossene Dateien haben. Der Dateiausschluss muss immer beachtet werden, unabhängig davon, welche Komponenten ausgewählt sind.
Wie unter Übersicht überdie Sicherungsermittlungsphase erwähnt, kann ein bereitgestellter Ordner oder Einparpunkt in einer Schattenkopie angezeigt und gesichert werden. Ein bereitgestellter Ordner oder Einparpunkt kann jedoch nicht auf dem schattenkopierten Volume durchlaufen werden (siehe Arbeiten mit bereitgestellten Ordnern und Parsepunkten).
Wenn der alternative Pfad, der von IVssWMFiledesc::GetAlternateLocation zurückgegeben wird, nicht leer ist, sollten Sie auch während eines Sicherungsvorgang mit Vorsicht darauf achten. Ein alternativer Pfad unterscheidet sich von einer alternativen Speicherortzuordnung, da er nur während Sicherungen verwendet wird, während eine alternative Speicherortzuordnung nur bei Wiederherstellungen verwendet wird.
In diesem Fall müssen die Daten nicht von ihrem normalen Speicherort (angegeben durch IVssWMFiledesc::GetPath),sondern von dem speicherort, der von IVssWMFiledesc::GetAlternateLocationzurückgegeben wird, sichern. Bei der Wiederherstellung sollte die Datei an ihren normalen Speicherort zurückgegeben werden. Weitere Informationen finden Sie unter Nicht standardmäßige Sicherungs- und Wiederherstellungsspeicherorte.
VSS legt keine Einschränkungen hinsichtlich des tatsächlichen Mechanismus zum Sichern von Daten auf einem Speichermedium oder der Auswahl dieses Mediums fest. Es wird jedoch empfohlen, die Dateien jeder Komponente jeder Writerinstanz als Einheit zu verarbeiten. Unter Generieren eines Sicherungssets finden Sie eine Erörterung der bewährten Methoden zum Generieren der Sicherungsdateiliste.
Der Erfolg oder Fehler beim Sichern von Dateien, die von einer bestimmten Komponente verwaltet werden, und (wenn sie einen Komponentensatz definiert),sollten ihre Unterkomponenten für eine bestimmte Writerinstanz im Sicherungskomponentendokument beibehalten werden, indem IVssBackupComponents::SetBackupSucceededaufgerufen wird. Wenn eine Datei, die von einer Komponente oder einem Komponentensatz verwaltet wird, nicht sichern kann, wird für die gesamte Komponente ein Fehler bezeichnet. Genaue Informationen darüber, welche Datei nicht sichern konnte, sollten immer protokolliert werden.
Entwickler können es hilfreich finden, einen Datensatz auf dem Sicherungsmedium zu speichern, auf dem dateien gesichert werden, in welchen Komponenten und Komponentensatz sie Mitglied waren, welche Spezifikationen sie hatten und wie ihre ursprünglichen Pfade waren. Es kann auch nützlich sein, Informationen wie die Komponentendefinition jedes Writers zu speichern. Dies kann den Abrufvorgang vereinfachen. Diese Details bleiben jedoch dem Entwickler der anfordernden Seite erhalten.
Da Writer das Sicherungskomponentendokument beim Behandeln des PostSnapshot-Ereignisses ändern können, das durch den Aufruf von IVssBackupComponents::D oSnapshotSetgeneriert wurde, sollte das Sicherungskomponentendokument erst nach Abschluss dieses asynchronen Aufrufs gespeichert werden.
Obwohl dies bereits früher der Fall sein kann, ist dies auch ein praktischer Zeitpunkt zum Speichern des Writer-Metadatendokuments.
Es ist sehr wichtig, dass sowohl das Sicherungskomponentendokument als auch die Writer-Metadatendokumente mithilfe von IVssBackupComponents::SaveAsXML und IVssExerklärWriterMetadata::SaveAsXMLbeibehalten werden. Wenn nicht, ist es nicht möglich, VSS während der Dateiwiederherstellung zu verwenden.
Zusätzlich zum Speichern der ursprünglichen Metadaten kann es für einige Sicherungsanwendungen nützlich sein, eine Kopie ihrer eigenen Liste der Dateien (in ihrem eigenen optimierten Format) und der zugehörigen Writer-, Komponenten-, Wiederherstellungsprozedur- und Speicherortinformationen zum späteren Abrufen auf dem Sicherungsmedium zu speichern. Eine solche Liste kann verwendet werden, um einige der Analyse und den Vergleich von Writer-Metadatendokumenten und sicherungskomponentendokumenten während der Wiederherstellung zu vermeiden.
Zu sichernde Volumes verfügen möglicherweise über Daten, die nicht von VSS Writer verwaltet werden. Diese Daten können und sollten aus dem kopierten Schattenvolumen in einem absturzeinheitlichen Zustand gespeichert werden. Weitere Informationen finden Sie unter Sicherungen ohne Writer-Beteiligung.