作者 Iris (PG深度爱好者)
一、项目描述
前段时间刚完成一个应用ORACLE改造的项目,数据体量比较大,业务改造的周期计划比较短,再加上自研分布式MYSQL对事务、存储过程等限制,所以应用方放弃了改造分布式数据库MYSQL的想法。很多研发人员对PG的了解不深,产生一个误区,认为PG近乎等于ORACLE,并无多大改造体量。然后现实很快就被打脸了。现实就是,该做的改造工作一个都不能少,毕竟是异构数据库,字段和语法的差异都是项目改造的基础。
二、需求分析
为了完成Oracle到PG的改造工作,将改造的工作分为以下两类:
数据迁移:表、视图、数据、序列、存过(及函数)、JOB定时任务等,按照需要迁移到Postgre中。
程序改造:后台所有的微服务工程,需要修改数据库连接配置及所有Mybatis的SQL语句需要改造适应Postgre
三、改造说明
Oracle和Postgre数据库的差异方面很多,现在列举此项目改造中常用到的一些差异如下:
3.1 数据类型差异
Oracle |
Postgre |
Varchar2 |
Varchar |
Date |
Date/time/timestamp |
Clob |
Text |
Blob |
Byt |