vRealize Automation 高可用性环境中,重新启动 horizon-workspace 服务之后,身份目录管理 Identity Manager 可能无法启动。

问题

horizon-workspace 服务因出现类似以下内容的错误而无法启动:

Error creating bean with name
  'liquibase' defined in class path resource [spring/datastore-wireup.xml]:
  Invocation of init method failed; nested exception is
  liquibase.exception.LockException: Could not acquire change log lock. Currently
  locked by fe80:0:0:0:250:56ff:fea8:7d0c%eth0
  (fe80:0:0:0:250:56ff:fea8:7d0c%eth0) since 10/29/15 

原因

由于 vRealize Automation 所用的 liquibase 数据管理实用程序出现问题,Identity Manager 可能无法在高可用性环境中启动。

解决方案

  1. 使用 SSH 以 root 身份登录到 vRealize Automation 设备。
  2. 运行以下命令以停止 horizon-workspace 服务。

    #service horizon-workspace stop

  3. 运行 su postgres 命令以成为 Postgres 用户。
  4. 更改为正确的 bin 目录。

    cd /opt/vmware/vpostgres/current/bin

  5. 运行 psql vcac 命令以连接到数据库。
  6. 从 saas.databasechangeloglock 运行 SQL 查询 select *

    如果输出显示值“t”表示 true,则必须手动释放锁定。

  7. 运行以下 SQL 查询以释放锁定:

    update saas.databasechangeloglock" set locked=FALSE, lockgranted=NULL, lockedby=NULL where id=1;

  8. 从 saas.databasechangeloglock 运行 SQL 查询 select *

    输出应显示值“f”表示 false,这意味着未锁定。

  9. 运行以下命令以退出 postgres vcac 数据库:

    vcac=# \q

  10. 运行 exit 命令以退出 postgres 用户 shell 并返回到 root 用户。
  11. 以 root 用户身份使用命令 #service horizon-workspace start 启动 horizon-workspace 服务。