Partager via


Restauration des services de certificat à partir de la sauvegarde

Le scénario suivant montre comment les fonctions de sauvegarde des services de certificats peuvent être utilisées pour restaurer et récupérer une base de données des services de certificats et ses fichiers associés. Le processus de restauration implique l’écriture sur disque des fichiers contenus dans un jeu de sauvegarde. Vous pouvez restaurer plusieurs jeux de sauvegarde (une sauvegarde complète plus zéro ou plusieurs sauvegardes incrémentielles), mais toutes les restaurations doivent être terminées avant de commencer le processus de récupération. Le processus de récupération implique la relecture des fichiers journaux par certificate Services pour garantir la cohérence des bases de données et des fichiers journaux, garantissant ainsi l’intégrité de la base de données. Le scénario illustre les appels de fonction pour restaurer les jeux de sauvegarde et informer les services de certificats des paramètres de récupération.

Une sauvegarde complète existante de la base de données Des services de certificats doit exister avant d’implémenter ce scénario.

  1. Chargez la bibliothèque Certadm.dll en mémoire (en appelant LoadLibrary).
  2. Récupérez l’adresse de chacune des fonctions nécessaires dans Certadm.dll (au moyen de GetProcAddress). Utilisez ces adresses lors de l’appel des fonctions dans les étapes restantes.
  3. Appelez CertSrvIsServerOnline pour déterminer si les services de certificat sont en ligne. Si les services de certificats sont en cours d’exécution, arrêtez-le avant de continuer. Les services de certificat ne doivent pas être en ligne pour que les opérations de restauration réussissent.
  4. Appelez CertSrvRestorePrepare pour commencer une session de restauration. Le handle de contexte de sauvegarde des services de certificats résultant sera utilisé par plusieurs autres fonctions.
  5. Déterminez le chemin d’accès de l’emplacement de la base de données. Dans un scénario de sauvegarde, cette valeur aurait été disponible à partir d’un appel à CertSrvRestoreGetDatabaseLocations ; cette valeur doit avoir été stockée dans le cadre de la sauvegarde.
  6. Créez une carte de restauration spécifiant le nom de la base de données restaurée. Une structure de carte de restauration de base de données des services de certificats (CSEDB_RSTMAPW) est utilisée pour spécifier une carte de restauration. Définissez le membre pwszDatabaseName du CSEDB_RSTMAPW et le membre pwszNewDatabaseName du CSEDB_RSTMAPW sur l’emplacement de base de données déterminé à l’étape 5. Si vous le souhaitez, si la base de données restaurée doit avoir un nom différent de celui de la base de données de sauvegarde, définissez le membre pwszNewDatabaseName du CSEDB_RSTMAPW sur le nouveau nom de la base de données.
  7. Si vous souhaitez vous assurer que les modifications apportées à la base de données après l’exécution de la sauvegarde ne sont pas réappliquées une fois la restauration de la base de données terminée (dans le cadre de la récupération de base de données effectuée lors du prochain démarrage des services de certificats), supprimez les fichiers des répertoires de base de données et de journaux actifs du serveur cible.
  8. Copiez les fichiers contenus dans la sauvegarde complète dans la base de données active et les répertoires de journaux du serveur cible.
  9. Appelez CertSrvRestoreRegister pour inscrire une opération de restauration pour la sauvegarde complète. CertSrvRestoreRegister utilise la carte de restauration spécifiée à l’étape 6. CertSrvRestoreRegister spécifie également l’emplacement de la base de données de sauvegarde et des journaux. L’appel de CertSrvRestoreRegister forcera les services de certificat à tenter une opération de restauration la prochaine fois qu’elle sera démarrée. Il empêche également les services de certificat de traiter les demandes de certificat tant que la restauration n’est pas terminée.
  10. Appelez CertSrvRestoreRegisterComplete, terminant ainsi l’activité d’inscription qui a démarré à l’étape 8. Notez que l’inscription d’une opération de restauration est une instruction que les services de certificats doivent suivre au démarrage. la récupération réelle a lieu uniquement après le démarrage des services de certificats.
  11. Pour chaque sauvegarde incrémentielle à restaurer, copiez les fichiers contenus dans la sauvegarde incrémentielle dans le répertoire actif des journaux du serveur cible, puis appelez CertSrvRestoreRegister, suivi d’un appel à CertSrvRestoreRegisterComplete. L’inscription des sauvegardes incrémentielles pour la restauration peut se produire dans n’importe quel ordre, mais seul l’ensemble de fichiers d’une sauvegarde incrémentielle doit être copié sur le serveur avant chaque appel à CertSrvRestoreRegister.
  12. Copiez les fichiers dynamiques des services de certificats sur le serveur cible. Les fichiers dynamiques auraient été identifiés lors de la sauvegarde lorsque CertSrvBackupGetDynamicFileList a été appelé. Il peut être nécessaire d’arrêter le service de publication World Wide Web pour autoriser le remplacement des fichiers dynamiques.
  13. Appelez CertSrvRestoreEnd pour mettre fin à la session de restauration.
  14. Démarrez l’application Services de certificats manuellement (ou attendez le redémarrage suivant pour qu’elle démarre automatiquement). Au démarrage des services de certificats, il détermine si une opération de restauration a été inscrite ; si une opération de restauration a été inscrite, les services de certificats commencent la récupération. Les services de certificat ne traitent aucune demande de certificat tant que l’opération de récupération n’est pas terminée.

Notes

Lorsqu’une récupération est terminée, il est important d’effectuer une nouvelle sauvegarde complète de la base de données des services de certificats. Cela est nécessaire pour tronquer les fichiers journaux restaurés et établir un jeu de sauvegarde de base pour les restaurations ultérieures. Les sauvegardes effectuées après une restauration ne peuvent pas être mixtes avec les sauvegardes (complètes ou incrémentielles) effectuées avant la restauration ; autrement dit, une fois qu’une base de données de services de certificat a été restaurée et qu’elle est passée à un état ultérieur, vous ne pouvez pas utiliser les sauvegardes de prérestauration pour restaurer la base de données à cet état suivant.