IBM Cloud Docs
从 PostgreSQL 迁移到 Databases for EnterpriseDB

从 PostgreSQL 迁移到 Databases for EnterpriseDB

Databases for EnterpriseDB 已弃用。 从 2025 年 6 月 16 日起,您将无法部署新的实例。 现有实例的支持服务将持续到2025年10月15日。 届时仍存在的任何实例将被删除。 更多信息,请参阅 Databases for EnterpriseDB 的弃用

有多种选择可将数据从现有 PostgreSQL 数据库迁移到 IBM Cloud® Databases for EnterpriseDB 数据库。 我们专注于最简单、最有效的方法。 要开始使用,您需要在本地安装 PostgreSQL 以便拥有 psqlpg_dump 工具。 Cloud Databases CLI 使连接和恢复到新的 Databases for EnterpriseDB 部署变得更容易,但这并非严格要求。

pg_dump

在源数据库上运行 pg_dump 以创建 SQL 文件,该文件可用于重新创建数据库。 pg_dump 至少需要主机名(-h 标志)、端口号(-p 标志)、数据库名称(-d 标志)、用户名(-U 标志)和要写入转储的文件(或目录名)(-f 标志)。

例如,下面的命令使用管理员用户转储 PostgreSQL "compose" 数据库,该数据库托管在 sl-eu-lon-2-portal.4.dblayer.com 上,端口为 17980,并将结果保存在 dump.sql 中。

pg_dump -h sl-eu-lon-2-portal.4.dblayer.com -p 17980 -d compose -U admin -f dump.sql

pg_dump 命令有很多选项,建议您 查阅官方文档命令参考,以更全面地了解其功能。

恢复 pg_dump 的输出

pg_dump 的输出结果随后可上载到新的 Databases for EnterpriseDB 部署中。 由于输出是 SQL,因此只需通过 psql 命令将其发送到数据库即可。 我们建议使用管理员用户进行导入。

有关如何使用 psql 以管理员身份连接,请参阅 使用 psql 连接。 要使用 psql 命令连接,需要管理员用户的连接字符串和 TLS 证书。 证书需要从 base64 解码,并存储为任意本地文件。 要将先前创建的 dump.sql 导入名为 example-psql 的数据库部署,可调用 psql 命令,并将 -f dump.sql 作为参数。 该参数指示 psql 读取并运行文件中的 SQL 语句。 命令内容如下

PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt psql 'host=c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32484 dbname=ibmclouddb user=admin sslmode=verify-full' -f dump.sql

正如 Connecting with psql 文档中所述,Cloud Databases CLI 插件简化了连接。 前面的 psql 导入可以按以下方式进行:

ibmcloud cdb deployment-connections example-psql -s -- -f dump.sql

如果没有指定用户,命令会自动使用 admin 用户。 它还会以交互方式提示输入密码。 TLS 证书会自动检索和使用。 从 API 获取详细信息后,-s 将启动 psql(或您配置的任何命令)。 -- 之后的内容将传递给命令。

当还原过程运行时,它会发出一些信息,说明它对数据库部署所做的更改。