Compartilhar via


VSS_RESTOREMETHOD_ENUM enumeração (vswriter.h)

A enumeração VSS_RESTOREMETHOD_ENUM é usada por um gravador em tempo de backup para especificar por meio de seu Documento de Metadados de Gravador o método de restauração de arquivo padrão a ser usado com todos os arquivos em todos os componentes que ele gerencia.

O método de restauração é de todo o gravador e também é chamado de destino de restauração original e indicado por um valor VSS_RESTORE_TARGET de VSS_RT_ORIGINAL.

Syntax

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

Constantes

 
VSS_RME_UNDEFINED
Valor: 0
Nenhum método de restauração é definido.


Isso indica um erro por parte do gravador.

Não há suporte para esse valor para gravadores expressos.
VSS_RME_RESTORE_IF_NOT_THERE
O solicitante deve restaurar os arquivos de um componente selecionado ou conjunto de componentes somente se não houver versões do
esses arquivos atualmente no disco.


A menos que mapeamentos de localização alternativos sejam definidos para restauração de arquivo, se uma versão de qualquer arquivo gerenciado por um
componente selecionado ou conjunto de componentes está atualmente no disco, nenhum dos arquivos gerenciados pelo selecionado
componente ou conjunto de componentes deve ser restaurado.

Se o mapeamento de localização alternativo de um arquivo for definido e uma versão dos arquivos estiver presente no disco no
local original, os arquivos devem ser gravados no local alternativo somente se nenhuma versão do arquivo existir em
o local alternativo.
VSS_RME_RESTORE_IF_CAN_REPLACE
O solicitante deve restaurar arquivos de um componente ou componente selecionado definido somente se os arquivos atualmente no disco puderem ser substituídos.


A menos que mapeamentos de localização alternativos sejam definidos para restauração de arquivo, se houver uma versão de qualquer arquivo que
não pode ser substituído do componente selecionado ou do conjunto de componentes no disco, nenhum dos arquivos gerenciados pelo
componente ou conjunto de componentes deve ser restaurado.

Se o mapeamento de localização alternativo de um arquivo for definido, os arquivos deverão ser gravados no local alternativo.
VSS_RME_STOP_RESTORE_START
O solicitante deve executar a operação de restauração da seguinte maneira:


  1. Envie o evento PreRestore e aguarde todos os gravadores processá-lo.

  2. Parar o serviço.

  3. Restaure os arquivos para seus locais originais.

  4. Reinicie o serviço.

  5. Envie o evento PostRestore e aguarde todos os gravadores processá-lo.


O serviço a ser interrompido é especificado com antecedência ao chamar o método IVssCreateWriterMetadata::SetRestoreMethod . O solicitante pode obter o nome do serviço chamando o método IVssExamineWriterMetadata::GetRestoreMethod .

Observe que, se o gravador estiver hospedado no serviço que está sendo interrompido, esse gravador não receberá o evento PostRestore , pois a ID da instância do gravador será alterada quando o serviço for interrompido e reiniciado.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
O solicitante deve restaurar os arquivos do componente ou componente selecionado definido para o local especificado pelo
mapeamento de localização alternativo especificado no arquivo de metadados do componente do gravador. (Consulte
IVssCreateWriterMetadata::AddAlternateLocationMapping,
IVssComponent::GetAlternateLocationMapping,
IVssExamineWriterMetadata::GetAlternateLocationMapping,
e IVssWMFiledesc::GetAlternateLocation.)

Não há suporte para esse valor para gravadores expressos.
VSS_RME_RESTORE_AT_REBOOT
O solicitante deve restaurar os arquivos de um componente ou componente selecionado definido após a reinicialização do computador.


Os arquivos a serem restaurados devem ser copiados para um local temporário e o solicitante deve usar
MoveFileEx com o
MOVEFILE_DELAY_UNTIL_REBOOT sinalizador para concluir a restauração desses arquivos em seus
local adequado depois que o computador é reiniciado.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
Se possível, o solicitante deve restaurar os arquivos do componente ou componente selecionado definidos como corretos
local imediatamente.


Se houver versões de qualquer um dos arquivos gerenciados pelo componente ou componente selecionado definido no disco que
não pode ser substituído, então todos os arquivos gerenciados pelo componente ou conjunto de componentes selecionados devem ser restaurados
depois que o computador é reiniciado.

Nesse caso, os arquivos a serem restaurados devem ser copiados para um local temporário no disco e o solicitante deve
usar MoveFileEx com o
MOVEFILE_DELAY_UNTIL_REBOOT sinalizador para concluir a restauração desses arquivos em seus
local adequado depois que o computador é reiniciado.
VSS_RME_CUSTOM
O solicitante deve usar um método de restauração personalizado para restaurar os arquivos gerenciados pelo selecionado
componente ou conjunto de componentes.


Uma restauração personalizada pode usar funções de API de recuperação de arquivo ou protocolos privados para um determinado gravador
. Essa restauração não precisa usar as informações no arquivo de metadados do componente gravador. (Consulte
Backups e restaurações personalizados para obter mais
information.)

Não há suporte para esse valor para gravadores expressos.
VSS_RME_RESTORE_STOP_START
O solicitante deve executar a operação de restauração da seguinte maneira:


  1. Envie o evento PreRestore e aguarde todos os gravadores processá-lo.

  2. Restaure os arquivos para seus locais originais.

  3. Envie o evento PostRestore e aguarde todos os gravadores processá-lo.

  4. Parar o serviço.

  5. Reinicie o serviço.


O serviço a ser interrompido é especificado pelo gravador com antecedência quando ele chama o método IVssCreateWriterMetadata::SetRestoreMethod . O solicitante pode obter o nome do serviço chamando o método IVssExamineWriterMetadata::GetRestoreMethod .

Comentários

Um gravador define o método de restauração no Documento de Metadados do Gravador chamando IVssCreateWriterMetadata::SetRestoreMethod durante o backup para especificar seu método de restauração desejado em seus metadados.

Um solicitante recupera o método de restauração solicitado de um gravador chamando IVssExamineWriterMetadata::GetRestoreMethod e atua de acordo.

O método de restauração se aplica a todos os arquivos em todos os componentes de um determinado gravador.

O método de restauração poderá ser substituído em uma base componente por componente no momento da restauração se um gravador definir um valor VSS_RESTORE_TARGET diferente de VSS_RT_ORIGINAL com IVssComponent::SetRestoreTarget.

Um método de restauração de VSS_RME_RESTORE_TO_ALTERNATE_LOCATION sem um mapeamento de local alternativo definido constitui um erro de gravador e o solicitante deve reportá-lo como tal.

Quando um método de restauração requer um marcar no status de arquivos atualmente em disco (VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE ou VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE), o ideal é usar operações de E/S de arquivo para verificar se um componente inteiro pode ser restaurado antes de continuar com a restauração.

A maneira mais segura de fazer isso seria abrir exclusivamente (sem compartilhamento) todos os arquivos de destino com CreateFile antes da restauração.

No caso de VSS_RME_RESTORE_IF_NOT_THERE, um sinalizador de disposição de criação de CREATE_NEW também deve ser definido.

Se as operações abertas forem bem-sucedidas, a restauração poderá continuar e deverá usar os identificadores retornados por CreateFile para realmente gravar dados restaurados no disco.

Caso contrário, um erro pode ser retornado, dependendo do método, ou mapeamento de localização alternativo verificado e (se estiver disponível) usado ou os arquivos de componentes preparados para restauração na próxima reinicialização.

Isso pode ser um problema para componentes muito grandes (alguns dos quais podem ter milhares de arquivos), devido à sobrecarga do sistema.

Nesse caso, uma opção disponível, embora menos confiável, é fazer o seguinte:

  1. Copie todos os arquivos atualmente em disco e para serem restaurados em um cache temporário.
  2. Tente substituir os arquivos atualmente em disco pelos arquivos de backup (que podem estar em disco em uma segunda área temporária ou em um meio de backup).
  3. Se algum arquivo não for restaurado, encerre a operação de restauração e copie os arquivos originais de volta de sua localização temporária e prossiga com mapeamento de local alternativo ou restauração em operações de reinicialização.
Para obter mais informações sobre locais de backup e restauração de arquivos em VSS, consulte Locais de backup e restauração não padrão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho vswriter.h

Confira também

IVssBackupComponents::AddAlternativeLocationMapping

IVssComponent::GetAlternateLocationMapping

IVssCreateWriterMetadata::AddAlternateLocationMapping

IVssCreateWriterMetadata::SetRestoreMethod

IVssExamineWriterMetadata::GetAlternateLocationMapping

IVssExamineWriterMetadata::GetRestoreMethod

IVssWMFiledesc::GetAlternateLocation

VSS_WRITERRESTORE_ENUM