Restauración de servicios de certificados desde la copia de seguridad

En el escenario siguiente se muestra cómo se pueden usar las funciones de copia de seguridad de Servicios de certificados para restaurar y recuperar una base de datos de Servicios de certificados y sus archivos asociados. El proceso de restauración implica escribir los archivos contenidos en un conjunto de copia de seguridad en el disco. Puede restaurar varios conjuntos de copia de seguridad (una copia de seguridad completa más cero o más copias de seguridad incrementales), pero todas las restauraciones deben completarse antes de comenzar el proceso de recuperación. El proceso de recuperación implica la reproducción de archivos de registro de Servicios de certificados para garantizar la coherencia de la base de datos y del archivo de registro, lo que garantiza la integridad de la base de datos. En el escenario se muestran las llamadas de función para restaurar los conjuntos de copia de seguridad e informar a Servicios de certificados de los parámetros de recuperación.

Debe existir una copia de seguridad completa existente de la base de datos de Servicios de certificados antes de implementar este escenario.

  1. Cargue la biblioteca de Certadm.dll en la memoria (llamando a LoadLibrary).
  2. Recupere la dirección de cada una de las funciones necesarias en Certadm.dll (mediante GetProcAddress). Use estas direcciones al llamar a las funciones en los pasos restantes.
  3. Llame a CertSrvIsServerOnline para determinar si Servicios de certificados está en línea. Si servicios de certificados se está ejecutando, cállalo antes de continuar. Servicios de certificados no debe estar en línea para que las operaciones de restauración se realicen correctamente.
  4. Llame a CertSrvRestorePrepare para iniciar una sesión de restauración. El controlador de contexto de copia de seguridad resultante de Servicios de certificados se usará en varias de las otras funciones.
  5. Determine la ruta de acceso de la ubicación de la base de datos. Durante un escenario de copia de seguridad, este valor habría estado disponible desde una llamada a CertSrvRestoreGetDatabaseLocations; este valor debe haberse almacenado como parte de la copia de seguridad.
  6. Cree una asignación de restauración que especifique el nombre de la base de datos restaurada. Se usa una estructura de mapa de restauración de base de datos de Servicios de certificados (CSEDB_RSTMAPW) para especificar un mapa de restauración. Establezca el miembro pwszDatabaseName del CSEDB_RSTMAPW y el miembro pwszNewDatabaseName del CSEDB_RSTMAPW en la ubicación de la base de datos determinada en el paso 5. Opcionalmente, si la base de datos restaurada tiene un nombre diferente al de la base de datos de copia de seguridad, establezca el miembro pwszNewDatabaseName del CSEDB_RSTMAPW en el nuevo nombre de la base de datos.
  7. Si desea asegurarse de que las modificaciones realizadas en la base de datos después de realizar la copia de seguridad no se vuelvan a aplicar una vez completada la restauración de la base de datos (como parte de la recuperación de la base de datos realizada durante el siguiente inicio de Servicios de certificados), elimine los archivos de la base de datos activa del servidor de destino y los directorios de registro.
  8. Copie los archivos contenidos en la copia de seguridad completa en los directorios de registro y la base de datos activa del servidor de destino.
  9. Llame a CertSrvRestoreRegister para registrar una operación de restauración para la copia de seguridad completa. CertSrvRestoreRegister usa la asignación de restauración especificada en el paso 6. CertSrvRestoreRegister también especifica la ubicación de la base de datos y los registros de copia de seguridad. La llamada a CertSrvRestoreRegister forzará a Certificate Services a intentar una operación de restauración la próxima vez que se inicie. También impide que servicios de certificados procesen solicitudes de certificado hasta que se complete la restauración.
  10. Llame a CertSrvRestoreRegisterComplete, finalizando así la actividad de registro que se inició en el paso 8. Tenga en cuenta que el registro de una operación de restauración es una instrucción para que los Servicios de certificados sigan cuando se inicia; la recuperación real se llevará a cabo solo después de iniciar Servicios de certificados.
  11. Para cada copia de seguridad incremental que se va a restaurar, copie los archivos contenidos en la copia de seguridad incremental en el directorio de registro activo del servidor de destino y, a continuación, llame a CertSrvRestoreRegister, seguido de una llamada a CertSrvRestoreRegisterComplete. El registro de las copias de seguridad incrementales para la restauración puede producirse en cualquier orden, pero solo se debe copiar el conjunto de archivos de una copia de seguridad incremental en el servidor antes de cada llamada a CertSrvRestoreRegister.
  12. Copie los archivos dinámicos de Servicios de certificados en el servidor de destino. Los archivos dinámicos se habrían identificado durante la copia de seguridad cuando se llamó a CertSrvBackupGetDynamicFileList . Puede ser necesario detener el servicio de publicación World Wide Web para permitir sobrescribir los archivos dinámicos.
  13. Llame a CertSrvRestoreEnd para finalizar la sesión de restauración.
  14. Inicie manualmente la aplicación Servicios de certificados (o espere hasta que se reinicie automáticamente el siguiente reinicio). Cuando se inicia Servicios de certificados, determinará si se ha registrado una operación de restauración; Si se ha registrado una operación de restauración, Servicios de certificados iniciará la recuperación. Servicios de certificados no procesará ninguna solicitud de certificado hasta que se complete la operación de recuperación.

Nota:

Cuando se completa una recuperación, es importante que realice una nueva copia de seguridad completa de la base de datos de Servicios de certificados. Esto es necesario para truncar los archivos de registro restaurados y para establecer un conjunto de copia de seguridad base para restauraciones futuras. Las copias de seguridad realizadas después de una restauración no se pueden mezclar con copias de seguridad (completas o incrementales) realizadas antes de la restauración; es decir, después de restaurar una base de datos de servicios de certificados y ha progresado a un estado posterior, no puede usar las copias de seguridad anteriores a la restauración para restaurar la base de datos a ese estado posterior.