通过数据传输服务DTS(Data Transmission Service),您可以将PolarDB PostgreSQL迁移至自建Oracle数据库,可用于数据回流测试、业务功能测试等场景。
前提条件
- PolarDB PostgreSQL集群中,待迁移的表需具备主键或非空唯一索引。
- 自建Oracle数据库的版本为19c、18c、12c、11g、10g、9i版本。
- 自建Oracle数据库中已创建对应结构(如表结构)。
- 自建Oracle数据库的存储空间须大于PolarDB PostgreSQL数据库占用的存储空间。
注意事项
- 本场景仅支持全量数据迁移和增量数据迁移,不支持结构迁移。
- DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移。
- 如自建Oracle为RAC结构,且需接入阿里云VPC,为保证DTS任务成功运行,您需要将Oracle RAC的SCAN IP和每个节点的VIP均接入至阿里云VPC,并且配置路由。具体步骤,请参见本地IDC接入至阿里云方案概览、通过VPN网关实现本地IDC与DTS云服务互通。
注意 在DTS控制台上配置源Oracle数据库信息时,在数据库地址或者IP地址只需输入Oracle RAC的SCAN IP。
- 一个数据迁移任务只能迁移一个数据库,如有多个数据库需要迁移,您需要为每个数据库配置数据迁移任务。
- 在增量数据迁移过程中,如果迁移对象的选择粒度为Schema,在待迁移的Schema中创建了新的表或使用RENAME命令重建了待迁移的表,您需要在对该表写入数据前执行
ALTER TABLE schema.table REPLICA IDENTITY FULL;
命令。说明 将上述命令中的schema
和table
替换成真实的Schema名和表名。 - 为保障增量数据迁移延迟时间展示的准确性,DTS会在源库中新增一个表,表名为
dts_postgres_heartbeat
,结构及内容如下图所示。
费用说明
迁移类型 | 链路配置费用 | 公网流量费用 |
---|---|---|
全量数据迁移 | 不收费。 | 通过公网将数据迁移出阿里云时将收费,详情请参见产品定价。 |
增量数据迁移 | 收费,详情请参见产品定价。 |
增量数据迁移阶段支持同步的SQL操作
INSERT、UPDATE、DELETE
数据库账号权限要求
数据库 | 权限要求 |
---|---|
PolarDB PostgreSQL | 高权限账号。 |
自建Oracle | Schema的Owner权限。 |