Compartilhar via


Definição de componentes por gravadores

Os componentes são definidos e instanciados por gravadores em seu Documento de Metadados do Gravador em resposta a um evento Identifique no início de uma operação de backup (consulte Visão geral de Backup Inicialização) quando o Documento de Metadados do Gravador é preenchido.

Ao criar um componente em seu Documento de Metadados do Gravador, usando IVssCreateWriterMetadata e IVssCreateWriterMetadata::AddComponent, um gravador deve especificar:

  • Se o componente é selecionável para backup
  • Um tipo de componente
  • Um nome de componente (que deve ser exclusivo não apenas dentro de uma determinada instância de gravador , mas em todas as instâncias de gravador)
  • Se o componente tem metadados específicos do gravador associados a ele
  • Se o gravador requer notificação após um backup bem-sucedido

Os escritores podem, opcionalmente, especificar:

  • O caminho lógico de um componente (que deve ser exclusivo não apenas dentro de uma determinada instância de gravador, mas em todas as instâncias de gravador)
  • Uma descrição do componente (ou legenda)
  • Um ícone a ser usado com GUIs para indicar o componente

Não é necessário que um componente contenha arquivos. Esse tipo de componente vazio ou "fictício" pode ser útil na organização de componentes. Esse componente pode ser usado para definir um conjunto de componentes e um componente de gravador (consulte o Caminho Lógico dos Componentes).

Configurando a organização do componente

Definir a selebilidade de um componente (sua selebilidade para backup e sua selebilidade para restauração) e seus caminhos lógicos permite que um gravador eximira ou torne opcional a inclusão de determinados componentes em uma operação de backup ou restauração e agrupar componentes em conjuntos de componentes com um componente selecionável atuando como um ponto de entrada para todo o grupo.

A associação a esses agrupamentos determina quais componentes serão usados durante operações de backup e restauração. Usando "selecionável" para significar selecionável para voltar para a operação de backup e selecionável para restauração para operação de restauração, os desenvolvedores devem entender que:

  • Se algum componente gerenciado por um determinado gravador tiver backup, um solicitante deverá incluir explicitamente todos os componentes não reelecionáveis sem ancestrais selecionáveis em seu caminho lógico para o documento de componentes Backup e fazer backup e restaurar esses componentes como um grupo.
  • Um solicitante tem a opção de adicionar explicitamente componentes selecionáveis ao documento de componentes Backup durante operações de backup e restauração; uma vez adicionado, o componente deve ser backup ou restaurado.
  • Se um componente for selecionável, o componente e todos os seus subcomponentes (conforme definido por caminhos lógicos) formarão um conjunto de componentes, que pode ser tratado como uma única unidade que pode, opcionalmente, participar de operações de backup e restauração.
  • Um solicitante nunca adiciona explicitamente um componente não reelecionável com ancestrais selecionáveis, um subcomponente em um conjunto de componentes, ao documento Backup Components durante operações de backup e restauração. Esses componentes devem ser incluídos implicitamente se o ancestral selecionável for adicionado explicitamente, nesse caso, eles devem ser apoiados ou restaurados (consulte o uso de componentes pelo solicitante).
  • Um componente selecionável com um ancestral selecionável ainda é um subcomponente (um membro de um conjunto de componentes) e pode ser incluído implicitamente se seu ancestral selecionável estiver explicitamente incluído na operação. Nesse caso, suas informações não são adicionadas ao documento Backup Components. Se seu ancestral selecionável não estiver incluído na operação, o componente poderá ser explicitamente selecionado para inclusão na operação, nesse caso, suas informações serão incluídas no documento Backup Components.
  • Um subcomponente incluído implicitamente em um backup pode ser explicitamente incluído em uma operação de restauração, independentemente do status de qualquer ancestral selecionável, se for selecionável para restauração. Qualquer selecionável para o subcomponente de restauração incluído durante uma operação de restauração deve ter suas informações adicionadas ao documento Backup Components.
  • Um gravador que não teve nenhum componente adicionado explicitamente ao documento Backup Components antes da geração de eventos PrepareForBackup e PreRestore não receberá mais eventos VSS.

Para obter mais informações, consulte Trabalhando com selebilidade e caminhos lógicos.

Adicionando arquivos a um componente

Um componente contém informações de arquivo na forma de um conjunto de arquivos que contém:

  • Um diretório raiz dos arquivos no componente.
  • Uma especificação de arquivo para os arquivos no componente.
  • Um sinalizador que indica se a especificação do componente é recursiva.

Dependendo do tipo de componente, que pode ser um banco de dados ou um grupo de arquivos e (no caso de componentes de banco de dados) se os arquivos a serem carregados são arquivos de dados ou de log, um gravador chama IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles ou IVssCreateWriterMetadata::AddDatabaseLogFiles para adicionar um conjunto de arquivos.

Ao usar essas funções, você deve especificar os arquivos a serem adicionados ao conjunto de arquivos da seguinte maneira:

  • wszPath: esse é o caminho para o diretório que contém os arquivos a serem adicionados ao conjunto de arquivos. Se o parâmetro bRecursive for definido como true, o parâmetro wszPath especificará uma hierarquia de diretórios a serem percorridos recursivamente e todos os diretórios deverão ser recriados, incluindo diretórios vazios.
  • wszFilespec: Essa cadeia de caracteres especifica os arquivos em cada diretório a serem adicionados ao conjunto de arquivos.

Por exemplo, suponha que a seguinte estrutura de diretório exista:

C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt C:\\Directory1\\Directory2\\File1.txt C:\\Directory1\\Directory2\\File2.txt C:\\Directory1\\Directory3\\

Se o gravador especificar "C:\Directory1" para wszPath, "File1.*" para wszFilespec e true para bRecursive, o solicitante deverá incluir estes arquivos:

C:\\Directory1\\File1.txt C:\\Directory1\\Directory2\\File1.txt

Se o gravador especificar "C:\Directory1" para wszPath, "*" para wszFilespec e true para bRecursive, o solicitante deverá incluir estes arquivos:

C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt C:\\Directory1\\Directory2\\File1.txt C:\\Directory1\\Directory2\\File2.txt

Se o gravador especificar "C:\Directory1" para wszPath, "*" para wszFilespec e false para bRecursive, o solicitante deverá incluir estes arquivos:

C:\\Directory1\\File1.txt C:\\Directory1\\File2.txt

Em todos os exemplos anteriores, sempre que o gravador especificar true para bRecursive, o diretório vazio C:\Directory1\Directory3\ deve ser recriado.

Para um conjunto de arquivos adicionado a um componente de grupo de arquivos, nos casos em que os arquivos atualmente em disco não estão no que o gravador consideraria o local apropriado ou padrão, um gravador tem a opção de adicionar um caminho alternativo. Nesses casos, a definição do caminho do conjunto de arquivos contém o local normal dos arquivos e para onde os arquivos devem ser restaurados, enquanto o caminho alternativo contém o local atual dos arquivos a serem backup.

Todos os arquivos no conjunto de arquivos devem existir no momento do backup. Os solicitantes devem assumir que todos os arquivos listados no conjunto de arquivos são necessários para o backup e falharão no backup se algum arquivo estiver ausente. Observe que quando "*" é especificado para o parâmetro wszFilespec , ele pode corresponder a zero ou mais arquivos.

Observe que esses atributos de Documento de Metadados do Gravador como mapeamentos de localização alternativos, arquivos explicitamente incluídos e excluídos e métodos de restauração são definidos no nível do gravador, não no nível do componente. (Para obter mais informações, consulte Trabalhando com o documento de metadados do gravador.)

Definição de componente para operações de Backup e restauração

As operações de restauração e backup necessariamente geram um evento identificá-lo e, para backups e restaurações, ele será tratado pelo mesmo método CVssWriter::OnIdentify .

Durante as operações de backup, os solicitantes usam as informações retornadas pelos métodos CVssWriter::OnIdentify de um gravador para determinar quais gravadores estão presentes no sistema e, em seguida, determinar quais de seus arquivos fazer backup.

Durante as operações de restauração, as informações retornadas pelo evento CVssWriter::OnIdentify de um gravador são usadas apenas para estabelecer a identidade e o status dos gravadores atualmente presentes no sistema; as informações de especificação de arquivo geradas durante uma restauração não são usadas. Em vez disso, os documentos de metadados de gravador armazenados no momento do backup são usados para obter esses dados.

Depois de geradas durante uma operação de backup, as informações do componente gravador, juntamente com o restante das informações do gravador, são salvas para serem recuperadas para dar suporte a operações de restauração. Normalmente, é responsabilidade do solicitante armazenar essas informações.