POLARDB for Oracle初步体验报告

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 将一套使用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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
Oracle 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB(Oracle兼容版) 执行命令报错如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB PostgreSQL版:Oracle兼容的高性能数据库
PolarDB PostgreSQL版是一款高性能的数据库,具有与Oracle兼容的特性。它采用了分布式架构,可以轻松处理大量的数据,同时还支持多种数据类型和函数,具有高可用性和可扩展性。它还提供了丰富的管理工具和性能优化功能,为企业提供了可靠的数据存储和处理解决方案。PolarDB PostgreSQL版在数据库领域具有很高的竞争力,可以满足各种企业的需求。
|
7月前
|
Oracle 关系型数据库 数据库
PostgreSQL和Oracle两种数据库有啥区别?如何选择?
PostgreSQL和Oracle两种数据库有啥区别?如何选择?
208 0
|
8月前
|
SQL Oracle 关系型数据库
物化视图(Oracle与PostgreSQL对比)
物化视图(Oracle与PostgreSQL对比)
|
8月前
|
SQL Oracle 关系型数据库
PostgreSQL技术大讲堂 - 第27讲:Oracle-FDW部署
从零开始学PostgreSQL,PG技术大讲堂 - 第27讲:Oracle-FDW部署
167 2
|
4月前
|
SQL Oracle 关系型数据库
Oracle,Postgresql等数据库使用
Oracle,Postgresql等数据库简单使用
133 0
Oracle,Postgresql等数据库使用
|
7月前
|
Oracle 关系型数据库 分布式数据库
如何从Oracle迁移到PolarDB(ADAM)(二)
如何从Oracle迁移到PolarDB(ADAM)(二)
128 0
|
7月前
|
SQL Oracle 关系型数据库
Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(二)
Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(二)
709 0
|
SQL Oracle 关系型数据库
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
444 0
|
11月前
|
SQL 安全 Oracle
MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解
MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解
388 0