微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在没有删除选项的Hyper-V中删除备份检查点

在没有删除选项的Hyper-V中删除备份检查点

作者: ZUBAIR ALEXANDER · 2017年4月14日

 

Hyper-V不需要太多维护,但是偶尔您会看到连接到虚拟机(VM)的检查点(以前称为快照)无法删除,因为删除选项不可用。我在Windows Server 2012 R2数据中心上运行的Hyper-V上遇到了此问题。有一天,服务器备份出了点问题,我注意到我没有创建一个检查点。它是由我用来备份检查点的第三方应用程序创建的。该检查点称为ServerName –  Backup,其中ServerName是虚拟机的名称。我想导出VM,并且不想在备份中有任何检查点。我已经备份了虚拟机,并且一切工作正常,所以我不太在意系统创建的备份。右键单击要删除的检查点时,我注意到选项“删除检查点”不可用。这就是我所看到的。

 

请注意, 上面的屏幕截图中缺少删除检查点删除检查点子树的选项。这是标准检查点的选项。

如果遇到这种情况,请首先尝试以下技术。

  1. 在左侧窗格的Hyper-V管理器中右键单击主机服务器名称,然后选择“刷新”。
  2. 关闭并重新打开Hyper-V管理器。
  3. 突出显示检查点,然后使用键盘上的Delete键。

如果这些提示均无帮助,请使用PowerShell摆脱不需要的检查点。这适用于您要删除的所有检查点。

删除检查点(快照)的PowerShell脚本

要在Hyper-V中删除检查点,请按照以下说明进行操作。该脚本应可在任何操作系统(例如Windows Server 2008,Windows Server 2012,Windows Server 2016,Windows 10等)上安装的Hyper-V上运行。

  1. 在虚拟机所在的计算机上启动PowerShell。我更喜欢使用PowerShell ISE。
  2. 键入以下命令,然后按Enter。VMSnapshot参数引用VM检查点。如前所述,在Microsoft更改其名称之前,该检查点在Hyper-V中被称为快照。
    Get-VMSnapshot -ComputerName <计算机名称> -VMName <VM名称> | Remove-VMSnapshot
    垂直栏是标准键盘上Enter键上方的管道符号。如果您的计算机名为SERVER1,并且虚拟机的名称sqlServer,则将使用以下命令。确保使用VM的名称,而不是checkpoint的名称。如果只有一个检查点需要删除,则以下命令将起作用。-ComputerName <计算机名称> 参数是可选的,但是您必须指定VMName参数。换句话说,以下任一命令都应起作用。
    Get-VMSnapshot- 计算机名“ SERVER1” -VMName“ sqlServer” | Remove-VMSnapshot
    或  Get-VMSnapshot -VMName“ sqlServer” | 删除VMSnapshot 

  3. 如果您有多个检查点,请在最后使用-Name < Checkpoint-Name >   参数。例如,如果虚拟机名为CONTOSO,而要删除的检查点称为CON​​TOSO –(9/6/2018 – 8:07:13 PM),则命令将如下所示:
    Get-VMSnapshot -VMName“ CONTOSO” -名称“ CONTOSO –(6/20/2018 – 10:48:49 AM)” | 删除VMSnapshot

    指定快照名称

  4. 删除检查点后,Hyper-V将立即在Hyper-V管理器中启动合并过程。根据虚拟硬盘的大小,合并过程可能需要一些时间,因此请耐心等待。
  5. 如果需要导出虚拟机,则合并完成后就可以继续。

文章更新:9/13/18


版权所有©2017 SeattlePro Enterprises,LLC。版权所有。

 

17个回复

  1. 罗伯特·斯通

    我可以简单地突出显示这些类型的检查点之一,然后按Delete键。发生合并,.avhd文件删除我在邮件服务器上存有大量邮件,我对此很担心。如果发生合并,我会丢失任何以这种方式删除这些数据的数据吗?

  2. 祖拜尔·亚历山大(Zubair Alexander)

    Robert,您可以删除的检查点是您创建的标准检查点(即快照)。这就是为什么您可以删除它们。我的文章是关于无法删除的检查点的。

    就您的问题而言,您应该知道检查点只是快照,可以将您的服务器还原到创建检查点的时刻。如果删除在11/19/17创建的检查点,则无法将服务器还原到在11/19/17创建的时间。它不会删除您当前的VM数据,只会删除检查点。如果您不确定是谁创建了快照以及为什么创建了快照,但是您知道邮件服务器当前运行良好。您可以今天创建一个新的检查点,然后删除旧的检查点。另一种更安全的方法是先导出邮件服务器VM。这将导出整个虚拟机和所有当前检查点。然后,您可以摆脱提到的大型检查点。记住,该检查点(或快照)未设计为用作备份。它们是针对特定情况而设计的。例如,您将要在Exchange Server上安装Service Pack 2。您创建一个检查点,然后安装SP2。如果出现问题,可以还原检查点,将其恢复到安装SP2之前的状态。一切正常后,您应该删除检查点。

    作为最佳实践,请记住在创建检查点后重命名它,以便您了解检查点的用途。例如,“在安装Exchange SP2之后–(11/21/2017 – 8:51:44 AM)。”希望这会有所帮助!

  3. 克拉兹

    谢谢你 我遇到了同样的问题,我看不到删除选项,但是能够突出显示并按删除键,现在它正在合并。

    我的是恢复检查站,而不是常规检查站,按照罗伯特的评论确实有效。

  4. 肖恩·赫尔曼

    嘿祖拜尔,Robert Stone和Cradz都是正确的,即使在上下文菜单中看不到删除选项,您也可以使用键盘上的“删除”键进行删除。在尝试之前,我只是要运行命令。

  5. 祖拜尔·亚历山大(Zubair Alexander)

    嗨,肖恩,感谢您的反馈。坦白说,我不记得一年多以前写文章时是否尝试过删除键。我确实记得,重新启动服务器没有任何作用。无论如何,故事的寓意似乎是首先尝试删除键。如果由于某种原因不起作用,请尝试使用PowerShell脚本。再次感谢您抽出宝贵的时间提供反馈。

  6. 洛朗·切塞尔(Laurent Chessel)

    非常感谢这篇文章:它对我有很大帮助!

  7. 菲尔

    嗨,
    您使用通用命令命名向我们展示了如何做,但是那些通用名称令人困惑……
    “ server1”
    sqlserver”
    我的主机称为srv1,并且仅托管1个名为srv2的虚拟机
    。我看到的检查点名称为“ srv2 –( 2018-08-29 – 10:01:07 PM)”
    所以……我的命令看起来像什么?
    Get-VMSnapshot -ComputerName“ srv1” -VMName“ srv2 –(2018-08-29 – 10:01:07 PM)” | 删除VMSnapshot

    tx!

  8. 祖拜尔·亚历山大(Zubair Alexander)

    嗨,菲尔,很抱歉感到困惑。将来,我将尝试使用非通用名称。您需要指定VM名称,而不是检查点的名称。实际上,您甚至不必指定主机服务器,您可以使用命令Get-VM“ srv2” | Remove-VMSnapshot删除快照。

    不过,请提防弯角报价。有时,如果您从网站复制并粘贴引号,则该命令可能会失败。在这种情况下,请将文本从网站复制到记事本中,然后从记事本复制并将其粘贴到PowerShell或命令提示符中,以确保您粘贴的是纯ASCII文本。

    如果只有一个快照,则该命令将删除该快照。但是,如果您有多个快照,请添加-Name删除您想要的一个,就像这样:
    Get-VMSnapshot -VMName“ srv2” -Name“ srv2 –(2018-08-29 – 10:01:07 PM)” | 删除VMSnapshot

    祝好运!

  9. 菲利普

    效果很好,<ins class=

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐