Selezionabilità e utilizzo delle proprietà del componente
L'uso dei componenti selezionati in modo implicito richiede l'accesso ai documenti dei metadati dei componenti di backup e del writer.
per due motivi:
- I dati del componente archiviati nel documento Componenti di backup (rappresentati dall'interfaccia IVssComponent ) non hanno accesso alle informazioni sul set di file componente, ovvero specifica dei file, percorso e flag di ricorsione. Vedere Uso del documento Componenti di backup.
- Solo i componenti inclusi in modo esplicito nel documento Componenti di backup durante il backup hanno le informazioni archiviate direttamente nel documento Componenti di backup. I richiedenti e i writer devono usare le informazioni disponibili tramite l'interfaccia IVssComponent , insieme alle informazioni sul percorso logico e ai documenti dei metadati writer per ottenere informazioni su e impostare le proprietà dei componenti inclusi in modo implicito .
Il caso "MyWriter" descritto in Percorso logico dei componenti può essere usato per illustrare la selezionabilità per il backup.
Nome componente | Percorso logico | Selezionabile per il backup | Selezionabile per il ripristino | Incluso in modo esplicito |
---|---|---|---|---|
"Eseguibili" | "" | N | N | S |
"ConfigFiles" | "Eseguibili" | N | N | S |
"LicenseInfo" | "" | S | N | S |
"Security" | "" | S | N | S |
"UserInfo" | "Security" | N | N | N |
"Certificati" | "Security" | N | N | N |
"writerData" | "" | S | S | S |
"Set1" | "writerData" | N | S | N |
"Jan" | "writerData\Set1" | N | N | N |
"Dec" | "writerData\Set1" | N | N | N |
"Set2" | "writerData" | N | S | N |
"Jan" | "writerData\Set2" | N | N | N |
"Dec" | "writerData\Set2" | N | N | N |
"Query" | "writerData\QueryLogs" | N | N | N |
"Utilizzo" | "writerData" | S | S | N |
"Jan" | "writerData\Usage" | N | N | N |
"Dec" | "writerData\Usage" | N | N | N |
Componenti inclusi in modo implicito nel set di backup
Durante l'esame del documento dei metadati writer di un writer, vedere IVssBackupComponents::GetWriterMetadata durante il backup, un richiedente deve archiviare un elenco di tutti i componenti, i relativi percorsi logici e le relative informazioni sul set di file.
Per determinare un elenco di file per qualsiasi componente incluso in modo esplicito o implicito, sarà necessario determinare un elenco di file.
Per i componenti di backup non selezionabili senza selezione per i predecessori di backup e selezionabili per i componenti di backup che non definiscono un set di componenti, sarà necessario identificare tutti i candidati del componente per il backup, perché questi componenti non definiscono i sottocomponenti.
Per includere in modo esplicito i componenti di backup che definiscono un set di componenti, i set di file ed escludere le informazioni sui file sia per il componente di definizione che per tutti i sottocomponenti devono essere usati per selezionare i file per il backup.
Ciò significa che i set di backup per i componenti "Eseguibili", "ConfigFiles" e "LicenseInfo" possono essere trovati solo esaminando i metadati del writer solo per questi componenti usando le istanze dell'interfaccia IVssWMComponent .
Tuttavia, se writerData è incluso in modo esplicito nel backup, è necessario esaminare l'istanza dell'interfaccia IVssWMComponent e quelle per "Set1", "Jan" (con percorso logico "writerData\Set1"), "Dec" (con percorso logico "writerData\Set1"), "Set2", "Jan" (con percorso logico "writerData\Set2"), "Dec" (con percorso logico "writerData\Set2"), "Query", "Usage", "Jan" (con percorso logico "writerData\Usage") e "Dec" (con percorso logico "writerData\Usage").
A tale scopo, un richiedente dovrà prima identificare che il componente "writerData" (percorso logico "") è selezionabile. Sarà quindi necessario analizzare tutti gli altri componenti gestiti dal writer per determinare se il primo elemento nel percorso logico è "writerData". I componenti con "writerData" come membri iniziali del percorso logico vengono identificati come sottocomponenti di "writerData" e vengono selezionati in modo implicito quando è selezionata in modo esplicito.
In realtà, sarà necessario eseguire un'analisi simile per determinare che nessun componente ha "LicenseInfo" come membro principale del percorso logico e quindi che "LicenseInfo" non ha sottocomponenti.
A causa della complessità di questo meccanismo nel Servizio Copia Shadow del volume, molti writer richiedente possono trovare utile creare le proprie strutture per l'archiviazione delle informazioni sui componenti e sui set di backup per i componenti aggiunti in modo esplicito e implicito.
Proprietà dei componenti inclusi in modo implicito
Durante le operazioni di ripristino e backup, le istanze delle interfacce IVssComponent e IVssBackupComponents vengono usate sia per recuperare informazioni sui componenti che per impostare o modificare le proprietà del componente. Tuttavia, solo i componenti inclusi in modo esplicito avranno istanze dell'interfaccia IVssComponent o saranno accessibili all'interfaccia IVssBackupComponents .
Alcune proprietà sono a livello di componente nell'ambito. Queste proprietà includono quanto segue:
- Stato di backup e ripristino:
IVssBackupComponents::SetBackupSucceeded
IVssComponent::GetBackupSucceeded
IVssBackupComponents::SetFileRestoreStatus
IVssComponent::GetFileRestoreStatus
- Opzioni di backup e ripristino:
IVssBackupComponents::SetBackupOptions
IVssComponent::GetBackupOptions
IVssBackupComponents::SetRestoreOptions
IVssComponent::GetRestoreOptions
- Messaggi di errore:
IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg
IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg
- Destinazioni di ripristino:
IVssComponent::SetRestoreTarget
IVssComponent::GetRestoreTarget
- Indicatori di backup:
IVssComponent::SetBackupStamp
IVssComponent::GetBackupStamp
- Metadati aggiuntivi:
IVssComponent::SetRestoreMetadata
IVssComponent::GetRestoreMetadata
IVssComponent::SetBackupMetadata
IVssComponent::GetBackupMetadata
Pertanto, si usa l'istanza dell'interfaccia IVssComponent del membro che definisce un set di componenti o si usa il nome, il tipo e il percorso logico del membro di definizione con un metodo IVssBackupComponents per impostare o recuperare le proprietà per tutti i membri del set di componenti.
Per questo motivo, i set di componenti vengono considerati come unità. Ad esempio, un backup di un set di componenti ha esito positivo solo se il backup di tutti i set di file di tutti i relativi componenti ha esito positivo.
Nell'esempio precedente si supponga che un file nel componente "Jan" (con percorso logico "writerData\Set2") sia un membro del set di componenti definito da "writerData". Se non è stato possibile eseguire il backup di uno dei file "Jan", un richiedente utilizzerà le informazioni di "writerData" (nome "writerData", il relativo percorso "" e il relativo tipo di componente) come argomenti durante l'impostazione di IVssBackupComponents::SetBackupSucceed confalse per indicare l'errore del set del componente.
Analogamente, lo stato restituito da IVssComponent::GetBackupSucceeded per l'istanza di "writerData" dell'interfaccia IVssComponent non si applica solo a "writerData" ma anche a tutti i relativi sottocomponenti.
Inoltre, se un writer ha scelto di modificare la destinazione di ripristino usando IVssComponent::SetRestoreTarget dell'istanza di "writerData" di IVssComponent, che modificherebbe la destinazione di ripristino per tutti i set di file di tutti i sottocomponenti "writerData".
Le proprietà seguenti non si applicano a livello di componente, ma a file o set di file specifici:
- Mapping di percorsi alternativi:
IVssBackupComponents::AddAlternativeLocationMapping
IVssComponent::GetAlternateLocationMapping
IVssComponent::GetAlternateLocationMappingCount
- File con differenze:
IVssComponent::AddDifferencedFilesByLastModifyTime
IVssComponent::GetDifferencedFile
IVssComponent::GetDifferencedFilesCount
- File parziali:
IVssComponent::AddPartialFile
IVssComponent::GetPartialFile
IVssComponent::GetPartialFileCount
- Destinazioni dirette:
IVssComponent::AddDirectedTarget
IVssComponent::GetDirectedTarget
IVssComponent::GetDirectedTargetCount
- Nuove destinazioni:
IVssBackupComponents::AddNewTarget
IVssComponent::GetNewTarget
IVssComponent::GetNewTargetCount
Quando un richiedente accede a queste funzionalità per un sottocomponente tramite l'interfaccia IVssBackupComponents , usa le informazioni sul componente per il componente di definizione del set di componenti, ma le informazioni sul file o sul set di file per il sottocomponente.
Analogamente, se la proprietà è accessibile tramite l'interfaccia IVssComponent , viene usata l'istanza corrispondente al sottocomponente di definizione, ma gli argomenti del file o del set di file vengono acquisiti dal sottocomponente.
Si supponga, ad esempio, che il sottocomponente "Jan" (con percorso logico "writerData\Set2") disponga di un file impostato con un percorso "c:\fred", una specifica di file "*.dat" e un flag ricorsivo true potrebbe dover essere ripristinato in un percorso alternativo.
In questo caso, un richiedente chiamerebbe IVssBackupComponents::AddAlternativeLocationMapping, usando le informazioni di "writerData" (tipo di componente, il nome del componente "writeData" e un percorso logico di "") insieme alle informazioni sul set di file di "Jan"(percorso "c:\fred", specifica del file "*.dat" e ricorsione uguale a true).
Si noti che in questo caso le informazioni sul set di file devono corrispondere esattamente alle informazioni sul set di file usate da IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles o IVssCreateWriterMetadata::AddDatabaseLogFiles per aggiungere file a Jan.
Analogamente, se un writer vuole aggiungere una destinazione diretta a un file con un percorso "c:\ethel" e il nome "lucy.dat" gestito da "Jan" (con percorso logico "writerData\Set2"), userà l'istanza IVssComponent corrispondente a "writerData", ma le informazioni sul file di "Jan".
Componenti inclusi in modo implicito nel set di ripristino
I componenti inclusi in modo implicito in un backup possono essere inclusi in modo esplicito in un ripristino se sono selezionabili per il ripristino. Come indicato in Working with Selectability for Restore and Subcomponents (Uso della selezionabilità per il ripristino e i sottocomponenti), tali componenti vengono aggiunti al documento componenti di backup usando il metodo IVssBackupComponents::AddRestoreSubcomponent .
Tuttavia, questa operazione non crea una nuova istanza dell'interfaccia IVssComponent , né è il componente accessibile direttamente tramite l'interfaccia IVssBackupComponents .
È invece necessario accedere a un componente incluso in modo esplicito per il ripristino, ma incluso in modo implicito per il backup, tramite un'istanza dell'interfaccia IVssComponent corrispondente al componente che ha definito il set di componenti di cui era membro al backup.
Ad esempio, per includere in modo esplicito per il ripristino "Set1", un sottocomponente del componente selezionabile per il componente di backup "writerData", si otterrebbero informazioni su di esso chiamando il metodo IVssComponent::GetRestoreSubcomponent dell'istanza di "writerData" dell'interfaccia IVssComponent .