Copia de seguridad de servicios de certificados

A continuación se muestra un escenario que muestra cómo puede usar las funciones de copia de seguridad de Servicios de certificados para realizar copias de seguridad de una base de datos de Certificate Services y sus archivos asociados.

  1. Cargue la biblioteca de Certadm.dll en 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 Certificate Services está en línea. Los Servicios de certificados deben estar en línea para que las operaciones de copia de seguridad se realicen correctamente.
  4. Llame a CertSrvBackupPrepare para iniciar una sesión de copia de seguridad. Muchos de las demás funciones de copia de seguridad usarán el identificador de contexto de copia de seguridad resultante de Servicios de certificados.
  5. Llame a CertSrvRestoreGetDatabaseLocations para determinar la asignación de restauración. El mapa de restauración contiene las rutas de acceso que se usarán al restaurar la copia de seguridad. Guarde la información recuperada por CertSrvRestoreGetDatabaseLocations en una ubicación específica de la aplicación.
  6. Llame a CertSrvBackupGetDatabaseNames para determinar los nombres de los archivos de base de datos de los que se va a realizar la copia de seguridad. Para cada uno de estos archivos, ejecute los pasos del 7 al 9.
  7. Llame a CertSrvBackupOpenFile para abrir el archivo para la copia de seguridad.
  8. Llame a CertSrvBackupRead para leer una parte de bytes del archivo y, a continuación, llame a una rutina específica de la aplicación para almacenar los bytes en un medio de copia de seguridad. Repita este paso hasta que se realice una copia de seguridad de todos los bytes del archivo.
  9. Llame a CertSrvBackupClose para cerrar el archivo.
  10. Llame a CertSrvBackupGetBackupLogs para determinar los nombres de los archivos de registro que se van a realizar en la copia de seguridad. Para cada uno de estos archivos, ejecute los pasos del 7 al 9.
  11. Llame a CertSrvBackupTruncateLogs para truncar los archivos de registro de los que se ha realizado una copia de seguridad en los pasos 6 y 10. Este paso es opcional; Sin embargo, llame a CertSrvBackupTruncateLogs solo si se ha realizado una copia de seguridad de todos los archivos devueltos por CertSrvBackupGetDatabaseNames y CertSrvBackupGetBackupLogs (de lo contrario, se producirá un error en la operación de restauración). Consulte la página de referencia CertSrvBackupTruncateLogs para obtener más información.
  12. Llame a CertSrvBackupGetDynamicFileList para determinar los nombres de los archivos que no son de base de datos que se van a realizar copias de seguridad. Estos archivos solo se identifican mediante la función y se deben realizar copias de seguridad por algún otro medio.
  13. Realice una copia de seguridad de los archivos dinámicos identificados en el paso 12 mediante rutinas independientes de Certadm.dll.
  14. Llame a CertSrvBackupEnd para finalizar la sesión de copia de seguridad.
  15. Llame a CertSrvBackupFree según sea necesario para liberar búferes asignados por determinadas funciones de copia de seguridad de Certificate Services. Las llamadas a CertSrvBackupGetBackupLogs, CertSrvBackupGetDatabaseNames y CertSrvBackupGetDynamicFileList asignarán búferes que se pueden liberar mediante una llamada a CertSrvBackupFree.
  16. Libere los recursos de Certadm.dll llamando a FreeLibrary.

Para obtener información sobre los privilegios necesarios para realizar copias de seguridad de la base de datos de Servicios de certificados y los archivos asociados, vea Establecer los privilegios de copia de seguridad y restauración.