oracle数据库迁移到postgres的折腾之路

好脑筋比不过烂笔头,简单记录一下oracle数据向pg的导出过程:

需求背景:某系统,在用,oracle库,访问量太大有点扛不住了,想增加查询库,数据最好实时能导入到查询库里面去。

1.最好的办法

    要是经费够,直接查询库也别用pg了,再购买oracle,然后安装部署ogg,实现亚秒级数据同步,可惜经费不够,没法这么整。

2.次好的办法

   利用logminer分析oracle的redolog,细分的话好像有两种,一种是安装data guard,把redolog弄到生产库以外的机器上面进行分析,这样可以减少源库的分析压力,但是需要安装data guard软件,服务器又不归我们维护管理,这里面又涉及到买license的问题,未尝试。第二种是直接分析生产库的redolog,用开源的streamsets进行分析和数据导出,但是streamsets不支持blob,clob字段的数据导出。

3.笨办法

  写oracle java procedure,结合触发器,有了数据变化以后通过java程序发消息给消息队列,然后再写消息队列消费程序处理源库数据变化。

4.傻B一样的方法

 用kettle/streamsets等等各类etl工具轮询源oracle库,把整表或增量数据导到pg库里面。

最后走的方式是基于logminer原理,把oracle redo sql丢到kafka里面去,然后自己写sql parser解析redo sql后再组合目标库能执行的sql后执行处理,数据同步间隔小于1秒,效果良好。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peihexian

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值