Introducción a la inicialización de copia de seguridad
Esta fase de la copia de seguridad inicializa tanto el escritor como el solicitante, rellenando sus estructuras de datos internas, especificando la copia de seguridad y establece la comunicación del escritor o solicitante a través de la llamada necesaria a IVssBackupComponents::GatherWriterMetadata. Para obtener más información, vea Información general sobre el procesamiento de una copia de seguridad en VSS.
En la tabla siguiente se muestra la secuencia de acciones y eventos necesarios para la inicialización de copia de seguridad.
Acción del solicitante | Evento | Acción del escritor |
---|---|---|
Crea una interfaz IVssBackupComponents e inicializa para administrar una copia de seguridad (consulte CreateVssBackupComponents, IVssBackupComponents::InitializeForBackup) y, opcionalmente, habilitar o deshabilitar escritores en el sistema. | None | None |
Opcionalmente, establezca el contexto para las operaciones de instantáneas y consulte opcionalmente el sistema sobre los proveedores y las instantáneas que admite (consulte IVssBackupComponents::SetContext, IVssBackupComponents::Query). | None | None |
El solicitante puede proporcionar información adicional sobre el control de las operaciones de copia de seguridad y restauración (consulte IVssBackupComponents::SetBackupState) | None | None |
Inicia el contacto asincrónico con escritores (consulte IVssBackupComponents::GatherWriterMetadata) | Identificar | Crea un documento de metadatos de escritor (vea Trabajar con el documento de metadatos del escritor, CVssWriter::OnIdentify, IVssCreateWriterMetadata) |
Acciones del solicitante durante la inicialización de copia de seguridad
Un objeto IVssBackupComponents solo se puede usar para una copia de seguridad. Por lo tanto, un solicitante debe continuar hasta el final de la copia de seguridad, incluida la liberación de la interfaz IVssBackupComponents . Si la copia de seguridad debe finalizar prematuramente, el solicitante debe llamar a IVssBackupComponents::AbortBackup y, a continuación, liberar el objeto IVssBackupComponents (consulte Aborting VSS Operations para obtener más información). No intente reanudar la interfaz IVssBackupComponents .
Normalmente, el documento de componentes de copia de seguridad de un solicitante se inicializa como vacío. Se puede cargar un documento de componentes de copia de seguridad almacenado cuando se llama a IVssBackupComponents::InitializeForBackup , normalmente compatible con volúmenes de instantáneas transportables. En este caso, la comunicación del solicitante de escritura será algo diferente de lo que se describe a continuación. (Consulte Importación de volúmenes de instantáneas transportables copiadas para obtener más información).
Para agregar volúmenes al conjunto de instantáneas, un solicitante primero debe establecer el contexto de la operación de instantánea llamando a IVssBackupComponents::SetContext. Si no se llama a este método, se usa el contexto predeterminado para las instantáneas, VSS_CTX_BACKUP. Para obtener información sobre cómo establecer el contexto de instantánea, vea Configuraciones de contexto de instantáneas.
Para comenzar la finalización de su configuración antes de la copia de seguridad, un solicitante debe llamar a IVssBackupComponents::SetBackupState. Al hacerlo, un solicitante indica a los escritores:
- Tipo de copia de seguridad (tal como se define en VSS_BACKUP_TYPE)
- Si la copia de seguridad incluye un estado de sistema de arranque
- Si el solicitante admite la selección de componentes individuales o realiza copias de seguridad de volúmenes completos.
Todos los solicitantes que participan en las operaciones de copia de seguridad y restauración siempre deben llamar a IVssBackupComponents::GatherWriterMetadata. Este método inicia la comunicación del solicitante de escritura mediante la generación de un evento VSS Identify , en respuesta al cual un escritor crea su documento de metadatos.
Antes de llamar a IVssBackupComponents::GatherWriterMetadata, un solicitante tiene la oportunidad de habilitar o deshabilitar explícitamente determinadas clases de escritor y escritor específicas mediante IVssBackupComponents::EnableWriterClasses, IVssBackupComponents::D isableWriterInstances e IVssBackupComponents::D isableWriterClasses (de forma predeterminada, todas las clases están habilitadas). Después de llamar a IVssBackupComponents::GatherWriterMetadata , estas llamadas no tienen ningún efecto.
Dado que no hay ninguna manera de obtener una lista de escritores en el sistema antes de llamar a IVssBackupComponents::GatherWriterMetadata, los solicitantes pueden considerar la posibilidad de crear y eliminar una segunda instancia de IVssBackupComponents para obtener la lista.
No es necesario llamar a IVssBackupComponents::GatherWriterStatus después de la finalización de IVssBackupComponents::GatherWriterMetadata. Los escritores que no procesan el evento Identify generado por las llamadas no formarán parte de la lista de escritores que proporcionan metadatos encontrados por IVssBackupComponents::GetWriterMetadataCount e IVssBackupComponents::GetWriterMetadata (consulte Determinar el estado del escritor).
Acciones del escritor durante la inicialización de copia de seguridad
En respuesta al evento Identify, VSS llama al método de controlador virtual de cada escritor, CVssWriter::OnIdentify. Un escritor crea su documento de metadatos de escritor reemplazando la implementación predeterminada de CVssWriter::OnIdentify y usando la interfaz IVssCreateWriterMetadata .
Tenga en cuenta que las aplicaciones que no sean el solicitante actual (por ejemplo, las aplicaciones del sistema) pueden generar eventos De identificación que el escritor debe controlar. Además, no hay ninguna manera de que un escritor determine desde dentro de csvsWriter::OnIdentify qué aplicación ha generado el evento Identify.
Este es el caso, dado que un escritor puede recibir varios eventos De identificación al procesar una operación de copia de seguridad, un escritor nunca debe establecer información de estado en el controlador CVssWriter::OnIdentify .
En su lugar, CVssWriter::OnIdentify debe realizar un algoritmo coherente para crear el documento de metadatos del escritor, especialmente porque después de que un escritor cree el documento, ni el solicitante ni el escritor pueden modificarlo. A partir de este momento, es un documento de solo lectura.
Esto significa que el número y el tipo de componentes asociados a un escritor, que los archivos forman parte de cada componente, y la exclusión explícita de archivos de las operaciones de copia de seguridad o restauración no se puede cambiar después de que un escritor vuelva del procesamiento del evento Identify.
Todos los escritores que participan con VSS son necesarios para hacer lo siguiente:
- Indique un método de restauración para todos los componentes administrados por el escritor mediante IVssCreateWriterMetadata::SetRestoreMethod.
- Agregue al menos un componente mediante IVssCreateWriterMetadata::AddComponent (vea Definición de componentes por escritores para obtener más información sobre la especificación de componentes).
Un escritor indica los archivos para participar en una operación de copia de seguridad o restauración agregando conjuntos de archivos (una combinación de una ruta de acceso, especificación de archivo y una marca de recursividad) a un componente determinado mediante IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles, según el tipo (vea Agregar archivos a componentes).
Un escritor también puede tener uno o varios componentes vacíos, componentes a los que no se han agregado archivos. Son muy útiles para organizar los componentes del escritor. (Consulte Ruta de acceso lógica de componentes).
Un escritor usa IVssCreateWriterMetadata::AddExcludeFiles para evitar explícitamente que los archivos se incluyan en la copia de seguridad. Esta exclusión explícita es útil porque se pueden usar caracteres comodín para especificar archivos para su inclusión (vea Excluir especificación de lista de archivos). Tenga en cuenta que la lista de archivos de exclusión tiene prioridad sobre las listas de archivos de componentes.
IVssCreateWriterMetadata::AddAlternateLocationMapping se usa para crear asignaciones de ubicación alternativas para conjuntos de archivos especificados que se han agregado a uno de los componentes del escritor. Estas asignaciones se usan durante la restauración de archivos al restaurar en la ubicación original de un archivo no es posible o deseable. (Consulte Información general sobre la restauración real de archivos y las ubicaciones de copia de seguridad y restauración no predeterminadas).
Dado que el conjunto de archivos de copia de seguridad se especifica en el documento de metadatos del escritor, no se puede modificar más adelante. Por lo tanto, se debe codificar un escritor para que la definición del conjunto de archivos incluya todos los archivos necesarios en la copia de seguridad, ya sea por nombre o por caracteres comodín. Concebiblemente, esto puede incluir algunos archivos que se pueden crear después del evento Identify.