How to upgrade Oracle APEX from 5.1.4 to 18.1
This is the 8th blog about Oracle APEX, you can find the full series list as below:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
Introduction
Oracle APEX 18.1 has already been published several days, I believe most of apexers had tried it. The next thing we need to do is how to upgrade Oracle APEX from earlier version (such as 5.1.4) to the latest 18.1.
I quickly go through Oracle APEX 18.1 installation guide but not find a upgrade script I could use (even if there is also a sql named
apxpatch.sql
, I didn’t try it yet). Since the new APEX (db) schema isAPEX_180100
, I guess I have to reinstall APEX 18.1 this time.
The following upgrade steps are based on CentOS 6, Oracle database is 11gR2 and APEX 5.1.4.
The wonderful part I find out is I don’t have to reinstall my existed APEX applications after I upgrade APEX 18.1. All my data is still there (workspace, application and so on) and I could continue to use them painlessly. Thanks to what Oracle APEX team did!!
Here is a component list we could upgrade:
APEX
:we will upgrade from earlier version to the latest 18.1;ORDS
:we will also upgrade it to the latest 18.1, and re-config and deploy to tomcat;JAVA
:ORDS 18.1 requires the lowest version of JDK/JRE is 1.8 or above;Tomcat
:ORDS 18.1 requires the lowest version of tomcat server is 8.5 or above;Nignx
:we need to adjust some configurations in nginx.conf if necessary;
OK, let’s begin the upgrade process.
Oracle APEX 系列文章8:如何从 APEX 5.1.4 升级到最新的 APEX 18.1
钢哥的 Oracle APEX 系列文章:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
- Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
- Oracle APEX 系列文章16:AOP - PDF报表打印新选择
- Oracle APEX 系列文章17:如何利用 Oracle APEX 助力企业应用开发
引言
Oracle APEX 18.1 发布已经有几天了,相信很多搞APEX的同学都尝过鲜了,接下来需要面临的问题就是如何从早期的 APEX 版本升级到最新的 APEX 18.1。
简单看了一下 APEX 18.1 的文档,并没有提到有现成的升级脚本文件可以跑(虽然安装目录下也有个叫
apxpatch.sql
的鬼)。由于新版本的 APEX 的 DB Schema 已经变成了APEX_180100
,猜测跟之前 APEX 4 升到 5 一样,没办法直接升级。
以下升级过程是跑在 CentOS 6 上的,数据库用的是 Oracle Database 11gR2,APEX 版本是 5.1.4。
另外如果不更换数据库,已有的 APEX Application 应用、Workspace 及 Schema 都不需要改,升级后还可以使用,这一点要为 APEX 研发部门点赞!!
闲话少说,以下就是涉及到的组件:
APEX
:这个自不必说,不管之前用的是 3、4 还是 5 版本的,都要升级到最新的18.1
;ORDS
:同步升级到最新的 18.1 版本,并重新配置部署到 Tomcat 8.5 上;JAVA
:ORDS 18.1 要求 JDK/JRE 最低版本1.8
以上;Tomcat
:ORDS 18.1 要求 Tomcat 最低版本8.5
以上;Nignx
:需要重新配置参数(SSL证书、静态文件路径等);
下面就让钢哥带你开始今天的 APEX 升级(踩坑)之旅!
Oracle APEX 系列文章7:Oracle APEX 18.1 新特性
引言
千呼万唤始出来, Oracle APEX 18.1 新版本终于发布了,还不了解 Oracle APEX 是什么的同学请移步这里:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
- Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
- Oracle APEX 系列文章16:AOP - PDF报表打印新选择
- Oracle APEX 系列文章17:如何利用 Oracle APEX 助力企业应用开发
本文是 Oracle APEX 新特性官网文章的译文,想读原文的同学请移步这里: https://apex.oracle.com/en/platform/features/
下面钢哥就带着你快速了解一下 Oracle APEX 18.1 的新特性。
数据处理能力
Oracle APEX 致力于使您尽可能轻松、高效地显示、操作、绘制和处理数据。无论您的数据来自本地数据库,远程数据库还是 Web 服务,Oracle APEX 都可以帮助您将数据转化为有价值的信息。
将数据转化为信息
Oracle APEX 允许每个人看到不同的数据。利用交互式报表组件,用户可以轻松地自定义他们想看到的数据,以独特的方式满足需求。从确定要显示哪些列的简单更改到更加复杂的自定义设置(例如数据透视),都可以轻松实现。
Oracle SQLcl - 替代 sqlplus 的利器
引言
对于从事 Oracle 技术开发的同学,肯定都要连接 Oracle 数据库,而 Oracle 自带的 sqlplus 命令行工具功能太弱了,不支持命令联想、数据显示不美观,还要安装什么 Oracle Client,导致很多同学不得不用其他工具(PL/SQL Developer、Oracle SQL Developer)来连接数据库。但 PL/SQL Developer 仅支持 Windows 平台,Oracle SQL Developer 虽然是跨平台的,但显得又太重了。
有没有更好的命令行工具呢?其实 Oracle 早就提供了另一个用来替代 sqlplus 的命令行工具,它就是今天的主角SQLcl
。
Docker - 通往新世界的大门
引言
相信很多技术同学在开发时都会使用虚拟机,配置好一个开发环境,以后使用时只需要启动虚拟机就好了。但虚拟机动辄几个GB,大一点儿的甚至几百个GB,而且只要其中任意的虚拟机文件损坏,整个虚拟机就没办法启动了。你可能说应该经常备份,这的确是个好主意。但有没有更好的办法呢?今天钢哥就带着大家了解一下Docker(容器),看看它是否比传统的虚拟机更适合我们。
什么是容器?
顾名思义,容器就是用来装东西的。我们平时喝水的杯子就是容器,只不过杯子这个“容器”是用来装水的,而我们这里的容器装的是应用程序。
容器有什么特点?
- 自包含性:它打包了应用程序的所有依赖,可以直接运行;
- 可移植性:容器可以在几乎任何地方以相同的方式运行,这就确保了在开发、测试和生产环境都可以拥有完全一样的运行环境;
- 相互隔离性:多个容器间默认是相互隔离的,即使运行在同一台主机上;
- 轻量级特性:秒级启动,占用资源少;
容器与虚拟机有什么区别?
很多同学会觉得,容器能做的事虚拟机也能做啊,到底有什么区别呢?
Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
钢哥的 Oracle APEX 系列文章:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
- Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
- Oracle APEX 系列文章16:AOP - PDF报表打印新选择
- Oracle APEX 系列文章17:如何利用 Oracle APEX 助力企业应用开发
钢哥注:本文是一篇翻译文章,原文作者:Joel R. Kallman(Oracle APEX 研发总监),原文请移步这里:“Is APEX Suitable for an Enterprise Setting?”。
很多人对 Oracle APEX 是否真的适合企业环境还心存顾虑,所以我觉得有必要做个解释。就我个人的理解,IT 行业从有狗那年起就没有银弹。不管是从前的 SOA、企业服务总线,还是现在的微服务架构、容器技术、无服务等。即使 BAT 这些一线互联网大厂,公司内部也存在很多不同的应用框架和技术栈。别人家的架构永远也只是别人家的,能借鉴的也就是个思路,而现在国内每天都在进行的各种“技术分享会”,也只能靠 “XX公司的技术架构演进之路”之类的话题来吸引人气,因为没有一个架构或技术适合所有的公司。
架构或技术本身并没有绝对的好坏之分,只有适不适合。
(想争论 PHP 是最好的编程语言的同学请无视我,谢谢)
言归正传,下面是主要译文。
Oracle APEX 18.1
最显著的新特性就是有能力消费多种远端数据源
,从普通的 REST 数据源乃至基于 ORDS(Oracle REST Data Services)的远程 SQL。直到 Oracle APEX 18.1 之前,数据库连接(DB Link)还一直是访问远端 Oracle 数据库的最普遍方式。当然,这种数据库连接在云端环境是不存在的,而针对这方面的(功能)提升已然变成 Oracle APEX 18.1 的一个核心关注点。
Oracle APEX 系列文章5:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
钢哥的 Oracle APEX 系列文章:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
- Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
- Oracle APEX 系列文章16:AOP - PDF报表打印新选择
- Oracle APEX 系列文章17:如何利用 Oracle APEX 助力企业应用开发
引言
在这一章节里,钢哥将带领大家进一步优化我们的开发环境,让我们的免费开发环境更“生产”,优化思路和方法也完全可以用在生产环境。
优化 Tomcat
删除Tomcat自带的不必要的文件是有必要的,最大限度保证系统安全。1
rm -Rf /u01/tomcat/webapps/examples
由于我们的 Oracle XE 数据库跟 Tomcat 都是开机自启动的,但在数据库启动完毕之前,部署在 Tomcat 服务器上的 ORDS 应用就会随着 Tomcat 的启动而进行初始化了,这时候初始化肯定不正常(连接池报错等),不得不重启 Tomcat 服务才行。所以我们要对 tomcat.service
进行必要的修改,让tomcat
等待数据库启动完毕再启动。
/etc/systemd/system/tomcat.service
1
2
3
4[Unit]
Description=Apache Tomcat 8 Servlet Container
After=syslog.target network.target oracle-xe.service
Wants=oracle-xe.service
加载启动脚本,下次重启就会按照新的自启动脚本启动了。1
systemctl daemon-reload
Oracle APEX 系列文章4:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
钢哥的 Oracle APEX 系列文章:
- Oracle APEX 系列文章01:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章02:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
- Oracle APEX 系列文章03:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
- Oracle APEX 系列文章04:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章05:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章06:Oracle APEX 到底适不适合企业环境?
- Oracle APEX 系列文章07:Oracle APEX 18.1 新特性
- Oracle APEX 系列文章08:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1
- Oracle APEX 系列文章09:为什么选择使用 Oracle APEX
- Oracle APEX 系列文章10:Oracle APEX Evangelion(EVA 补完计划)
- Oracle APEX 系列文章11:全站启用 HTTPS,让你的 APEX 更安全
- Oracle APEX 系列文章12:魔法秀,让你的 H5 页面秒变 APP
- Oracle APEX 系列文章13:Oracle APEX 入门基础资料整理
- Oracle APEX 系列文章14:Oracle APEX 18.1 Docker 镜像
- Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
- Oracle APEX 系列文章16:AOP - PDF报表打印新选择
- Oracle APEX 系列文章17:如何利用 Oracle APEX 助力企业应用开发
引言
在这一章节里,我们将一起动手安装Oracle数据库(XE)、APEX以及ORDS,并完成相关的设置。
友情提示:由于之前没有绑定阿里云的弹性公网IP,导致阿里云ECS在关机重启后IP地址会变化,这里只要简单把
公网IP
转换成弹性公网IP
即可。弹性公网IP的好处是IP地址不会变化,需要的时候拿过来绑定到ECS等设备上即可,非常灵活。
更多关于阿里云弹性公网IP的介绍请移步这里。
现在我们的ECS服务器已经转成弹性公网IP了,以后只要不解绑,这个公网IP地址就不会自己变化了。
言归正传,接下来我们开始今天的教程。
安装前准备工作
下载软件包
我们需要到Oracle官网下载如下软件,如果你还没有注册过Oracle账号,请先完成注册(免费的),登录后才可以下载。
- Oracle Database Express Edition 11g Release 2 for Linux x64(XE)
- Oracle Application Express
- Oracle REST Data Services
截止到本文写作时间为止,APEX最新的版本是
18.1.0.00.45
,请下载All Language
多语言版本,ORDS最新版本是18.1.1.95.1251
。你下载的版本可能比钢哥的高,不过安装步骤是一样的。