Freigeben über


Überprüfen der Sicherungsintegrität mithilfe der CHKSGFILES-API in Exchange 2013

Erfahren Sie, wie Sie die CHKSGFILES-API verwenden, um eine Sicherung des Exchange-Speichers in Exchange 2013 zu überprüfen.

Gilt für: Exchange Server 2013

Bei Sicherungsvorgängen, die vom Volume Shadow Copy Service (VSS) verwaltet werden, kann Exchange Server 2013 nicht jede Datenbankdatei vollständig lesen und ihre Prüfsummenintegrität überprüfen. Aus diesem Grund möchten Sie möglicherweise, dass Ihre Sicherungsanwendung die Integrität der Datenbank- und Transaktionsprotokolldatei überprüft. Es wird empfohlen, dass Ihre Sicherungsanwendung die physische Konsistenz des Schattenkopiensatzes überprüft, bevor sie den Exchange Writer darüber informiert, dass die Sicherung abgeschlossen ist. Nach einer erfolgreichen Sicherung aktualisiert der Exchange-Speicher die Header der gesicherten Datenbanken, um die letzten erfolgreichen Sicherungszeiten widerzuspiegeln, und entfernt Transaktionsprotokolle vom Server, die nicht mehr zum Rollforward der letzten erfolgreichen Sicherung erforderlich sind.

Voraussetzungen für die Überprüfung der Sicherungsintegrität

Bevor Ihre Anwendung die Integrität Ihrer Sicherung überprüfen kann, benötigen Sie Zugriff auf Folgendes:

  • Dateien aus Ihrer Exchange-Speichersicherung.
  • Eine Version von Visual Studio ab Visual Studio 2010.
  • Die CHKSGFILES-Bibliothek und Headerdateien. Sie können die Bibliotheks- und Headerdateien aus dem Microsoft Download Center herunterladen.

Überprüfen der Sicherungsintegrität

Im folgenden Verfahren wird beschrieben, wie Sie die Datenintegrität in Ihrer Sicherungs- und Wiederherstellungsanwendung überprüfen.

So überprüfen Sie die Sicherungsintegrität

  1. Erstellen Sie eine neue Instanz der CChkSGFiles-Klasse .

    CCheckSGFiles::ERRerr = CCheckSGFiles::errSuccess;
    ULONGiDbError = (ULONG)CCheckSGFiles::iDbInvalid;
    CCheckSGFiles * const pcchecksgfiles = CCheckSGFiles::New();
    if ( NULL == pcchecksgfiles )
    {
      err = CCheckSGFiles::errOutOfMemory;
      printf( "ERROR: Could not allocate CCheckSGFiles object.\n" );
      goto HandleError;
    }
    

    In den ersten Codezeilen wird ein Fehlerobjekt erstellt, dessen Anfangswert auf success festgelegt, und es wird ein Objekt erstellt, das die Gültigkeit der Datenbank überprüft. Anschließend erstellt die Funktion CChkSGFiles.New eine neue Instanz der CChkSGFiles-Klasse . Eine schnelle Überprüfung des neuen Objekts gibt an, ob Beim Erstellen der neuen Instanz Probleme aufgetreten sind.

  2. Initialisieren Sie das CChkSGFiles-Objekt .

    Call( pcchecksgfiles->ErrInit(
    rgwszDb,
    cDb,
    wszLogPath,
    wszBaseName ) );
    

    Weitere Informationen zu den Parametern finden Sie unter CChkSGFiles.ErrInit-Funktion.

  3. Verwenden Sie die Funktion CChkSGFiles.ErrCheckDbHeaders , um die Datenbankintegrität zu überprüfen, indem Sie die Datenbankheader überprüfen.

    err = pcchecksgfiles->ErrCheckDbHeaders(
    &cbDbPageSize,
    &cDbHeaderPages,
    &iDbError );
    if ( CCheckSGFiles::errSuccess != err )
    {
    if ( CCheckSGFiles::iDbInvalid != iDbError )
    {
    printf(
    "ERROR: Database header validation for '%S' failed with error %d (0x%x)\n",
    rgwszDb[ iDbError ],
    err,
    err );
    }
    goto HandleError;
    }
    

    Weitere Informationen zu den Parametern finden Sie unter CChkSGFiles.ErrCheckDbHeaders-Funktion.

  4. Behandeln Sie Fehler, und verwenden Sie die Funktion CChkSGFiles.Delete , um die CChkSGFiles-Klasse aus dem Arbeitsspeicher zu entfernen.

    HandleError:
    CCheckSGFiles::Delete( pcchecksgfiles );  
    

Siehe auch