Rol de solicitante en copias de seguridad incrementales y diferenciales de VSS

Para admitir una operación de copia de seguridad incremental o diferencial , un solicitante debe hacer lo siguiente:

  1. Determine qué grado de compatibilidad con el escritor está disponible (mediante IVssBackupComponents::GetWriterMetadata para obtener acceso a la información en documentos de metadatos del escritor), en particular, determinar qué esquema de copia de seguridad se admite (VSS_BACKUP_SCHEMA).
  2. Establezca un estado de copia de seguridad adecuado.
  3. Obtenga las especificaciones de nivel de archivo y conjunto de archivos para una copia de seguridad incremental o diferencial.
  4. Realice la copia de seguridad.

Determinación del solicitante de compatibilidad y configuración incrementales y diferenciales

Un solicitante debe obtener información sobre la compatibilidad con el sistema de escritura antes de seleccionar los componentes para su inclusión en una copia de seguridad incremental o diferencial o establecer su propio estado.

Determinar la compatibilidad con el sistema de escritura

Un solicitante determina si un escritor determinado admite copias de seguridad incrementales o diferenciales de VSS recuperando la máscara de esquema de copia de seguridad del escritor mediante el método IVssExamineWriterMetadata::GetBackupSchema .

La máscara de esquema de copia de seguridad de un escritor que admita técnicas incrementales o diferenciales de VSS contendrá VSS_BS_INCREMENTAL o VSS_BS_DIFFERENTIAL, o ambos. Los escritores también pueden indicar restricciones en su participación con la marca VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL . (Consulte VSS_BACKUP_SCHEMA para obtener más información sobre los esquemas de copia de seguridad).

Establecer el estado de copia de seguridad del solicitante

Un solicitante indica que una copia de seguridad es una copia de seguridad incremental o diferencial estableciendo un tipo de copia de seguridad en VSS_BT_INCREMENTAL o VSS_BT_DIFFERENTIAL mediante el método IVssBackupComponents::SetBackupState antes de generar un evento PrepareForBackup .

El método IVssBackupComponents::SetBackupState también se usa para indicar si el solicitante proporciona compatibilidad parcial con archivos, que se usa con frecuencia para implementar determinadas operaciones incrementales de copia de seguridad y restauración.

Obtención de especificaciones de escritor para copias de seguridad incrementales y diferenciales

La información de especificación de copia de seguridad de archivos de nivel de conjunto de archivos (VSS_FILE_SPEC_BACKUP_TYPE) contenida en el documento de metadatos del escritor de cada escritor está disponible para su examen después de la devolución correcta de IVssBackupComponents::GatherWriterMetadata.

Sin embargo, un escritor puede agregar archivos diferentes o solicitar compatibilidad parcial con archivos hasta que se controle correctamente el evento PostSnapshot .

La especificación de compatibilidad parcial de archivos y archivos diferenciados puede invalidar el tipo de copia de seguridad de especificación de archivo, por lo que es posible que los solicitantes quieran aplazar un análisis completo de todas las especificaciones del escritor sobre las copias de seguridad incrementales y diferenciales hasta después de la devolución correcta de IVssBackupComponents::P repareForBackup.

Obtención de información de especificación de copia de seguridad de archivos

La información de especificación de copia de seguridad de archivos de nivel de conjunto de archivos (VSS_FILE_SPEC_BACKUP_TYPE) se encuentra en el documento de metadatos del escritor de cada escritor y se puede examinar inmediatamente después de la devolución correcta de IVssBackupComponents::GatherWriterMetadata.

Los solicitantes deben obtener máscaras de especificación de copia de seguridad de archivos (VSS_FILE_SPEC_BACKUP_TYPE) para cada conjunto de archivos de cada uno de los componentes de un escritor que se incluirán en la copia de seguridad incremental o diferencial, independientemente de si el componente se incluyó explícita o implícitamente .

Un solicitante puede determinar qué documento de metadatos de escritor se debe consultar mediante IVssBackupComponents::GetWriterComponentsCount e IVssBackupComponents::GetWriterComponents. La instancia de la interfaz IVssWriterComponentsExt devuelta por IVssBackupComponents::GetWriterComponents proporciona información de escritor a través del método IVssWriterComponentsExt::GetWriterInfo .

El solicitante obtiene información de componentes a través de instancias de la interfaz IVssWMComponent correspondiente a un componente incluido administrado por un escritor determinado mediante IVssExamineWriterMetadata::GetComponent.

La información sobre los conjuntos de archivos administrados por el componente correspondiente a la interfaz IVssWMComponent se obtiene mediante llamadas a IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile o IVssWMComponent::GetDatabaseLogFile (según corresponda).

Estas llamadas pueden devolver instancias de la interfaz IVssWMFiledesc para cada uno de los conjuntos de archivos de un componente.

El tipo de copia de seguridad de especificación de archivo de un conjunto de archivos se obtiene llamando a IVssWMFiledesc::GetBackupTypeMask.

Obtención de información de archivo parcial y archivo diferente

Un solicitante obtiene información parcial del archivo y del archivo diferente a través de la interfaz IVssComponent .

Un solicitante puede iterar por todos los escritores incluidos en una copia de seguridad mediante IVssBackupComponents::GetWriterComponentsCount e IVssBackupComponents::GetWriterComponents.

La instancia de una interfaz IVssWriterComponentsExt devuelta por IVssBackupComponents::GetWriterComponents proporciona acceso a todas las instancias de la interfaz IVssComponent correspondiente a los componentes incluidos explícitamente de un escritor determinado a través de los métodos IVssWriterComponentsExt::GetComponent y IVssWriterComponentsExt::GetComponentCount .

Un solicitante deberá recorrer todas las instancias de IVssComponent para todos los escritores cuyo esquema admita la copia de seguridad incremental o diferencial, es decir, escritores cuya máscara de esquema de copia de seguridad, tal y como devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_INCREMENTAL cuando el tipo de copia de seguridad es VSS_BT_INCREMENTAL o VSS_BS_DIFFERENTIAL cuando se VSS_BS_DIFFERENTIAL el tipo de copia de seguridad.

La información parcial del archivo se obtiene llamando a IVssComponent::GetPartialFileCount e IVssComponent::GetPartialFile (vea Trabajar con archivos parciales).

Para los escritores que admiten operaciones de copia de seguridad sobre la base de los últimos datos de modificación de un archivo (escritores cuya máscara de esquema de copia de seguridad devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_LAST_MODIFY), se obtiene información de archivo diferenciada mediante una llamada a IVssComponent::GetDifferencedFilesCount e IVssComponent::GetDifferencedFile.

Tenga en cuenta que los archivos diferentes pueden ser nuevos, es decir, archivos que no son miembros de ningún conjunto de archivos actualmente en el documento de metadatos del escritor determinado.

Los solicitantes no deben encontrar los archivos incluidos para las operaciones de archivos parciales y como archivos diferentes. Si un solicitante encuentra tal circunstancia, debe devolver y registrar un error de escritor.

Un solicitante todavía puede optar por continuar con la copia de seguridad de los archivos del escritor problemático, pero en ese caso debe hacerlo según la especificación encontrada en la información de archivo diferente.

Implementación de copias de seguridad incrementales o diferenciales

Antes de implementar una copia de seguridad, los solicitantes deben tener información sobre qué escritores admiten una copia de seguridad incremental o diferencial , todas las operaciones parciales de archivos solicitadas, todos los archivos diferentes y el tipo de copia de seguridad de especificación de archivo de todos los demás archivos.

Escritores no compatibles

Los escritores cuyo esquema no admite la copia de seguridad incremental o diferencial (escritores cuya máscara de esquema de copia de seguridad devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_INCREMENTAL cuando el tipo de copia de seguridad se VSS_BT_INCREMENTAL o no incluye VSS_BS_DIFFERENTIAL cuando el tipo de copia de seguridad es VSS_BS_DIFFERENTIAL) no puede proporcionar soporte directo a una operación de copia de seguridad incremental o diferencial.

Esto no significa necesariamente que los datos de los escritores no participen en una operación incremental o diferencial de copia de seguridad. Sin embargo, la elección de lo que se debe hacer es a discreción del solicitante. El solicitante puede realizar cualquiera de las acciones siguientes:

  • Haga una copia de seguridad de ningún archivo que pertenezca a los escritores no compatibles (indique claramente esto al usuario)
  • Copia de seguridad de todos los archivos de escritores no compatibles
  • Realice una copia de seguridad incremental mediante los datos del sistema de archivos y los propios registros de historial del solicitante.

La última alternativa debe usarse con mucho cuidado y solo si el solicitante entiende si los escritores implicados pueden admitir copias de seguridad incrementales o diferenciales y la restauración de datos independientemente del mecanismo vsS.

Escritores auxiliares

Un solicitante debe procesar (en orden) todos los archivos diferentes de un escritor, luego controlar las solicitudes de archivo parciales y, a continuación, realizar copias de seguridad de los archivos restantes según su tipo de copia de seguridad de especificación de archivo (VSS_FILE_SPEC_BACKUP_TYPE).

  1. Copia de seguridad de archivos con diferencia:

    Para los escritores que admiten operaciones de copia de seguridad sobre la base de los datos de última modificación (escritores cuya máscara de esquema de copia de seguridad devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_LAST_MODIFY), un solicitante usa la ruta de acceso, la especificación de archivo y la información de marca de recursividad devuelta por IVssComponent::GetDifferencedFile para generar una lista de archivos como candidatos para la copia de seguridad incremental o la restauración.

    IVssComponent::GetDifferencedFile también puede devolver una hora de última modificación (expresada como una estructura FILETIME ).

    Si la hora de la última modificación proporcionada por el escritor es distinto de cero, el solicitante la usa como base (en lugar de la información del sistema de archivos o los propios datos almacenados del solicitante) para determinar si el archivo debe incluirse en la copia de seguridad incremental o diferencial .

    Por ejemplo, si la hora de la última modificación de un archivo tal como la devolvió el escritor era:

    • Después de la última copia de seguridad completa, el archivo debe incluirse tanto en copias de seguridad incrementales como diferenciales.
    • Después de la última copia de seguridad completa, pero antes de la última copia de seguridad incremental, el archivo debe incluirse en operaciones de copia de seguridad incrementales, pero no en copias de seguridad diferenciales.

    Si la hora de la última modificación proporcionada por el escritor es cero, el solicitante debe usar la información del sistema de archivos y sus propios datos almacenados para determinar el tiempo de modificación del archivo diferente.

  2. Uso de operaciones de archivos parciales:

    Si un escritor ha solicitado que se realice una copia de seguridad de un archivo mediante una operación de archivo parcial, el solicitante usa la información de desplazamiento del archivo para guardar los segmentos de archivo indicados en medios de copia de seguridad. (Vea Trabajar con archivos parciales para obtener más información sobre las operaciones de archivos parciales).

    Como se indicó anteriormente, un escritor no debe designar un archivo como un archivo diferente y como participante en una operación de archivo parcial. Si un solicitante encuentra tal circunstancia, debe devolver y registrar un error de escritor.

    Un solicitante todavía puede optar por continuar con la copia de seguridad de los archivos del escritor problemático, pero en ese caso debe hacerlo según la especificación encontrada en la información de archivo diferente.

  3. Trabajar con el tipo de copia de seguridad especificación de archivo:

    Después de haber procesado todos los archivos diferentes y las operaciones parciales de archivos, el solicitante ahora procesa todos los archivos restantes en su conjunto de copia de seguridad basándose en su tipo de copia de seguridad de especificación de archivo (VSS_FILE_SPEC_BACKUP_TYPE).

    Hay tres valores de "copia de seguridad necesarios" de la enumeración VSS_FILE_SPEC_BACKUP_TYPE que afectan a las copias de seguridad diferenciales e incrementales:

    • VSS_FSBT_ALL_BACKUP_REQUIRED
    • VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED

    Hay tres valores de "instantánea requerida":

    • VSS_FSBT_ALL_SNAPSHOT_REQUIRED
    • VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED

    Los conjuntos de archivos etiquetados con un tipo de copia de seguridad de especificación de archivo "se requiere instantánea" indican que un solicitante necesita copiar datos de una instantánea al realizar operaciones de copia de seguridad INCREMENTAL, DIFERENCIAL o ALL (que incluye operaciones incrementales y diferenciales).

    La marca "copia de seguridad requerida", aplicada a las operaciones INCREMENTAL, DIFERENCIAL o ALL de copia de seguridad, indica que el escritor espera que haya una copia de la versión actual del archivo establecida para que esté disponible después de la restauración de cualquier operación de copia de seguridad. Normalmente, esto significa que si un conjunto de archivos se etiqueta con "copia de seguridad necesaria", un solicitante copiará todos sus miembros en medios de copia de seguridad durante una copia de seguridad incremental o diferencial, independientemente de cuándo se produjo su copia de seguridad o modificación por última vez.

    De forma predeterminada, los conjuntos de archivos se agregan a los componentes con un tipo de copia de seguridad de especificación de archivo de VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED. Por lo tanto, a menos que un escritor establezca explícitamente el tipo de copia de seguridad de especificación de archivo de lo contrario, los solicitantes deberán copiar esos archivos no administrados por operaciones parciales de archivos o archivos designados en la mayoría de los conjuntos de archivos normalmente se copiarán en su totalidad en los medios de copia de seguridad.

Sellos de copia de seguridad

Los escritores que admiten stamps de copia de seguridad (VSS_BS_TIMESTAMP) pueden optar por generar información de stamps de copia de seguridad que se usará para admitir futuras operaciones incrementales y diferenciales de copia de seguridad y restauración.

El formato y la información contenidas en cadenas que contienen información de marca de copia de seguridad son privadas para el escritor que los genera; el solicitante no sabe cómo procesar esta información.

Los escritores auxiliares almacenan la marca de copia de seguridad en el documento componentes de copia de seguridad como una cadena mediante el método IVssComponent::SetBackupStamp .

El rol del solicitante en el control de la información de la marca de seguridad es (si existe) para que esté disponible para el escritor mediante una llamada a IVssBackupComponents::SetPreviousBackupStamp en una operación futura de copia de seguridad o restauración.