您可以使用单元管理工具的 reconfigure-database 子命令更新 vCloud Director 数据库的连接属性。

vCloud Director 安装或 vCloud Director 设备部署过程中,您需要配置数据库类型和数据库连接属性。请参见vCloud Director 安装、配置和升级指南》

在配置 vCloud Director 数据库后,可以使用 reconfigure-database 子命令更新数据库连接。您可以将现有 vCloud Director 数据库移动到新主机,更改数据库用户名和密码,或为 PostgreSQL 数据库启用 SSL 连接。

如果在不重新配置组中单元的情况下将 vCloud Director 数据库迁移到 PostgreSQL,则可以使用 reconfigure-database 子命令将这些单元连接到新的 PostgreSQL 数据库。有关迁移到 PostgreSQL 的信息,请参见迁移到 PostgreSQL 数据库

          cell-management-tool
          reconfigure-database 
          options
        
重要事项:

通过运行 reconfigure-database 命令所做的更改会写入到单元的全局配置文件 global.properties 和响应文件 responses.properties 中。在运行该命令之前,确认响应文件位于 /opt/vmware/vcloud-director/etc/responses.properties 且可写。有关保护和重用响应文件的信息,请参见vCloud Director 安装、配置和升级指南》

如果不使用 --pid 选项,要应用更改,必须重新启动单元。

表 1. 单元管理工具选项和参数,reconfigure-database 子命令
选项 参数 描述
--help

(-h)

提供此类别中可用选项的摘要。
--database-host

(-dbhost)

vCloud Director 数据库主机的 IP 地址或完全限定域名 更新 database.jdbcUrl 属性的值。
重要事项: 该命令仅验证值格式。
--database-instance

(-dbinstance)

SQL Server 数据库实例。 可选。当数据库类型为 sqlserver 时使用。
重要事项: 如果包括此选项,则必须提供最初配置数据库时指定的相同值。
--database-name

(-dbname)

数据库服务名称。 更新 database.jdbcUrl 属性的值。
--database-password

(-dbpassword)

数据库用户的密码。 更新 database.password 属性的值。您提供的密码会在存储为属性值之前进行加密。
--database-port

(-dbport)

数据库主机上的数据库服务所使用的端口号。 更新 database.jdbcUrl 属性的值。
重要事项: 该命令仅验证值格式。
--database-type

(-dbtype)

数据库类型。下列之一:
  • sqlserver
  • postgres
更新 database.jdbcUrl 属性的值。
--database-user

(-dbuser)

数据库用户的用户名。 更新 database.user 属性的值。
--database-ssl truefalse 当数据库类型为 postgres 时使用。将 PostgreSQL 数据库配置为需要来自 vCloud Director 的 SSL 连接。
--pid

(-i)

单元的进程 ID。 可选。对正在运行的 vCloud Director 单元运行热重新配置。不需要重新启动单元。

如果与 --private-key-path 一起使用,则可以立即对本地和远程单元运行此命令。

--private-key-path 单元的私钥的路径名。 可选。服务器组中的所有单元正常关闭,更新其数据库属性,然后重新启动。
重要事项: 所有单元都必须允许超级用户在不输入密码的情况下进行 SSH 连接。
--remote-sudo-user 具有 sudo 权限的用户名。 当远程用户与 root 不同时,与 --private-key-path 选项一起使用。

对于设备,您可以将此选项用于 postgres 用户,例如 --remote-sudo-user=postgres

使用选项 --database-host--database-port 时,该命令会验证参数的格式,但不会测试主机和端口组合的网络可访问性或是否存在指定类型的正在运行的数据库。

如果使用 --private-key-path 选项,所有单元都必须配置为允许超级用户在不输入密码的情况下进行 SSH 连接。例如,要执行验证,可以运行以下 Linux 命令:
sudo -u vcloud ssh -i private-key-path root@cell-ip
此示例将您的身份设置为 vcloud,然后以 root 身份与 cell-ip 处的单元建立 SSH 连接,但不提供 root 密码。如果本地单元上 private-key-path 中的私钥可由用户 vcloud.vcloud 读取,且相应的公钥位于 cell-ip 处 root 用户的 authorized-keys 文件中,此命令将成功。
注:

vcloud 用户、vcloud 组和 vcloud.vcloud 帐户由 vCloud Director 安装程序创建,用作 vCloud Director 进程运行时所用的身份。vcloud 用户没有任何密码。

更改 vCloud Director 数据库用户名和密码

要更改 vCloud Director 数据库用户名和密码,并将所有其他连接属性保留为最初配置的值,可以运行以下命令:
[root@cell1 /opt/vmware/vcloud-director/bin]#cell-management-tool reconfigure-database \ -dbuser vcd-dba -dbpassword P@55w0rd

通过对所有单元进行热重新配置来更新 vCloud Director 数据库 IP 地址

如果您是具有 sudo 权限的非 root 用户,要立即更改所有单元上的 vCloud Director 数据库的 IP 地址,可以运行以下命令:

[sudo@cell1 /opt/vmware/vcloud-director/bin]#cell-management-tool reconfigure-database \ --dbhost db_ip_address -i $(service vmware-vcd pid cell) --private-key-path=path_to_private-key \ --remote-sudo-user=non-root-user

vCloud Director 数据库迁移到 PostgreSQL 后重新配置单元

如果将 vCloud Director 数据库从 Oracle 或 Microsoft SQL Server 迁移到了 PostgreSQL,而没有重新配置服务器组中的单元,要将每个单元连接到新的 PostgreSQL 数据库,您可以运行以下命令:
[root@cell1 /opt/vmware/vcloud-director/bin]#cell-management-tool reconfigure-database \ -dbhost psql.example.com -dbport 5432 -dbuser vcd-dba -dbname vcloud -dbpassword P@55w0rd \ -dbtype postgres