无入站网络连接时,能否用AWS DMS实现本地Oracle到AWS Aurora Postgres双向迁移同步?
可行迁移方案推荐
1. AWS DMS 本地代理(DMS Agent for On-Premises)
AWS DMS原生支持部署本地代理,完美适配你的出站-only网络限制:
- 代理部署在本地内网,主动发起与AWS DMS服务端的HTTPS 443端口出站连接,无需开放本地数据库的入站端口
- 支持Oracle作为源、Aurora Postgres作为目标的双向数据同步(CDC双向复制)
- 核心配置步骤:
- 在AWS控制台创建DMS复制实例(仅需公网可达,无需打通本地网络)
- 下载DMS本地代理安装包,部署到本地可访问源Oracle的服务器
- 代理通过IAM角色或访问密钥完成认证后,主动连接AWS DMS服务端
- 配置源(Oracle)、目标(Aurora Postgres)端点,以及双向复制任务
2. AWS DataSync + 原生逻辑复制组合
如果需要更轻量的双向同步方案:
- 全量迁移:部署DataSync本地代理,通过出站连接将Oracle导出的数据同步到S3,再导入Aurora Postgres
- 双向CDC同步:
- 源Oracle开启归档日志,用Oracle GoldenGate或开源Debezium捕获变更,通过本地代理主动连接的Kafka集群(或AWS MSK)同步到Aurora Postgres
- 目标Aurora Postgres开启逻辑复制,捕获变更后通过同样的出站通道同步回Oracle
3. 开源工具链组合(无云厂商绑定)
若不想依赖AWS专有服务,可采用以下开源方案:
- 全量迁移:用
expdp导出Oracle数据,通过HTTPS/SCP(出站)上传到AWS EC2,再用pg_restore导入Aurora Postgres - 双向CDC:
- 用Debezium Connector for Oracle捕获源端变更,通过本地Kafka或AWS MSK(本地主动连接)发送到Aurora Postgres
- 用Debezium Connector for PostgreSQL捕获Aurora端变更,同步回Oracle
- 所有组件均通过出站连接通信,无需开放本地入站端口
关键注意事项
- 双向同步需提前定义冲突解决规则(如时间戳优先、源端优先级)
- 需手动调整Oracle与PostgreSQL的异构数据类型映射(如CLOB到TEXT、NUMBER到NUMERIC)
- 生产迁移前务必在 staging 环境验证全量迁移速度和CDC延迟
内容的提问来源于stack exchange,提问作者Brian Buechler
相关产品推荐
相关产品推荐

