Generación de un conjunto de restauración
Un conjunto de restauración es una lista de todos los archivos que se van a restaurar y las ubicaciones a las que se restaurarán.
Al generar la lista de archivos de copia de seguridad (consulte Generación de un conjunto de copia de seguridad), un algoritmo para determinar qué archivos se van a restaurar y dónde restaurarlos debe continuar la instancia de escritor por instancia de escritor y por componente para cada instancia de escritor.
Es necesario asociar cada archivo en el medio de copia de seguridad con el componente que lo administra. También es necesario obtener el método de restauración del componente de administración, así como la información de destino de restauración del archivo y sus asignaciones de ubicación alternativas (si las hay).
Algunos archivos también pueden requerir operaciones de archivos parciales o destinos dirigidos para la restauración.
Mediante el examen de la capacidad de selección de los componentes para las rutas de acceso lógicas y de copia de seguridad (consulte Working with Selectability and Logical Paths), un solicitante puede determinar la estructura de componentes de la operación de copia de seguridad que va a restaurar.
Con la estructura de componentes de la copia de seguridad establecida, el solicitante puede obtener la información del conjunto de archivos de cada componente (especificación de archivo, ruta de acceso y marca de recursividad). Después, un solicitante puede generar un conjunto de restauración.
Los archivos que requieren archivos parciales o destinos dirigidos proporcionan sus propias instrucciones de restauración detalladas (consulte Ubicaciones de copia de seguridad y restauración no predeterminadas), que se pueden agregar al conjunto de restauración.
Un mecanismo típico para generar un conjunto de restauración para archivos que no participan en operaciones de archivos parciales o destinos dirigidos puede continuar haciendo lo siguiente:
Obtenga una lista de archivos en el medio de copia de seguridad, incluidas sus rutas de acceso originales.
Identifique la clase y el componente de escritor para cada archivo del medio de copia de seguridad haciendo lo siguiente:
Para cada escritor, obtenga información de componentes (IVssWMComponent) llamando a IVssExamineWriterMetadata::GetComponent en todos sus componentes.
Para cada componente, obtenga información del descriptor de archivo (IVssWMFiledesc) para cada conjunto de archivos que contiene el componente (según los tipos de datos que contiene el componente mediante una llamada a IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile e IVssWMComponent::GetDatabaseLogFile.
Compare la información de nombre y ruta de acceso del archivo que devuelve la información de ruta de acceso contenida en el descriptor de archivo para cada conjunto de archivos de un componente (devuelto por IVssWMFiledesc::GetPath, IVssWMFiledesc::GetFilespec e IVssWMFiledesc::GetRecursive) en la información de ruta de acceso de los archivos almacenados para determinar si el archivo forma parte del componente.
Nota
Debe omitir cualquier información de ubicación alternativa en el descriptor de archivo recuperado de un componente encontrado en un documento de metadatos de escritor almacenado (es decir, IVssWMFiledesc::GetAlternateLocation no devuelve NULL). Esta ubicación alternativa es la ruta de acceso alternativa, que solo se usa durante la copia de seguridad.
Obtenga información de asignación alternativa para cada archivo en el medio de copia de seguridad:
- Las asignaciones de archivos alternativas se almacenan en el sistema de escritura, no en el nivel de componente, y se obtienen del objeto IVssWMFiledesc devuelto por IVssExamineWriterMetadata::GetAlternateLocationMapping.
- Puede determinar si un archivo determinado tiene una asignación de ubicación alternativa comprobando la ruta de acceso y el nombre del archivo en la ruta de acceso y la especificación de archivo contenidas en la asignación de ubicación alternativa devuelta por IVssExamineWriterMetadata::GetAlternateLocationMapping, a través de IVssWMFiledesc::GetPath, IVssWMFiledesc::GetRecursive. (Si se usó una ruta de acceso alternativa durante la copia de seguridad, esa información debe omitirse durante esta comprobación al procesar una restauración).
- Si un archivo y un descriptor de archivo de asignaciones de ubicación alternativas coinciden, use el método IVssWMFiledesc::GetAlternateLocation del objeto IVssWMFiledesc devuelto por IVssExamineWriterMetadata::GetAlternateLocationMapping para buscar la ubicación alternativa a la que puede restaurar el archivo.
- La asignación de ubicación alternativa obtenida de esta manera no estará necesariamente de acuerdo con la devuelta del documento de componentes de copia de seguridad por IVssComponent::GetAlternateLocationMapping. El valor IVssWMFiledesc::GetAlternateLocation no está en blanco solo si se usa la asignación de ubicación alternativa para un archivo.
Con esta información de archivos y componentes, se puede consultar el documento componentes de copia de seguridad para obtener información sobre los destinos de restauración, las opciones y las nuevas ubicaciones de restauración para cada archivo. Esta información se puede combinar con la lista de archivos, componentes y ubicaciones alternativas.
Los archivos no protegidos por escritores se pueden seleccionar de forma coherente con las operaciones de restauración tradicionales.
En este momento, un solicitante debe tener una lista de todos los archivos que necesita restaurar, junto con instrucciones sobre cómo restaurarlos, y puede comenzar a restaurar archivos basándose en:
- Tanto si las asignaciones de ubicación alternativas como la ubicación del archivo original se usarán como destino para la restauración dependerán de la presencia o ausencia de un archivo en esa ubicación de destino y la configuración de componentes de VSS_RESTORE_TARGET y VSS_RESTOREMETHOD_ENUM (consulte Ubicaciones de copia de seguridad y restauración no predeterminadas).
- Si un intento de restauración se realiza correctamente dependerá de problemas como los permisos de acceso del destino, si los archivos de destino están bloqueados y otros problemas convencionales implicados en la restauración de archivos.
- El éxito o error de restauración de un componente determinado para una instancia de escritor determinada debe conservarse en el documento componentes de copia de seguridad llamando a IVssBackupComponents::SetFileRestoreStatus. Esto hará que la información sea accesible para los escritores cuando procesen el evento PostRestore.
- Si un archivo se restaura en una asignación de ubicación alternativa, el solicitante debe llamar a IVssBackupComponents::AddAlternativeLocationMapping. Esto permitirá a los escritores determinar si sus archivos se han restaurado en ubicaciones alternativas a través de IVssComponent::GetAlternateLocationMapping.
- Los solicitantes pueden encontrar que es conveniente restaurar archivos en ubicaciones completamente nuevas. Esto es aceptable, pero el solicitante debe indicarlo al escritor mediante el método IVssBackupComponents::AddNewTarget .