升级 vRealize Business for Cloud后,成本计算可能会失败。

问题

升级vRealize Business for Cloud后,Azure 端点的成本计算可能偶尔会失败。您可能会在服务器日志中看到 Multiple entries with same key 错误消息。

原因

出现此问题的原因是,升级后,在 FactsRepo 清单服务中创建了重复条目。

解决方案

  1. 使用系统管理员凭据登录到 vRealize Business for Cloud
  2. 输入以下命令启动 Postgres 客户端。

    /usr/ITFM-Cloud/va-tools/bin/db-client.sh

  3. 在 Postgres 客户端中输入以下命令。

    delete from itfm_azure_resource_details where id in (select itfm_azure_resource_details.id from (select resource_id, month, count(*) from itfm_azure_resource_details group by resource_id, month having count(*)>1 ) as new_details inner join itfm_azure_resource_details on itfm_azure_resource_details.resource_id=new_details.resource_id and itfm_azure_resource_details.month=new_details.month);

  4. 输入以下命令退出 Postgres 客户端。

    \q

  5. 输入以下命令登录到 MongoDB。

    mongo

  6. 输入以下命令。

    use fr_system

  7. 要从 Azure 资源集合获取重复项,请输入以下查询。

    db.getCollection('azureResource').aggregate([{$group: { _id: { resourceId:"$resourceId" }, count: { $sum: 1 } }},{$match : {count: {$gte :2}}}]);

  8. 将输出复制到一个文本文件中。

    输出分别在两列中包含 resourceIdcount 信息。

  9. 输入以下命令,逐个移除每个重复条目,每个条目输入该命令一次。

    db.azureResource.deleteMany({'resourceId':'<resourceIdFromQuery>'});

    必须将 <resourceIdFromQuery> 替换为输出(已复制到文本文件)中的每个条目的 resourceId

  10. 要退出 MongoDB,请按以下组合键。

    Ctrl+c