从卷影副本中排除文件

在 Windows Vista 和 Windows Server 2008 及更高版本中,VSS 编写器或应用程序的开发人员可以选择从卷影副本中排除某些文件。

性能影响和卷影副本存储区域 (也称为“差异区域”,) 卷影副本中文件的使用情况与创建卷影副本后文件内容的更改量直接相关。 此外,从卷影副本中排除文件可能会减慢卷影副本的创建速度。

出于这些原因,仅当文件较大、在一个卷影副本和下一个卷影副本之间发生重大更改且不需要备份时,才应将其从卷影副本中排除。

应仅排除属于应用程序的文件。

如果在卷影副本上下文中设置了VSS_VOLSNAP_ATTR_NO_AUTORECOVERY标志,则表示禁用自动恢复,并且无法从卷影副本中排除任何文件。 有关详细信息,请参阅 _VSS_VOLUME_SNAPSHOT_ATTRIBUTES 枚举。

使用 AddExcludeFilesFromSnapshot 方法

VSS 编写器可以从卷影副本中排除文件,如下所示:

  1. 调用 IVssCreateWriterMetadataEx::AddExcludeFilesFromSnapshot 方法来报告要排除的文件。
  2. 在编写器的 CVssWriter::OnPostSnapshot 方法中,从卷影副本中删除文件。

使用 FilesNotToSnapshot 注册表项

注意

FilesNotToSnapshot 注册表项只供应用程序使用。 尝试使用它的用户将遇到如下所示的限制:

  • 它无法删除在 Windows Server 上使用以前版本功能创建的卷影副本中的文件。
  • 它无法删除共享文件夹的卷影副本中的文件。
  • 它可以从使用 DiskShadow 实用工具创建的卷影副本中删除文件,但无法从使用 Vssadmin 实用工具创建的卷影副本中删除文件。
  • 系统会尽力从卷影副本中删除文件。 这意味着不能保证它们被删除。

 

VSS 应用程序可以在创建卷影副本期间使用以下注册表项从卷影副本中删除文件:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot

此注册表项具有可排除其文件的每个应用程序的REG_MULTI_SZ值。 这些文件由可包含 * 通配符的完全限定路径指定。

在所有情况下,如果没有与路径字符串匹配的文件,则忽略该条目。

将文件添加到相应的注册表项值后,卷影副本优化编写器在创建过程中会尽力将其从卷影副本中删除。

如果无法指定完全限定的路径,也可以使用 $UserProfile$ 或 $AllVolumes$ 变量来隐含路径。 例如:

  • $UserProfile$\Directory\Subdirectory\FileName.*
  • $AllVolumes$\TemporaryFiles\*.*

若要使路径成为递归路径,请将“/s”追加到末尾。 例如:

  • $UserProfile$\Directory\Subdirectory\FileName.* /s
  • $AllVolumes$\TemporaryFiles\*.* /s

$UserProfile$ 变量导致路径字符串应用于计算机上的所有用户配置文件。 通过检查以下注册表项来枚举用户配置文件:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList

$AllVolumes$ 变量会导致路径字符串应用于计算机上的所有卷影副本。 例如,假设路径为“$AllVolumes$\TemporaryFiles\*.* /s”,并且计算机有三个卷:C:、D:和 E:。 如果 C: 和 E: 包含路径“\TemporaryFiles\”,卷 D: 仅包含路径 D:\Data\,则目录树 C:\TemporaryFiles\ 将从 C:的卷影副本中删除,目录树 E:\TemporaryFiles\ 将从 E:的卷影副本中删除。

管理员可以使用以下注册表项来禁用 $UserProfile$ 变量的扩展:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vss\Settings

在此注册表项下,指定 DisableUserProfileExpansion 作为值名称,为值类型指定REG_DWORD,为值数据指定非零值。

关于 FilesNotToBackup 注册表项

FilesNotToBackup 注册表项可用于指定备份应用程序不应备份或还原的文件和目录的名称。 但是,它不会从卷影副本中排除这些文件。 有关此注册表项的详细信息,请参阅 用于备份和还原的注册表项和值