当前位置:首页 > 报告详情

2019年金融保险系统逃离Oracle的正确姿势.pdf

上传人: 云闲 编号:97382 2021-01-01 74页 5.60MB

1、金融保险系统逃离Oracle的正确姿势让应用先跑起来技术选型让应用跑的更好、更快让应用跑的更稳定、更安全技术选型架构对比-高可用模式ADGADGOracle ADGStreamStreamPostgreSQL Stream架构对比-分片模式Oracle ShardingPostgreSQL(XC/XL)Shard DirectorADGGTMCoordinatorStreamShard Catalog架构对比-集群模式Oracle RAC模式PostgreSQLInstance 1Instance 2hbADG架构对比-读写分离模式OraclePostgreSQL 读写分离模式pgpoolSt

2、reamStream读、写读 PostgreSQL(PG)与Oracle确实很像,包括架构、数据安全等 PG提供了丰富的可选择架构,满足各种不同的场景 PG有效遵从SQL标准,这让应用迁移难度降低 有丰富的可选择组件,极易扩展 PG的代码组织的很规范让应用先跑起来能不能让应用正确的跑起来,这是事关生存的问题填“坑”指南字符集数据类型SQL语法操作符SQL行为DBLINK空串()与NULL同义词包及存储过程常用函数1、字符集问题 PG服务端不支持GBK 建议使用UTF8 不推荐使用EUC_CN 例如:“瑄”在EUC_CN下就无法编码 2、多行注释问题 上述注释在Oracle中是合法的 在PG中是

3、非法的/*some comments/*other comments/*/-合法的PostgreSQL注释格式:-This is a standard SQL comment/*multiline comment*with nesting:/*nested comment*/*/可以使用PLY(Python-Lex-Yacc)将注释自动改写掉3、NUMERIC类型问题 上述声明在Oracle中是合法的 但在PG中是非法的 PG不支持不支持负值的scale 也不支持不支持scale大于precisiona NUMBER(6,-2)a NUMBER(2,3)precision scale 负值sc

4、ale的解决方法:使用触发器,在触发器中调用round函数 SELECT round(123.6,-2);round-100(1 row)scale大于precision的解决方法:NUMBER(2,3)=NUMERIC(3,3)增加CHECK(col SELECT cast(123456789.9 as VARCHAR2(8)from dual;SELECT cast(123456789.9 as VARCHAR2(8)from dual*ERROR at line 1:ORA-25137:Data value out of rangeOracle#SELECT 123456789.9:va

5、rchar(8);varchar -12345678(1 row)PG中会被截断而不报错5、CHAR类型问题 DESC tcName Null?Type-A CHAR(4)INSERT INTO tc VALUES(1);SELECT length(a)FROM tc;LENGTH(A)-4 SELECT count(*)FROM tc WHERE a=1 ;COUNT(*)-1 SELECT length(1 )FROM dual;LENGTH(1)-4#dS tcTable public.tcColumn|Type|Collation|Nullable|Default-+-+-+-+-a|

6、character(4)|#INSERT INTO tc VALUES(1);#SELECT length(a)FROM tc;length-1#SELECT count(*)FROM tc WHERE a=1 ;count-1#SELECT length(1 );length-46、SEQUENCE最大值问题 PG的SEQUENCE最大值:9223372036854775807(bigint)而Oracle中的SEQUENCE最大值可达28位十进制值 一般情况下PG的SEQUENCE是足够的 但可能也存在一些特殊情况:LISCODE.SEQ_YBTBATTRANS_ID 1000000000

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了金融保险系统从Oracle迁移到PostgreSQL(PG)的正确姿势,包括技术选型、填“坑”指南、优化SQL、高可用架构等内容。 1. 技术选型:PG提供了丰富的可选择架构,满足各种不同的场景,有效遵从SQL标准,降低应用迁移难度。 2. 填“坑”指南:详细列出了在迁移过程中可能遇到的各种问题,如字符集、数据类型、SQL语法、操作符、SQL行为、DBLINK、空串与NULL、同义词、包及存储过程、常用函数等,并给出了相应的解决方法。 3. 优化SQL:介绍了如何通过理解执行计划的成本估算,优化SQL,提高查询效率。 4. 高可用架构:介绍了PG的高可用架构,包括主备库实时同步、备份等,确保系统稳定运行。 总之,本文为金融保险系统从Oracle迁移到PG提供了全面的指导,包括技术选型、迁移过程中的问题解决、SQL优化以及高可用架构设计等方面的内容。
如何实现金融保险系统的高可用性? 如何优化金融保险系统的查询性能? 如何确保金融保险系统的数据安全?
客服
商务合作
小程序
服务号
折叠