李成笔记网

专注域名、站长SEO知识分享与实战技巧

VMware故障——内容库订阅失败_vmware 内容库

问题描述

在 vCenter A 创建并发布内容库后,于 vCenter B 订阅并进行同步时出现以下错误:



出现常规运行时错误。发生错误: result returns more than one elements; nested exception is javax.persistence.NonUniqueRe

原因分析

该错误通常由数据库中存在重复条目引起,与内容同步端口(如 KB 1005189 中提到的 902 端口)无关。


解决方案

前提准备

  1. 对 vCenter 进行备份
    在执行任何数据库操作前,
    必须为涉及的所有 vCenter Server 创建离线快照。若 vCenter 处于 Linked Mode 中,需将所有节点关机后进行快照操作。
  2. 操作风险说明
    直接操作数据库存在一定风险,请谨慎执行以下步骤。

操作步骤

  1. 登录 vCenter 命令行
    通过 SSH 或控制台访问 vCenter 服务器的命令行界面。
  2. 连接数据库
    执行以下命令以访问 PostgreSQL 数据库:
  3. /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres
  4. 检查重复条目
    在数据库命令行中执行以下查询,确认是否存在重复数据:
  5. SELECT * FROM cl_libraryitem_certificate_verification;
  6. 删除重复数据
    若确认存在重复条目,执行以下命令删除重复项(请整体复制并执行):
  7. DELETE FROM cl_libraryitem_certificate_verification cert_ver_old USING ( SELECT MIN(ctid) as ctid, itemId FROM cl_libraryitem_certificate_verification GROUP BY itemId HAVING COUNT(*) > 1 ) cert_ver_new WHERE cert_ver_new.itemId = cert_ver_old.itemId AND cert_ver_new.ctid <> cert_ver_old.ctid;
  8. 重新尝试同步 re-sync
    完成数据库操作后,返回 vCenter B 的内容库管理界面,重新尝试同步操作。

验证与后续

  • 若同步操作顺利完成,则问题已解决。
  • 如问题仍然存在,请检查 vCenter 日志(如 vcdb.logcontent-library.log)以获取更多线索,或联系 VMware 技术支持进一步排查。

注意事项

  • 数据库操作需严格遵循步骤,误操作可能导致数据不一致或系统异常。
  • 如处于生产环境,建议在维护窗口内进行操作。

如果有其他问题或需要进一步协助,请提供更多错误日志或详细描述。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言