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. 以 root 用户身份登录到 vRealize Automation 设备上的控制台会话。
  2. 通过输入以下命令停止 horizon-workspace 服务。

    #service horizon-workspace stop

  3. 以超级用户身份打开 Postgres shell。

    su postgres

  4. 导航到正确的 bin 目录。

    cd /opt/vmware/vpostgres/current/bin

  5. 连接到数据库。

    psql vcac

  6. 从 saas.databasechangeloglock 运行以下 SQL 查询。

    select * from databasechangeloglock;

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

  7. 如果您需要手动释放锁定,请运行以下 SQL 查询。

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

  8. 从 saas.databasechangeloglock 运行以下 SQL 查询。

    select * from databasechangeloglock;

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

  9. 退出 Postgres vcac 数据库。

    vcac=# \q

  10. 关闭 Postgres shell。

    exit

  11. 启动 horizon-workspace 服务。

    #service horizon-workspace start