Visão geral da fase de descoberta de backup

Depois de chamar IVssBackupComponents::GatherWriterMetadata, um solicitante usa a instância da interface IVssAsync retornada dessa chamada para determinar quando todos os gravadores no sistema terminaram de construir seus Documentos de Metadados do Gravador. Para obter mais informações, consulte Visão geral do processamento de um backup no VSS.

Neste ponto, o solicitante pode iniciar uma fase de descoberta, examinando metadados para determinar quais aplicativos estão em execução e quais volumes devem ser copiados para obter um backup completo. A tabela a seguir mostra a sequência de ações e eventos necessários para a fase de descoberta de backup.

Ação do solicitante Evento Ação do gravador
Recuperar documentos de metadados do gravador (consulte IVssBackupComponents::GetWriterMetadata, IVssExamineWriterMetadata). Nenhum Durante esse período, os gravadores podem continuar com suas operações normais.
Use a lista de componentes e seus conjuntos de arquivos, bem como arquivos excluídos, para obter uma lista de volumes e arquivos envolvidos no backup (consulte IVssWMComponent, IVssWMFiledesc). Nenhum Nenhum
Escolha quais componentes no Documento de Metadados do Gravador do gravador fazer backup. Chame IVssBackupComponents::AddComponent para cada componente para adicioná-lo ao Documento de Componentes de Backup. (Consulte Trabalhando com a capacidade de seleção para backup e trabalhando com o documento componentes de backup.) Nenhum Nenhum
Inicialize o conjunto de cópias de sombra, o contexto e o marcar para volumes com suporte (consulte IVssBackupComponents::StartSnapshotSet, IVssBackupComponents::IsVolumeSupported). Nenhum Nenhum
Se estiver executando um backup não componente, adicione os volumes de destino desejados do Documento de Metadados do Gravador à cópia de sombra definida chamando IVssBackupComponents::AddToSnapshotSet para cada volume. Caso contrário, para os componentes no Documento de Metadados do Gravador que já foram adicionados ao Documento de Componentes de Backup (chamando AddComponent), o solicitante também deve chamar IVssBackupComponents::AddToSnapshotSet para cada volume afetado. Nenhum Nenhum

 

Ações do gravador durante a fase de descoberta

Como a fase de descoberta de um backup consiste principalmente em um solicitante processando as informações recuperadas de Documentos de Metadados do Gravador, há poucos se houver requisitos em um gravador.

Em teoria, um escritor pode continuar a ser executado normalmente neste momento. No entanto, pode ser desejável que os gravadores iniciem os preparativos para as próximas operações de cópia de sombra e backup.

Ações do solicitante durante a fase de descoberta

Um solicitante usa os objetos IVssExamineWriterMetadata obtidos por meio de IVssBackupComponents::GetWriterMetadata para iterar em todos os metadados dos gravadores e selecionar os gravadores cujos dados ele pretende fazer backup.

Neste ponto, o solicitante precisará gerar uma lista inicial dos candidatos de backup de cada gravador iterando sobre os componentes do gravador usando IVssExamineWriterMetadata::GetComponent. Isso fornece ao solicitante objetos IVssWMComponent , dos quais você pode obter as especificações para o backup dos arquivos usando IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile e IVssWMComponent::GetDatabaseLogFile.

Como o objeto IVssWMFiledesc pode usar caracteres curinga para armazenar informações de localização do arquivo, pode ser necessário usar funções como FindFirstFile, FindFirstFileEx e FindNextFile.

Até que a cópia de sombra seja concluída, ainda é possível que os gravadores adicionem ou removam arquivos do disco no curso normal de seu trabalho, portanto, você não deve gerar a lista real de arquivos a serem copiados em backup no momento.

Em vez disso, a lista inicial de arquivos e volumes a serem copiados em backup é encontrada neste ponto, fazendo o seguinte:

  1. Examinar todos os componentes selecionáveis para backup e não selecionáveis no Documento de Metadados do Gravador de cada gravador (usando IVssExamineWriterMetadata) e organizá-los em conjuntos de componentes usa o caminho lógico (consulte Trabalhando com selebilidade e caminhos lógicos)
  2. Incluindo explicitamente todos os componentes necessários (não selecionáveis para componentes de backup sem selecionáveis para ancestrais de backup) no Documento de Componentes de Backup usando IVssBackupComponents::AddComponent
  3. Escolher incluir explicitamente selecionável opcional para componentes de backup que não definem um conjunto de componentes (usando IVssBackupComponents::AddComponent)
  4. Selecionando conjuntos de componentes para participação em um backup, adicionando explicitamente sua definição selecionável para o componente de backup (usando IVssBackupComponents::AddComponent), que inclui implicitamente os subcomponentes do conjunto de componentes.
  5. Usando informações de conjunto de arquivos nas funções de gerenciamento de volume e Documento de Metadados do Gravador dos gravadores selecionados, um solicitante determina os caminhos dos arquivos a serem copiados e os volumes que precisarão ser copiados de sombra

Observe que apenas os componentes incluídos explicitamente (usando IVssBackupComponents::AddComponent) no backup e no Documento de Componentes de Backup terão instâncias da interface IVssComponent adicionadas a esse documento. Essas instâncias serão usadas para examinar e modificar as configurações de componente para componentes explicitamente incluídos e qualquer um de seus subcomponentes incluídos implicitamente (consulte Selectability e Working with Component Properties).

Se um gravador incluir qualquer um dos componentes de um gravador, ele deverá adicionar todos os componentes necessários. No entanto, um solicitante também é livre para ignorar totalmente todos os conjuntos de componentes de um gravador. Se nenhum dos componentes de um gravador estiver explicitamente selecionado, o gravador não será selecionado e o VSS inibe que o gravador participe do restante da operação de backup.

O solicitante inicia o conjunto de cópias de sombra que conterá os volumes selecionados chamando IVssBackupComponents::StartSnapshotSet.

Se o volume puder participar de uma cópia de sombra (que pode ser verificada com IVssBackupComponents::IsVolumeSupported), o solicitante poderá adicionar esse volume ao conjunto de cópias de sombra usando IVssBackupComponents::AddToSnapshotSet.

Embora geralmente não seja útil, às vezes, um solicitante também pode escolher qual provedor manterá a cópia de sombra para um determinado volume (consulte Selecionando provedores para obter detalhes).

É necessário ter cuidado com o tratamento de um volume que contém pastas montadas ou pontos de nova análise. Uma pasta montada ou um ponto de nova análise pode aparecer em uma cópia de sombra e pode ser feito backup. No entanto, uma pasta montada ou ponto de nova análise não pode ser percorrido no volume copiado de sombra (consulte Trabalhando com pastas montadas e pontos de nova análise).

Neste ponto do backup, o Documento de Componentes de Backup é inicializado e preenchido. Em operações futuras, gravadores e solicitantes podem usar a interface IVssComponent para se comunicar entre si.

Os gravadores recebem acesso à interface IVssComponent ao manipular os eventos PrepareForBackup, PostSnapshot e BackupComplete .