从 PostgreSQL 迁移到 Databases for EnterpriseDB
Databases for EnterpriseDB 已弃用。 从 2025 年 6 月 16 日起,您将无法部署新的实例。 现有实例的支持服务将持续到2025年10月15日。 届时仍存在的任何实例将被删除。 更多信息,请参阅 Databases for EnterpriseDB 的弃用。
有多种选择可将数据从现有 PostgreSQL 数据库迁移到 IBM Cloud® Databases for EnterpriseDB 数据库。 我们专注于最简单、最有效的方法。 要开始使用,您需要在本地安装 PostgreSQL 以便拥有 psql
和 pg_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
的输出结果随后可上载到新的 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
(或您配置的任何命令)。 --
之后的内容将传递给命令。
当还原过程运行时,它会发出一些信息,说明它对数据库部署所做的更改。