Uso de componentes pelo solicitante
Além de executar um backup ou restauração e supervisionar cópias de sombra, um solicitante deve gerenciar informações sobre os componentes dos gravadores com os quais interage. A selebilidade do componente e o caminho lógico são usados para incluir ou excluir dados de um backup e para decidir quais informações de componente estão incluídas no Documento de Componentes de Backup.
Seleção de componente solicitante durante o backup
Durante as operações de backup, um solicitante importa dados de componente de metadados do gravador usando os métodos IVssBackupComponents::GatherWriterMetadata e IVssBackupComponents::GetWriterMetadata (consulte Visão geral da Inicialização de Backup para obter mais informações).
Depois de examinar as informações do gravador com a interface IVssExamineWriterMetadata , um solicitante decide quais gravadores fará backup e, em uma extensão limitada, quais dos componentes de um determinado gravador ele fará backup.
Ao fazer backup de um gravador, um solicitante:
- Deve incluir explicitamente todos os componentes de backup não selecionáveis de um gravador sem selecionáveis para ancestrais de backup usando IVssBackupComponents::AddComponent para adicionar o componente ao Documento de Componentes de Backup
- Pode incluir explicitamente qualquer um dos componentes de backup selecionáveis de um gravador usando IVssBackupComponents::AddComponent para adicionar o componente ao Documento de Componentes de Backup
- Se um selecionável para componente de backup definir um conjunto de componentes, sua inclusão explícita incluirá implicitamente todos os membros do conjunto de componentes, sejam eles selecionáveis para backup ou não. Esses componentes não são adicionados ao Documento de Componentes de Backup.
Ao adicionar um selecionável para componente de backup ou um não selecionável para componentes de backup sem selecionável para ancestrais de backup ao documento componentes de backup, um solicitante especifica o seguinte:
- A instância do gravador que gerencia o componente
- O identificador de classe do gravador
- O caminho lógico do componente (que pode ser NULL)
- O nome do componente
Se um componente não corresponder à especificação, um erro será retornado.
Se esse componente existir, o VSS criará uma interface IVssComponent para o componente no Documento de Componentes de Backup. Essas informações serão acessíveis e modificáveis pelo gravador e solicitante. Para um componente selecionável que define um conjunto de componentes, ele descreve não apenas as propriedades do componente, mas também todos os subcomponentes que ele contém.
Informações sobre componentes adicionados implicitamente não estão disponíveis no Documento de Componentes de Backup. Além disso, nenhuma informação de arquivo está disponível no Documento de Componentes de Backup. Para obter essas informações, o solicitante precisará examinar os Documentos de Metadados do Gravador (que já foram lidos) no contexto dos componentes armazenados selecionados no Documento de Componentes de Backup.
Seleção de componente do solicitante durante a restauração
Durante as operações de restauração, um solicitante não deve importar informações de componente dos gravadores atualmente ativos no sistema por meio de IVssBackupComponents::GatherWriterMetadata, pois o estado dos processos atualmente em execução não refletirá necessariamente o estado dos processos quando um backup foi feito.
Ele ainda deve gerar um evento Identifi via IVssBackupComponents::GatherWriterMetadata, tanto para criar um evento Identifi quanto para determinar quais gravadores estão atualmente no sistema e seus status.
O solicitante recupera o Documento de Componentes de Backup armazenado durante sua inicialização, bem como documentos armazenados de metadados do gravador (consulte Visão geral da inicialização de restauração para obter mais informações) .
A inclusão de componentes durante o backup é praticamente a mesma que para restauração, exceto que você deve considerar selecionável para restauração junto com o caminho lógico, não selecionável para backup.
No entanto, há algumas diferenças:
- Se um componente já tiver sido incluído explicitamente no Documento de Componentes de Backup durante o backup, se ele estiver incluído para restauração (explicitamente ou implicitamente), IVssBackupComponents::SetSelectedForRestore será usado para adicioná-lo explicitamente ao Documento de Componentes de Backup para restauração.
- Se um componente foi incluído implicitamente no backup e não é selecionável para restauração sem selecionável para ancestrais de restauração, o que, no caso de backup, implicaria a necessidade de inclusão explícita, o componente não está explicitamente incluído (ou seja, não é adicionado ao Documento de Componentes de Backup usando IVssBackupComponents::SetSelectedForRestore). Esse componente deve ser considerado implicitamente selecionado para restauração.
- Desses componentes selecionados implicitamente para backup (se esse componente era selecionável para backup ou não), somente aqueles que podem ser selecionados para restauração podem ser adicionados ao Documento de Componentes de Backup usando IVssBackupComponents::AddRestoreSubcomponent.
- Selecionável para componentes de restauração pode definir um conjunto de componentes para restauração, assim como selecionável para componentes de backup. Esse componente selecionável para restauração define esse componente definido para a operação de restauração.
Um gravador sem componentes explicitamente selecionado para restauração antes da geração de um evento PreRestore não receberá nenhum evento VSS.
Solicitantes e gravadores podem acessar informações de componente armazenado usando a interface IVssComponent . Por meio da interface IVssComponent , os gravadores podem modificar algumas das configurações daqueles de seus componentes explicitamente incluídos no Documento de Componentes de Backup para dar suporte a uma restauração (como o destino de restauração). Se ele definir um conjunto de componentes, as modificações de gravador de um componente explicitamente incluído serão propagadas para seus subcomponentes. Além disso, a interface fornece um mecanismo para transmitir informações sobre o êxito da restauração e a falha entre o gravador e o solicitante.
Como durante o backup, não há informações suficientes no próprio Documento de Componentes de Backup para implementar a restauração. Novamente, os Documentos de Metadados do Gravador serão necessários para fornecer informações sobre os caminhos reais dos arquivos a serem restaurados e descobrir quais componentes não reelecionáveis fazem parte do conjunto de componentes selecionáveis e, portanto, precisam ser restaurados.
Consulte Trabalhando com Selebilidade e Caminhos Lógicos para obter informações sobre os tipos de selebilidade e seu uso.
Uso de informações de documento do componente gravador pelo solicitante
Cada componente é identificado exclusivamente pela ID da Classe writer de seu gravador pai, seu nome e seu caminho lógico.
O solicitante pode usar a interface IVssWriterComponentsExt retornada pelo método IVssBackupComponents::GetWriterComponents para obter informações sobre cada componente armazenado.
O nome do componente e o caminho lógico (entre outros itens) podem ser encontrados por meio da interface IVssComponent retornada por IVssWriterComponentsExt::GetComponent.
Observação
Durante a fase de restauração, o solicitante deve chamar IVssWriterComponentsExt::GetComponent ou IVssWriterComponentsExt::GetComponentCount somente após a chamada para IVssBackupComponents::P reRestore retornar, para permitir tempo para o gravador atualizar o Documento de Componentes de Backup. Um exemplo dessa atualização seria alterar o destino de restauração.
Informações sobre o gravador pai de cada componente selecionável armazenado podem ser encontradas usando IVssWriterComponentsExt::GetWriterInfo.
Com essas informações, os Documentos de Metadados do Gravador podem ser consultados e o documento correspondente identificado. Em seguida, usando o caminho lógico, o solicitante pode identificar os componentes não selecionáveis dependentes para cada componente selecionável, ou seja, identificar todos os membros do conjunto de componentes do componente selecionável.
Usando a interface IVssExamineWriterMetadata , o solicitante agora tem informações completas do componente, incluindo a especificação de caminho (da interface IVssWMComponent ) para componentes selecionáveis e não selecionáveis necessários para fazer backup ou restauração.
Essa é uma das razões pelas quais é vital que um solicitante salve o estado do próprio Documento de Componentes de Backup e os Documentos de Metadados do Gravador dos gravadores que está fazendo backup.
Consulte Trabalhando com selebilidade e caminhos lógicos para obter informações mais detalhadas.