POLARDB for Oracle初步体验报告

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 将一套使用Spring +Struts2+Hibernate的CRM系统成功从Oracle迁移到了POLARDB for Oracle。

前不久,阿里云发布了POLARDB 2.0 并开始POLARDB for Oracle 和 POLARDB for PostgreSQL的公测,再加上原来就支持的MYSQL,POLARDB成为同时兼容三大数据库引擎的数据库即服务产品(DBaaS)。
一直以来,Oracle都是行业客户市场中最核心的数据库产品,看到POLARDB开始支持Oracle引擎,我在第一时间就提交了公测申请并幸运的获得了公测资格。在测试的过程中,我并不关注POLARDB for Oracle的性能表现,因为我认为像阿里这样的互联网公司推出来的服务,最不需要耽心的就是性能的问题,反而是一些其他的诸如开发工具适配、用户使用习惯、代码兼容性这样和“生态”有关的特性不太容易一下子就做好,所以我这次的测试主要就集中在这些方面。

选择测试系统

首先是选择测试系统,我从全球最大的中文IT技术社区的下载频道里下载了一套使用Oracle数据库的CRM系统用于本次测试,系统的开发语言为Java、开发框架是Spring +Struts2+Hibernate。据我所知大量行业客户的现有系统采用的都是相同或者类似的架构。

初始化数据库

下一步是初始化数据库,按照POLARDB 的官方文档,建议访问数据库使用pgAdmin或者阿里云DMS,但我更喜欢用Navicat。要使用第三方的数据库管理工具需要为POLARD申请外网地址和正确的设置白名单,把这些都搞定之后,用Navicat 就可以连接POLARDB for Oracle了,当然非常重要的一点是需要选择用PostgreSQL 协议来进行连接。
1

使用CRM系统自带的SQL脚本初始化数据,只遇到一个问题,就是序列的最大值。
以下语句:

create sequence SEQ_MAX_TEST
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;

会被报告:

ERROR: value "9999999999999999999999999999" is out of range for type bigint

将序列最大值改为bigint的最大值(9223372036854775807)之后就没有问题了,可能公测结束后会有改善吧。
其余的诸如建表、注释、主键及外键依赖、插入记录、创建视图、子查询、inner join、left join这些DDL或者DML语句的运行都没有遇到任何问题。

应用系统接入

再下一步是搭建应用运行环境,我用的是Tomcat,具体细节和POLARDB for Oracle的关联不大,在此略过,这里的重点是应用系统连接数据库的驱动和URL。
初始状态下CRM的数据库连接配置文件是这样的:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=XXX
password=XXX

开始时,我幻想可以继续使用Oracle的驱动,只是修改了连接URL,但很快发现行不通,后来又尝试用PostgresSQL的驱动,不知为何也不行,最终,我用PPAS(阿里云的另一套Oracle 兼容数据库服务)的驱动成功连接了云上的POLARDB for Oracle。
最终的数据库配置文件为:

driver=com.edb.Driver
url=jdbc:edb://XXX.o.polardb.rds.aliyuncs.com:1921/XXX
username=XXX
password=XXX

测试和使用

也许是因为使用了Hibernate这样的对象关系映射框架的原因吧,在没有对程序本身进行任何修改的情况下,在解决了数据库初始化和应用接入问题后,测试CRM系统在POLARDB for Oracle 上完美的运行了起来。
2

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
5月前
|
Oracle 安全 关系型数据库
|
5月前
|
存储 Oracle 关系型数据库
|
5月前
|
Oracle 关系型数据库 数据库
|
5月前
|
监控 Oracle 关系型数据库
关系型数据库Oracle恢复测试
【7月更文挑战第20天】
91 7
|
5月前
|
存储 监控 Oracle
关系型数据库Oracle备份策略建议
【7月更文挑战第21天】
73 6
|
5月前
|
存储 Oracle 关系型数据库
|
5月前
|
存储 Oracle 关系型数据库
关系型数据库Oracle运行RMAN脚本
【7月更文挑战第23天】
54 4
|
5月前
|
SQL Oracle 关系型数据库
关系型数据库Oracle设置 RMAN 环境:
【7月更文挑战第25天】
72 2
|
5月前
|
Oracle 关系型数据库 Unix
关系型数据库Oracle设置环境变量:
【7月更文挑战第22天】
588 4
|
5月前
|
监控 Oracle 算法