您可以通过使用单元管理工具的 dbmigrate 子命令,将现有 vCloud Director 数据库从 Oracle 或 Microsoft SQL Server 迁移到 PostgreSQL。

          cell-management-tool
          dbmigrate
          options
        
重要事项:

不支持热迁移。在开始数据库迁移之前,必须停止 vCloud Director 服务。在单元平台上打开控制台、shell 或终端窗口,并运行 Linux 命令 service vmware-vcd stop。有关启动和停止 vCloud Director 服务的信息,请参见vCloud Director 安装和升级指南》

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

(-h)

提供此类别中可用命令的摘要。
--database-host

(-dbhost)

IP 地址或完全限定域名。 目标 PostgreSQL 数据库主机的 IP 地址或完全限定域名。
--database-name

(-dbname)

PostgreSQL 数据库的名称。 您在创建目标 PostgreSQL 数据库时选择的名称。通常为 vcloud
--database-password

(-dbpassword)

PostgreSQL 数据库用户的密码。 目标 PostgreSQL 数据库的数据库用户密码。
--database-port

(-dbport)

数据库主机上的 PostgreSQL 数据库服务所使用的端口号。 数据库主机上的 PostgreSQL 数据库服务所使用的端口号。
--database-ssl truefalse 将目标 PostgreSQL 数据库配置为需要来自 vCloud Director 的 SSL 连接。
--database-user

(-dbuser)

PostgreSQL 数据库用户的名称。 目标 PostgreSQL 数据库的数据库用户名。
--private-key-path 已将其公钥添加到服务器组中其他单元的 authorized_keys 的私钥的绝对路径。 迁移完成后,重新配置服务器组中的所有单元以使用目标 PostgreSQL 数据库。
重要事项: 所有单元都必须允许超级用户在不输入密码的情况下进行 SSH 连接。
--verbose 将所有日志输出发送到控制台和日志文件。包括报告每个表的迁移状态和整个操作进度的信息。
如果使用 --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 数据库迁移到 PostgreSQL 并更新所有单元的数据库连接属性

以下命令会将当前 vCloud Director 数据库迁移到主机 psql.example.com 上安装的目标 PostgreSQL 数据库。由于包括 --private-key-path 选项,成功完成迁移后,服务器组中的所有单元将重新配置为连接到目标数据库。
[root@cell1 /opt/vmware/vcloud-director/bin]#cell-management-tool dbmigrate \ -dbhost psql.example.com -dbport 5432 -dbuser vcd-dba -dbname vcloud -dbpassword P@55w0rd \ --private-key-path /vcloud/.ssh/id_rsa
configuring the target database... 

如果不包括 --private-key-path 选项,完成迁移后,您可以通过在服务器组中的每个单元上运行 reconfigure-database 子命令将单元连接到目标数据库。请参见将 vCloud Director 数据库迁移到 PostgreSQL 后重新配置单元