Visão geral da preparação para restauração
Ao se preparar para uma restauração, um solicitante usa os Documentos de Metadados do Gravador armazenados em conjunto com seu próprio Documento de Componentes de Backup recuperado para determinar o que deve ser restaurado e como. Para obter mais informações, consulte Visão geral do processamento de uma restauração no VSS.
Após a seleção de componentes candidatos de restauração, os gravadores atualmente em execução no sistema acessam o Documento de Componentes de Backup do solicitante. Os gravadores usam esse acesso para indicar como causar dificuldade mínima para executar serviços devido à restauração.
Depois que isso for concluído, o solicitante terá informações suficientes para determinar quais arquivos precisarão ser restaurados, bem como onde e como eles devem ser restaurados. (Para obter mais informações, consulte Gerando um conjunto de restauração.)
A tabela a seguir mostra a sequência de ações e eventos necessários para se preparar para uma operação de restauração.
Ação do solicitante | Evento | Ação do gravador |
---|---|---|
Recupere informações do Documento de Componentes de Backup sobre os componentes explicitamente incluídos na operação de backup (consulte IVssBackupComponents::GetWriterComponents) Examine os Documentos de Metadados do Gravador recuperados para obter detalhes sobre esses componentes explicitamente incluídos no backup e qualquer subcomponente incluído implicitamente . (Consulte IVssExamineWriterMetadata, IVssWMComponent.) |
Nenhum | Nenhum |
Selecione componentes e conjuntos de componentes a serem restaurados (consulte IVssBackupComponents::SetSelectedForRestore e IVssBackupComponents::AddRestoreSubcomponent.) | Nenhum | Nenhum |
O solicitante permite que o gravador atualize o Documento de Componentes de Backup e, opcionalmente, pode comunicar qualquer opção de restauração especial ao gravador. (Consulte IVssBackupComponents::SetRestoreOptions, IVssBackupComponents::AddNewTarget e IVssBackupComponents::P reRestore.) | Pré-repositório | O gravador determina a participação na restauração, prepara arquivos para restauração e, opcionalmente, modifica o Documento de Componentes de Backup, se necessário. (Consulte CVssWriter::OnPreRestore, IVssComponent, IVssComponent::IsSelectedForRestore, IVssComponent::GetRestoreOptions, IVssComponent::SetRestoreTarget, IVssComponent::SetRestoreMetadata, IVssComponent::AddDirectedTarget.) |
O solicitante aguarda os gravadores para manipular o evento PreRestore com IVssAsync. Ele também deve verificar status do gravador. (Consulte IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus.) | Nenhum | Nenhum |
Ações do solicitante durante as preparações de restauração
Para determinar quais componentes são candidatos à restauração, o solicitante deve fazer o seguinte:
- Estabeleça o componente e a estrutura do conjunto de componentes usada para fazer o backup.
- Examine a capacidade de seleção dos componentes para restauração.
- Use as diretrizes de selebilidade (Trabalhando com a selebilidade para restauração e subcomponentes) para escolher os componentes a serem incluídos.
- Use informações do conjunto de arquivos de componente para determinar quais arquivos na mídia de backup devem ser restaurados.
Para fazer isso, o solicitante precisa examinar componentes explicitamente incluídos no Documento de Componentes de Backup armazenado. Essas informações de componente estão disponíveis em uma base de gravador por gravador usando IVssBackupComponents::GetWriterComponents, que retorna instâncias da interface IVssWriterComponentsExt , da qual as informações do gravador e as instâncias da interface IVssComponent podem ser recuperadas.
Conforme observado em outro lugar (uso de componentes pelo solicitante), o Documento de Componentes de Backup e a interface IVssComponent não contêm informações suficientes para dar suporte ao backup. Portanto, o solicitante deve examinar o documento de metadados do gravador armazenado correspondente usando IVssExamineWriterMetadata (consulte Informações de identificação do gravador).
O número de componentes que cada gravador gerencia é retornado por IVssExamineWriterMetadata::GetFileCounts. Em seguida, o solicitante pode usar IVssExamineWriterMetadata::GetComponent para obter uma interface IVssWMComponent para cada componente gerenciado por um gravador.
Examinando a capacidade de seleção dos componentes para backup e caminhos lógicos (consulte Trabalhando com a selebilidade e caminhos lógicos), um solicitante é capaz de identificar os componentes que definiram conjuntos de componentes de tempo de backup (componentes explicitamente incluídos) e os membros de subcomponentes desses conjuntos (componentes incluídos implicitamente).
Os solicitantes indicam por meio do Documento de Componentes de Backup se um componente deve ser restaurado explicitamente, usando IVssBackupComponents::SetSelectedForRestore ou IVssBackupComponents::AddRestoreSubcomponent. A escolha do método dependerá de como o componente foi originalmente copiado em backup e sua capacidade de seleção para restauração. Esses componentes explicitamente incluídos para restauração designam outros componentes que estão incluídos implicitamente (consulte Trabalhando com a selebilidade para restauração e subcomponentes para obter detalhes).
Um solicitante pode incluir explicitamente nenhum dos componentes do gravador em execução no momento para restauração usando IVssBackupComponents::SetSelectedForRestore ou IVssBackupComponents::AddRestoreSubcomponent. Nesse caso, esse gravador não receberá nenhum evento VSS para o restante da operação de restauração.
O uso explícito de IVssBackupComponents::SetSelectedForRestore ou IVssBackupComponents::AddRestoreSubcomponent para selecionar um componente de um gravador que não está sendo executado no momento retorna um erro de VSS_E_OBJECT_NOT_FOUND. Consulte Restaurações sem Participação do Gravador para obter informações sobre como restaurar os dados de gravadores ausentes.
Para permitir que um gravador tenha informações completas sobre as quais agir, as opções de restauração específicas do gravador e a indicação de uma restauração incremental podem ser enviadas aos gravadores por chamadas de solicitante para IVssBackupComponents::SetRestoreOptions e IVssBackupComponents::SetAdditionalRestores, respectivamente.
Neste ponto, um solicitante concluiu sua preparação e gera um evento PreRestore chamando IVssBackupComponents::P reRestore, permitindo que os gravadores se preparem para a restauração real.
Ações do gravador durante as preparações de restauração
A preparação do gravador para a operação de restauração ocorre ao manipular o evento PreRestore com o método virtual CVssWriter::OnPreRestore. A implementação padrão simplesmente retorna sem executar nenhuma ação. Os gravadores podem optar por substituir a implementação padrão para exercer mais controle:
- Substituindo métodos de restauração com destinos de restauração
- Definindo destinos direcionados
- Criando mensagens de erro e dados adicionais
- Fornecendo informações de selo de backup
O manipulador de eventos CVssWriter::OnPreRestore recebe uma instância do IVssWriterComponents, da qual pode obter interfaces IVssComponent para aqueles de seus componentes explicitamente incluídos no Documento de Componentes de Backup durante o backup.
Informações sobre subcomponentes incluídos implicitamente em operações de backup e explicitamente incluídos em restaurações usando uma instância do IVssComponent correspondente ao componente que definiu seu conjunto de componentes de backup.
O método IVssComponent::IsSelectedForRestore é usado para determinar se um explicitamente incluído para o componente de backup deve ser restaurado.
Para determinar se um subcomponente de backup foi incluído explicitamente na restauração, os gravadores usam IVssComponent::GetRestoreSubcomponent.
O gravador deve examinar o conjunto de arquivos em cada componente e determinar se ele precisa executar ações para dar suporte à restauração. O gravador precisará avaliar se deseja que seus arquivos atuais sejam substituídos ou se ele exigirá restauração para novos locais. As ações podem incluir o seguinte:
- Obtendo e agindo em qualquer opção específica do gravador ou solicitante que regem as operações de restauração (consulte IVssComponent::GetRestoreOptions)
- Fechando e tornando graváveis todos os arquivos abertos no momento
- Atualizando o destino de restauração (por exemplo, para forçar a restauração para um mapeamento de local alternativo). Consulte IVssComponent::SetRestoreTarget.
- Comunicando-se com o solicitante por meio de metadados privados (consulte IVssComponent::SetRestoreMetadata)
- Indicando que um arquivo deve ser restaurado remapeando pela definição de destinos direcionados (consulte IVssComponent::AddDirectedTarget)
A instância de IVssComponent usada será aquela criada pela inclusão explícita do componente no Documento de Componentes de Backup durante o backup ou pela do componente que define o conjunto de componentes de backup do qual ele era membro (consulte Trabalhando com selebilidade para restauração e subcomponentes).