其实卷影副本(Shadow Copies)并不是Windows Server 才有的功能但是对于Windows Server 这样的Server系统平台卷影副本的使用更有重要意义通过卷影副本功能管理员可以在指定的卷上创建备份的副本我们可以将这些备份的副本看成时间快照可以根据需要将文件恢复以前的某个版本因此它可以极大地保证服务器数据的安全不过基于图形界面的控制台下卷影副本管理过程比较繁琐也不够高效而命令行下的操作就快捷高效多了所以命令行下的卷影副本管理技术是管理员们必须掌握的希望本文能够帮助大家做到这一点 vssadmin工具简介 vssadmin是Windows Server 中用来管理卷影副本的工具通过vssadmin我们不仅能够对本地系统中的卷影副本进行管理而且可以通过远程桌面登录到远程服务器对其上的卷进行配置管理 启用卷影副本 默认情况下Windows Server 系统的各卷是启用卷影副本的如果因为人为因素或者其他原因关闭了卷影副本功能我们可以通过命令行快速启动它启用卷影副本的命令格式是vssadmin add shadowstorage /for=ForVolumeSpec /on=OnVolumeSpec 其中/for=ForVolumeSpec指定要启用卷影副本的本地卷而/on=OnVolumeSpec则指定将指定卷的副本保存在那个卷上当然要启用卷影副本的卷和保存副本的卷可以是一个卷不过笔者建议将其隔离的做法更科学一些 下面我们举一个例子如果要启用本地C盘的卷影副本功能并且将该卷的副本保存到D盘上我们可以在命令行下执行命令vssadmin add shadowstorage /for=c: /on=d:即可如果执行命令vssadmin add shadowstorage /for=e: /on=e:则启动了E盘的卷影副本并且其副本也保存在E盘(图) 启用卷影副本 禁用卷影副本 要禁用某个卷上的卷影副本可以直接使用vssadmin delete shadowstorage不过需要注意的是在目标卷上所有保存的快照映像被删除之前是无法在该卷上禁用卷影副本的因此我们首先需要删除该卷上保存的所有快照映像然后在该卷上再执行禁用卷影副本操作其命令格式是vssadmin delete shadowstorage /for=forvolumespec其中/for=forvolumespec指定要禁用卷影副本的本地驱动器比如我们要对C盘禁用卷影副本可以执行命令vssadmin delete shadowstorage /for=c:即可(图) 禁用卷影副本 自定义卷影副本最大存储容量 在启用了磁盘的卷影副本后默认情况下其使用可用的最大容量作为副本的存储空间毫无疑问这会造成磁盘空间的极大浪费而且对于服务器系统来说无节制的侵占磁盘空间造成磁盘空间告急会影响其它服务的正常运行因此笔者建议大家一定要对卷影副本所占的最大磁盘空间进行限制在此我们要用到vssadmin工具的/maxsize参数该参数接收类似KBMBGBTB等存储单位不过这个值指定的最小值不能低于MB 我们举一个例子在命令行下执行vssadmin add shadowstorage /for=d: /on=e: /maxsize=GB命令执行后在D盘启用卷影副本在E盘保存其副本数据并且将可用的副本保存空间上限定制为GB有的时候我们定义的卷影副本存储空间不够或者有太多冗余此时我们可以通过Resize Shadow命令来重新调整空间的大小这个命令接收与add命令一样的参数同时必须在同一个关联的存储中进行也就是说如果C盘的卷影副本存储使用了D盘那么就只能用下面的命令vssadmin add shadowstorage /for=c: /on=d: /maxsize=GB来更改卷影副本存储空间的大小(图) 自定义卷影副本最大存储容量 查看卷影副本信息 对于服务器来说本地磁盘中保存了很多卷影副本我们如何快速获取其详细信息呢?同样非常简单vssadmin工具为我们提供了list shadows和list shadowstorage两个命令其中list shadows可显示卷上现有的卷影副本默认情况下卷上所有的卷影副本都会显示出来为了缩小范围我们可以添加/for=forvolumespec参数仅列出指定的卷信息或者使用/shadow=shadowld参数仅列出特定卷影副本信息通常情况下我们只需执行命令vssadmin list shadows即可list shadowstorage命令更加强大它可以列出关联到该系统上的所有卷影副本的存储信息同样的我们可以添加参数/for=forvolumespec和/on=onvolumespec以指定目标卷或者目标卷影副本以限制输出的信息(图) 查看卷影副本信息 手工创建快照 在启用卷影副本后共享文件夹的快照就会根据默认的计划自动创建不过有的时候我们需要手工创建快照此时我们可以使用create shadow命令命令格式是vssadmin create shadow /for=forvolumespec其中forvolumespec是要创建快照的本地卷例如我们执行命令vssadmin create shadow /for=D:就会为D盘上的共享文件创建快照有的时候我们会遇到卷影副本服务非常繁忙而造成创建快照延迟或者失败此时我们可以调用/autoretry参数在其后指定一个时间间隔这样就能够在这个时间间隔之后重新创建比如我们将上面的命令变成vssadmin create shadow /for=d: /autoretry=这样如果创建失败就会在秒之后重新执行快照创建操作(图) 手工创建快照 快速恢复卷 如果要将整个卷恢复到较早期的快照状态我们可以使用revert shadow命令需要说明的时要指定恢复到的快照必须使用对应的卷影标识符这时使用/shadow=shadowID即可其中/shadow=shadowID的目标快照映像的全局唯一标识符还有包括{}例如如果希望使用ID为{cfefdadcddd}的快照映像进行恢复C盘执行命令vssadmin revert shadow /shadow={cfefdadcddd}即可不过一定要输入正确的标识符如果ID错误会提示错误命令成功执行后会提升输入Y这样vssadmin就执行恢复操作需要主要的是如果目标卷上有打开的文件vssadmin恢复操作将会无法进行不过我们可以通过命令/forceDismount强制进行恢复卷在恢复过程中我们可执行命令vssadmin query reverts查看恢复操作的状态(图) 快速恢复卷 删除快照映像 在卷影副本管理中我们有时需要删除某个卷上的特定快照这如果要在控制台中完成简直是太麻烦了不过利用vssadmin工具的delete shadows命令可轻易实现其命令格式是vssadmin delete shadows /for=forvolumespec /oldest其中/for=forvolumespec指定用于存储快照的本地卷比如我们在C盘上配置了卷影副本如果要删除其中最早的快照执行命令vssadmin delete shadows /for=C: /oldest在输入Y确认后就会报告删除成功(图) 删除快照映像 当然我们也可以提供卷影标识来删除快照其命令参数是/shadow=shadowID这里的shadowID是要删除的快照映像对应的全局唯一标识符使用时要包含{}比如我们要删除ID为{abdeafabdceadfc}的快照可以执行命令vssadmin delete shadows /shadow={abdeafabdceadfc}即可这种快照删除方法直指目标非常快捷不过如果你输入了不存在的ID后会提升错误信息除了针对性的快照删除如果我们要删除所有的快照该如何操作呢?同样非常简单利用vssadmin工具的delete shadows /add就可以了执行命令vssadmin delete shadows /add后本地磁盘中的所有快照都会被删除因此这些该命令时一定要慎重另外需要说明的是删除所有快照并等于禁止了卷上的卷影副本 (图) 删除快照映像 总结本文基于实例比较全面地解析了在Windows Server 平台上利用vssadmin工具进行卷影副本管理的个方面应该说这个方面囊括了卷影副本管理的最主要方面希望本文对于大家提高卷影副本管理效率有帮助 |