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 da inicialização de backup) 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 de backup
- Um tipo de componente
- Um nome de componente (que deve ser exclusivo não apenas em 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 realmente 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 do gravador (consulte Caminho Lógico dos Componentes).
Configurando a organização do componente
Definir a selebilidade de um componente (sua selebilidade parade backup e sua selebilidade para restaurar) e seus caminhos lógicos permite que um gravador determine 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 agindo como um ponto de entrada para todo o componente 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 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 de não reelecionáveis sem ancestrais selecionáveis em seus caminho lógico para o Documento de Componentes de 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 de Backup durante operações de backup e restauração; depois de adicionado, o componente deve ser feito backup ou restaurado.
- Se um componente for selecionável, o componente e todos os seus subcomponentes (conforme definido por caminhos lógicos) formam 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 selecionável com ancestrais selecionáveis, um subcomponente em um conjunto de componentes, ao documento componentes de backup durante operações de backup e restauração. Esses componentes devem ser incluídos implicitamente se seu ancestral selecionável for adicionado explicitamente, nesse caso, eles devem ser copiados ou restaurados (consulte Uso de Componentes pelosolicitante).
- Um componente selecionável com um ancestral selecionável ainda é um subcomponente (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 de Componentes de Backup. Se seu ancestral selecionável não estiver incluído na operação, o componente poderá ser selecionado explicitamente para inclusão na operação, caso em que suas informações serão incluídas no Documento de Componentes de Backup.
- Um subcomponente incluído implicitamente em um backup pode ser incluído explicitamente 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 de Componentes de Backup.
- Um gravador que não teve nenhum componente adicionado explicitamente ao Documento de Componentes de Backup 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::AddDatabaseFilesou 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 verdadeiro, 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 estrutura de diretório a seguir 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 wszFilespece verdadeiro 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 verdadeiro 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 especifica verdadeiro 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 onde os arquivos devem ser restaurados, enquanto o caminho alternativo contém o local atual dos arquivos a serem copiados em 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 Identificarde eventos e, para backups e restaurações, elas serão tratadas pelo mesmo método CVssWriter::OnIdentify.
Durante as operações de backup, os solicitantes usam as informações retornadas pelo do gravador CVssWriter::OnIdentify métodos 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 do 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 do Gravador armazenados no momento do backup são usados para obter esses dados.
Uma vez geradas durante uma operação de backup, as informações do componente de 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.