Wiederherstellen von Zertifikatdiensten aus der Sicherung
Das folgende Szenario zeigt, wie die Sicherungsfunktionen von Zertifikatdiensten zum Wiederherstellen und Wiederherstellen einer Zertifikatdienstedatenbank und der zugehörigen Dateien verwendet werden können. Der Wiederherstellungsvorgang umfasst das Schreiben der in einem Sicherungssatz enthaltenen Dateien auf den Datenträger. Sie können mehrere Sicherungssätze wiederherstellen (eine vollständige Sicherung plus null oder mehr inkrementelle Sicherungen), aber alle Wiederherstellungen müssen vor Beginn des Wiederherstellungsvorgangs abgeschlossen sein. Der Wiederherstellungsprozess umfasst die Wiedergabe von Protokolldateien durch Zertifikatdienste, um die Konsistenz von Datenbank und Protokolldateien zu gewährleisten und so die Datenbankintegrität zu gewährleisten. Das Szenario veranschaulicht die Funktionsaufrufe, um die Sicherungssätze wiederherzustellen und Certificate Services über die Wiederherstellungsparameter zu informieren.
Vor der Implementierung dieses Szenarios muss eine vollständige Sicherung der Zertifikatdienste-Datenbank vorhanden sein.
- Laden Sie die Certadm.dll Bibliothek in den Arbeitsspeicher (durch Aufrufen von LoadLibrary).
- Rufen Sie die Adresse jeder der erforderlichen Funktionen in Certadm.dll (mithilfe von GetProcAddress) ab. Verwenden Sie diese Adressen beim Aufrufen der Funktionen in den verbleibenden Schritten.
- Rufen Sie CertSrvIsServerOnline auf, um festzustellen, ob Certificate Services online ist. Wenn Die Zertifikatdienste ausgeführt werden, fahren Sie sie herunter, bevor Sie fortfahren. Zertifikatdienste dürfen nicht online sein, damit die Wiederherstellungsvorgänge erfolgreich sind.
- Rufen Sie CertSrvRestorePrepare auf, um eine Wiederherstellungssitzung zu beginnen. Das resultierende Zertifikatdienste-Sicherungskontexthandle wird von mehreren anderen Funktionen verwendet.
- Bestimmen Sie den Pfad für den Datenbankspeicherort. Während eines Sicherungsszenarios wäre dieser Wert über einen Aufruf von CertSrvRestoreGetDatabaseLocations verfügbar gewesen. Dieser Wert sollte als Teil der Sicherung gespeichert werden.
- Erstellen Sie eine Wiederherstellungszuordnung, die den Namen der wiederhergestellten Datenbank angibt. Eine Certificate Services-Datenbankwiederherstellungsstruktur (CSEDB_RSTMAPW) wird verwendet, um eine Wiederherstellungszuordnung anzugeben. Legen Sie den pwszDatabaseName-Member des CSEDB_RSTMAPW und den pwszNewDatabaseName-Member des CSEDB_RSTMAPW auf den in Schritt 5 ermittelten Datenbankspeicherort fest. Wenn die wiederhergestellte Datenbank einen anderen Namen als die Sicherungsdatenbank haben soll, legen Sie optional den pwszNewDatabaseName-Member des CSEDB_RSTMAPW auf den neuen Datenbanknamen fest.
- Wenn Sie sicherstellen möchten, dass Änderungen an der Datenbank nach der Sicherung nicht erneut angewendet werden, nachdem die Datenbankwiederherstellung abgeschlossen ist (im Rahmen der Datenbankwiederherstellung, die beim nächsten Start der Zertifikatdienste ausgeführt wird), löschen Sie Dateien aus den aktiven Datenbank- und Protokollverzeichnissen des Zielservers.
- Kopieren Sie die Dateien in der vollständigen Sicherung in die aktiven Datenbank- und Protokollverzeichnisse des Zielservers.
- Rufen Sie CertSrvRestoreRegister auf, um einen Wiederherstellungsvorgang für die vollständige Sicherung zu registrieren. CertSrvRestoreRegister verwendet die in Schritt 6 angegebene Wiederherstellungszuordnung. CertSrvRestoreRegister gibt auch den Speicherort der Sicherungsdatenbank und der Protokolle an. Das Aufrufen von CertSrvRestoreRegister erzwingt den Zertifikatdiensten, beim nächsten Start einen Wiederherstellungsvorgang zu versuchen. Außerdem wird verhindert, dass Zertifikatdienste Zertifikatanforderungen verarbeiten, bis die Wiederherstellung abgeschlossen ist.
- Rufen Sie CertSrvRestoreRegisterComplete auf, und beenden Sie damit die Registrierungsaktivität, die in Schritt 8 gestartet wurde. Beachten Sie, dass die Registrierung eines Wiederherstellungsvorgangs eine Anweisung für Certificate Services ist, die beim Starten des Vorgangs befolgt werden muss. die tatsächliche Wiederherstellung erfolgt erst nach dem Start der Zertifikatdienste.
- Damit jede inkrementelle Sicherung wiederhergestellt wird, kopieren Sie die dateien in der inkrementellen Sicherung in das Active Log Directory des Zielservers, rufen Sie dann CertSrvRestoreRegister auf, gefolgt von einem Aufruf von CertSrvRestoreRegisterComplete. Die Registrierung der inkrementellen Sicherungen für die Wiederherstellung kann in beliebiger Reihenfolge erfolgen, aber vor jedem Aufruf von CertSrvRestoreRegister sollte nur der Dateisatz für eine inkrementelle Sicherung auf den Server kopiert werden.
- Kopieren Sie die dynamischen Certificate Services-Dateien auf den Zielserver. Die dynamischen Dateien wären während der Sicherung identifiziert worden, wenn CertSrvBackupGetDynamicFileList aufgerufen wurde. Es kann erforderlich sein, den World Wide Web Publishing Service zu beenden, um das Überschreiben der dynamischen Dateien zu ermöglichen.
- Rufen Sie CertSrvRestoreEnd auf, um die Wiederherstellungssitzung zu beenden.
- Starten Sie die Zertifikatdiensteanwendung manuell (oder warten Sie bis zum nächsten Neustart, bis sie automatisch gestartet wird). Wenn Certificate Services gestartet wird, wird bestimmt, ob ein Wiederherstellungsvorgang registriert wurde. wenn ein Wiederherstellungsvorgang registriert wurde, beginnt certificate Services mit der Wiederherstellung. Zertifikatdienste verarbeiten keine Zertifikatanforderungen, bis der Wiederherstellungsvorgang abgeschlossen ist.
Hinweis
Wenn eine Wiederherstellung abgeschlossen ist, ist es wichtig, dass Sie eine neue vollständige Sicherung der Certificate Services-Datenbank erstellen. Dies ist erforderlich, um die wiederhergestellten Protokolldateien abzuschneiden und einen Basissicherungssatz für zukünftige Wiederherstellungen einzurichten. Sicherungen, die nach einer Wiederherstellung ausgeführt werden, können nicht mit (vollständigen oder inkrementellen) Sicherungen gemischt werden, die vor der Wiederherstellung erstellt wurden. Das heißt, nachdem eine Zertifikatdienstdatenbank wiederhergestellt wurde und in einen nachfolgenden Zustand versetzt wurde, können Sie die Sicherungen vor der Wiederherstellung nicht verwenden, um die Datenbank in diesen nachfolgenden Zustand wiederherzustellen.