本页介绍了如何将 Oracle 数据库转换为 PostgreSQL 语法,以及如何使用 Database Migration Service 将数据迁移到 Cloud SQL for PostgreSQL。
迁移过程涉及以下任务:
配置源数据库以进行迁移连接,并准备将数据转换为 PostgreSQL。
创建 Cloud SQL for PostgreSQL 目标实例。
使用 Database Migration Service 转换工作区将 Oracle 架构和其他对象转换为 PostgreSQL 语法。
在 Database Migration Service 中创建并运行迁移作业。
使用 Database Migration Service 可观测性功能监控迁移作业进度。
在数据完全迁移后提升迁移作业。
费用
在本文档中,您将使用的以下收费组件: Google Cloud:
- Cloud SQL(请参阅 Cloud SQL 价格。)
- 如果用于存储客户管理的加密密钥 (CMEK):Cloud Storage (请参阅 Cloud Storage 价格。)
如需根据您的预计使用量来估算费用,请使用 价格计算器。
准备工作
- 验证此迁移路径是否可以完全支持您的场景。
请参阅以下页面:
- _场景概览_ 页面上的支持的来源和目标位置列出了所有受支持的来源和目标位置版本。
- 已知限制介绍了 支持的数据类型、数据库大小和其他限制。
-
网络概览 介绍了可用的网络连接
解决方案。
如需迁移数据,Database Migration Service 需要与来源实例和目标实例建立网络 连接。根据您的架构,您可能需要进行额外的准备工作,以方便网络连接。
- _对于一次性迁移_:请考虑迁移时间表。 一次性迁移仅执行完整转储和加载操作,而不会进行后续的变更数据捕获。我们建议您在迁移过程中停用对 您的来源数据库的写入操作,以避免数据丢失。
- 考虑要在哪个区域中创建目标数据库。 Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体 来源和目标位置连接配置文件、 迁移作业、目标数据库、转换工作区都必须保存在单个区域中。
- 在 Google Cloud 控制台的项目选择器页面上,选择或 创建 Google Cloud 项目。
- 启用 Database Migration Service、Compute Engine、Cloud Storage、 和 Cloud SQL Admin API。
所需角色
如需获得使用 Database Migration Service 执行异构 Oracle 迁移所需的权限,请让管理员向您授予项目的必要 IAM 角色:
-
Database Migration Admin (
roles/datamigration.admin) -
Cloud SQL Admin (
roles/cloudsql.admin)
如需详细了解如何授予角色,请参阅 Identity and Access Management 文档中的管理访问权限。
这些预定义角色具有使用 Database Migration Service 执行异构 Oracle 迁移所需的权限。如需查看所需的确切权限,请展开所需权限 部分:
所需权限
如需使用 Database Migration Service 执行异构 Oracle 迁移,您需要拥有以下权限:
datamigration.*cloudaicompanion.entitlements.get此权限包含在
roles/datamigration.admin角色中。这是 Gemini 增强型转换功能所必需的权限。cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
第 1 步:准备源数据库
如需准备源数据以进行迁移,请按以下步骤操作:
- 设置源数据库连接。请执行以下操作:
- 可选:考虑是否要使用 SSL/TLS 证书来保护
来源网络连接。如需了解详情,请参阅
使用 TLS 保护网络连接。
Oracle 12 及更高版本支持 SSL/TLS 加密。 Database Migration Service 仅支持 TLS 加密方法。 根据您的 SSL/TLS 配置,您可能需要在源数据库上执行 额外的配置步骤。
- 选择并配置来源网络连接方法。
- 可选:考虑是否要使用 SSL/TLS 证书来保护
来源网络连接。如需了解详情,请参阅
使用 TLS 保护网络连接。
- 配置源数据库实例。
- 对于持续 迁移,请参阅 为持续迁移配置源数据库。
- 对于一次性 迁移,请参阅 为一次性迁移配置源数据库。
在此步骤中,您将创建一个专用的迁移数据库用户账号 并启用必要的复制功能。
-
可选: 优化日志文件配置。
访问归档的日志文件会给迁移过程带来一些延迟。您可以调整某些日志文件设置 来控制延迟影响。
-
创建来源连接配置文件。
连接配置文件包含 Database Migration Service 建立与源数据库的连接所需的信息。连接 详细信息因您使用的 来源网络连接方法而异。
第 2 步:准备 Cloud SQL for PostgreSQL 目标实例
如需配置 Cloud SQL 目标实例,请执行以下步骤:
- 选择并配置目标网络连接方法。
-
创建并配置 Cloud SQL for PostgreSQL 目标实例。
确保您使用足够的计算和内存资源来满足迁移 需求。如需了解详情,请参阅 迁移建议。
-
创建目标位置连接配置文件。
连接配置文件包含 Database Migration Service 建立与目标数据库的连接所需的信息。连接 详细信息因您使用的 目标网络连接方法而异。
第 3 步:将 Oracle 对象转换为 PostgreSQL 语法
数据库通常包含数千个对象。在单个会话中转换所有对象可能是一个具有挑战性的过程。借助转换工作区,您可以将转换过程划分为多个阶段,在这些阶段中,您可以向转换中添加新对象、修复问题,然后在目标数据库中测试这些对象。
如需转换源数据库中的对象,请执行以下操作:
第 4 步:创建并运行迁移作业
如需配置和运行迁移,请执行以下步骤:
- 可选:如果您想为迁移作业管理自己的证书,请准备必要的加密密钥。
-
可选:如果您想自行执行完整转储阶段, 您可以从 Oracle 源数据库导出所有数据,并将其加载 到 Database Migration Service 之外的 Cloud SQL for PostgreSQL 目标实例。
如果您决定在迁移作业流程之外执行完整转储, 请务必记录 Database Migration Service 应开始 CDC 复制的系统更改编号 (SCN)。
-
创建并运行迁移作业。
在迁移期间,目标 Cloud SQL 数据库是可写的 以便在需要时应用 DML 更改。请注意,不要对数据库配置或表结构进行任何 更改,因为这可能会导致迁移过程中断或影响数据完整性。
您可以使用 Database Migration Service 可观测性 功能监控迁移进度以及目标实例 运行状况。请参阅 迁移作业指标。
第 5 步:完成迁移
当您决定将应用切换到新的 AlloyDB for PostgreSQL 实例时,请按照以下步骤完成迁移:
一次性迁移
当 Database Migration Service 完成完整转储阶段后,迁移 作业状态会更改为准备提升。
持续迁移
后续步骤
详细了解 Cloud SQL for PostgreSQL 的 Google Cloud 功能。请参阅 Cloud SQL for PostgreSQL 的特性。