Compartir a través de


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

Para admitir una incremental o operación diferencial de copia de seguridad, 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, determine qué esquema de copia de seguridad se admite (VSS_BACKUP_SCHEMA).
  2. Establezca un estado de copia de seguridad adecuado.
  3. Obtenga 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 escritor 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 escritor

Un solicitante determina si un escritor determinado admite copias de seguridad incrementales o diferenciales de VSS mediante la recuperación de 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 admite técnicas incrementales o diferenciales de VSS contendrá VSS_BS_INCREMENTAL o VSS_BS_DIFFERENTIAL, o ambas. Los escritores también pueden indicar restricciones en su participación con la bandera VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL. (Consulte VSS_BACKUP_SCHEMA para obtener más información sobre los esquemas de copia de seguridad).

configuración del 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 con archivos parciales, 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 con archivos parciales hasta que se controle correctamente el evento PostSnapshot.

La especificación de compatibilidad con archivos y archivos parciales diferenciadas 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.

obtener 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 explícitamente o implícitamente incluido.

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

El solicitante obtiene información de componente a través de instancias del IVssWMComponent interfaz 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::GetDatabaseFileo 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.

obtener información parcial del archivo y del archivo diferente

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

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

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

Un solicitante deberá pasar por 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 devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_INCREMENTAL cuando el tipo de copia de seguridad es VSS_BT_INCREMENTAL, o VSS_BS_DIFFERENTIAL cuando el tipo de copia de seguridad es VSS_BS_DIFFERENTIAL.

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

Para escritores que admiten operaciones de copia de seguridad basándose en los datos de última modificación de un archivo (escritores cuya máscara de esquema de copia de seguridad, tal y como devuelve IVssExamineWriterMetadata::GetBackupSchema, incluye VSS_BS_LAST_MODIFY), la información de archivo diferenciada se obtiene llamando a IVssComponent::GetDifferencedFilesCount y IVssComponent::GetDifferencedFile.

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

Los solicitantes no deben encontrar los archivos incluidos para las operaciones parciales de archivos y como archivos con diferencias. 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 diferenciada.

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 un incremental o copia de seguridad diferencial, todas las operaciones parciales de archivo solicitadas, todos los archivos diferenciados 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 es VSS_BT_INCREMENTAL o no incluye VSS_BS_DIFFERENTIAL cuando el tipo de copia de seguridad es VSS_BS_DIFFERENTIAL) no puede proporcionar ninguna compatibilidad directa con una operación incremental o diferencial de copia de seguridad.

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

  • 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 del historial del solicitante.

La última alternativa debe usarse con gran 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 de apoyo

Un solicitante debe procesar (en orden) todos los archivos diferenciados de un escritor, luego controlar cualquier solicitudes de de archivos parciales y, a continuación, hacer una copia 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 diferencias:

    Para escritores que admiten operaciones de copia de seguridad sobre la base de los últimos datos de modificación (escritores cuya máscara de esquema de copia de seguridad, tal y como 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 o restauración incrementales.

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

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

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

    • Después de la última copia de seguridad completa, el archivo debe incluirse en copias de seguridad incrementales y 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 última hora de 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 con diferencia.

  2. mediante operaciones parciales de archivos:

    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 los medios de copia de seguridad. (Consulte 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 diferenciada.

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

    Después de procesar 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 de "instantánea necesaria" indican que un solicitante debe copiar datos de una instantánea al realizar operaciones incrementales, DIFERENCIALes o ALL (que incluyen operaciones incrementales y diferenciales).

    La marca "backup required", aplicada a las operaciones INCREMENTAL, DIFERENCIAL o ALL backup, indica que el escritor espera que una copia de la versión actual del archivo establecida 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 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 de

Los escritores que admiten sellos de copia de seguridad (VSS_BS_TIMESTAMP) pueden optar por generar información de stamp 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 para controlar la información de la marca de copia de seguridad es (si existe) para que esté disponible para el escritor llamando a IVssBackupComponents::SetPreviousBackupStamp en una operación futura de copia de seguridad o restauración.