vCenter中删除孤立的cp-replica

重大警告与前提说明

  1. 高风险操作:此流程涉及直接操作vCenter数据库,操作不当可能导致vCenter服务不可用或数据丢失。
  2. 必须创建备份:在执行任何删除操作前,务必已完成第2步的VC快照,并确认快照创建成功。这是最重大的恢复手段。
  3. 确认孤立对象:确保您要删除的 VM_ID 的确 代表一个已不存在于清单中的孤立虚拟机(如通过vSphere Client确认其已消失但存储未释放)。
  4. 环境差异:本指南基于VCSA(vCenter Server Appliance)。如果您使用的是Windows版vCenter,其PostgreSQL路径和命令可能不同。

vCenter中删除孤立的cp-replica


操作步骤

1. 准备工作与环境隔离

  • 暂停VDI使用:通知用户暂停通过VDI连接使用vCenter,以避免在维护期间产生数据不一致。
  • 创建vCenter快照:在vSphere Client中为vCenter Server虚拟机创建一个完整的快照,并为其添加描述性名称(例如 Pre-DBCleanup-[日期])。

2. 停止vCenter服务

  1. 使用SSH客户端连接至VCSA的地址。
  2. 输入 shell 命令以启用Bash shell。
  3. 停止核心服务:
  4. bash
  5. service-control –stop vmware-vpxd

vCenter中删除孤立的cp-replica

3. 查询并确认孤立虚拟机ID

  1. 连接到VCDB数据库:

/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres

  1. 执行SQL查询,查找所有实体(包括已删除的孤立项):

SELECT id, name FROM vpx_entity WHERE name LIKE '%<孤儿VM名称或关键字>%';

vCenter中删除孤立的cp-replica

说明:将 <孤儿VM名称或关键字> 替换为你要找的虚拟机的部分或全部名称。仔细核对查询结果中的 idname确认目标 VM_ID。假设我们确认要删除的ID是 2130

4. 执行数据库删除操作 (谨慎!)

请务必严格按照以下顺序执行删除语句,以避免外键约束错误。 在PostgreSQL命令行中逐条执行:

sql

-- 注意:将所有语句中的 2130 替换为您确认的实际孤立VM_ID。
BEGIN; -- 提议开启事务,若出错可回滚

DELETE FROM VPX_GUEST_DISK WHERE VM_ID = 2130;
DELETE FROM VPX_VM_VIRTUAL_DEVICE WHERE VM_ID = 2130; -- 修正了原文档中的条件错误
DELETE FROM VPX_VM_CONFIG_INFO WHERE ID = 2130;
DELETE FROM VPX_VM_DS_SPACE WHERE VM_ID = 2130;
DELETE FROM VPX_VM_FLE_DISK_LAYOUT WHERE VM_ID = 2130;
DELETE FROM VPX_VM_FLE_FILE_INFO WHERE VM_ID = 2130;
DELETE FROM VPX_VM_FILE_LAYOUT_EX WHERE VM_ID = 2130;
DELETE FROM VPX_VM WHERE ID = 2130;
DELETE FROM VPX_ENTITY WHERE ID = 2130;

-- 如果所有删除操作均未报错,则提交事务
COMMIT;

-- 如果任何一条语句出错,请执行回滚
-- ROLLBACK;

vCenter中删除孤立的cp-replica

说明:使用 BEGIN;COMMIT; 可以将所有删除操作包装在一个事务中。如果中间任何一步失败,可以执行 ROLLBACK; 来回滚所有操作,保证数据库一致性。操作完成后,输入 q 退出数据库。

5. 重启vCenter服务

在VCSA的shell中,执行以下命令重启服务:

vCenter中删除孤立的cp-replica

bash

service-control --start vmware-vpxd

服务启动可能需要几分钟时间。您可以通过以下命令监控启动状态:

bash

service-control --status vmware-vpxd

6. 事后验证

  1. 通过vSphere Client登录vCenter,确认孤立的虚拟机已彻底消失。
  2. 检查相关联的存储空间是否已被释放。
  3. 确认其他虚拟机和功能运行正常。
  4. (可选) 在稳定运行一段时间后(如24小时),可以思考删除在步骤1中创建的vCenter快照。

总结与提议

  • 核心保障快照是您操作安全的最终保障。
  • 精准操作:最关键的一步是准确识别要删除的 VM_ID,切勿误删。
  • 事务支持:使用 BEGIN;COMMIT;/ROLLBACK; 是一个良好的实践,增加了操作的安全性。
  • 文档更新:优化了表名和删除顺序,使其更符合实际的数据库约束关系。
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...