# Oracle APEX 系列文章8:如何从 APEX 5.1.4 升级到最新的 APEX 18.1

news/2024/12/13 13:55:48

本文是钢哥的 Oracle APEX 系列文章的第8篇,完整文章目录如下:

  • Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
  • Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完整开发环境 (安装 CentOS)
  • Oracle APEX 系列文章3:在阿里云上打造属于你自己的APEX完整开发环境 (安装 Tomcat, Nginx)
  • Oracle APEX 系列文章4:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
  • Oracle APEX 系列文章5:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
  • Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
  • Oracle APEX 系列文章7:Oracle APEX 18.1 新特性
  • Oracle APEX 系列文章8:如何从 APEX 5.1.4 升级到 最新的 APEX 18.1

引言

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 升级(踩坑)之旅!


准备工作

上传安装包

首先将升级需要用到的安装包上传到服务器上,比如:/u02/Media

停止当前 nginx,tomcat 服务。

## 停止 nginx 服务
service nginx stop## 停止 tomcat 服务
service tomcat stop

升级 JDK / JRE

利用java -version查看当前 JDK 版本,从下图可知,当前系统 JDK 版本是 1.7 的,不满足 ORDS 的需要,必须升级 Java 版本。

安装 JDK 1.8

yum install -y java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

安装完 JDK,将环境变量添加到 ~/.bash_profile 文件中;

# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programs
export NLS_LANG=American_America.AL32UTF8
export JAVA_HOME=/u01/java/jdk1.8.0_162
export JRE_HOME=/u01/java/jdk1.8.0_162/jre
export ORACLE_SID=XEPATH=/bin:/sbin:/usr/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HOME/bin
export PATHCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export CLASSPATH

手动初始化一下环境变量。

source ~/.bash_profile## 再次查看JDK版本
java -version

JDK 版本应该已经变成1.8了。

升级 Tomcat

由于我当前用的 tomcat 版本是 7 的,ORDS 18.1 要求 tomcat 8.5 以上版本,所以需要更新一下 tomcat。

下载 Tomcat 8.5

## 切换到安装包目录
cd /u02/Media## 下载tomcat 8.5以上版本
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.zip## 解压缩安装包
unzip apache-tomcat-8.5.31.zip## 将解压完的文件移动到 /u01/tomcat8 目录下
mv apache-tomcat-8.5.31/* /u01/tomcat8## 授权
chown -Rf tomcat:tomcat /u01/tomcat8
chmod -Rf 755 /u01/tomcat8/bin/*

由于我用的是 CentOS 6,用的脚本启动 Tomcat,所以需要修改下/etc/init.d/tomcat文件。

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/u01/java/jdk1.8.0_162
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/u01/tomcat8case $1 in
start)
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
;;
esac. /root/firewall.shexit 0

验证 tomcat 是否安装成功

service tomcat start

可以看到 tomcat 8 服务已经启动了,并且使用的是 jdk 1.8。

用浏览器访问 http://xxx.xxx.xxx.xxx:8080,也可以看到 tomcat 页面。


升级 APEX 18.1

解压缩安装包

## 切换到安装包目录
cd /u02/Media/## 将安装包解压缩
unzip apex_18.1.zip

执行脚本安装 APEX 18.1

## 切换到 oracle 用户
su - oraclecd /u02/Media/apex

以超级管理员身份登录数据库,这里以 Oracle Database 11g 数据库举例,12c 安装步骤类似。

sqlplus / as sysdba-- 创建单独的 tablespace(不建议用系统默认的表空间)
SQL> create tablespace APEX181 DATAFILE '/u03/oradata/apex181.dbf' SIZE 1024m REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;-- 安装 APEX 18.1,安装过程可能会持续5-10分钟
-- 这里的 APEX181 是刚刚创建的 tablespace
SQL> @apexins APEX181 APEX181 temp /i/-- 重置 APEX 管理控制台账号密码
SQL> @apxchpwd-- 配置RESTful Services服务
SQL> @apex_rest_config.sql-- 禁用数据库内置的PL/SQL网关
SQL> exec dbms_xdb.sethttpport(0);
SQL> exec dbms_xdb.setftpport(0);-- 解锁ORDS用户账号
SQL> alter user apex_public_user account unlock;
SQL> alter user apex_public_user identified by "your password";-- 断开数据库会话
SQL> exit

将静态文件部署到 tomcat

## 切换到root用户
su - root## 在 Tomcat 的 webapps 目录下新建一个名为`i`的文件夹
mkdir -p /u01/tomcat8/webapps/i/## 将APEX静态文件部署到tomcat目录下
cp -a /u02/Media/apex/images/* /u01/tomcat8/webapps/i/## 授予相应权限
chown -Rf tomcat:tomcat /u01/tomcat8/webapps/

升级 ORDS 18.1

解压缩安装包

mkdir -p /u01/ords
unzip /u02/Media/ords.18.1.1.95.1251.zip -d /u01/ords/

执行安装脚本

cd /u01/ordsjava -jar ords.war install advanced

为 tomcat 账号授权,确保 tomcat 账号可以读取/u01/ords/conf目录内文件。

chown -R tomcat:tomcat /u01/ords/conf

将 ords.war 部署到 Tomcat

cp -a /u01/ords/ords.war /u01/tomcat8/webapps/chown -Rf tomcat:tomcat /u01/tomcat8/webapps/## 重启 tomcat 服务
service tomcat restart

验证 ORDS 已部署成功

打开浏览器,访问 http://xxx.xxx.xxx.xxx:8080/ords,如果部署成功,APEX 应该就可以访问了。

钢哥注:如果想把 url 里的ords替换成别的,比如qingxi,需要在先将ords.war重命名为qingxi.war,然后再跑java -jar qingxi.war install advanced命令完成安装和部署动作。

如果想重装 ORDS,可以执行java -jar ords.war uninstall命令,卸载成功后在删除安装目录的所有文件即可。


配置 Nginx (可选)

检查 nginx.conf 里是否有需要修改的地方,比如更新i目录

测试升级后的环境

打开浏览器,访问 http://xxx.xxx.xxx.xxx/ords,如果部署成功,APEX 应该就可以访问了。

登录到管理控制台,查看现有的工作空间(Existed Workspace),发现老铁都还在。

输入对应的账号后,检查之前的应用也都能正常运行,完美!!


结语

以上就是如何从之前的 APEX 升级到最新的 APEX 18.1 版本的实操,希望老铁们喜欢。


王方钢 | 智叟网络


https://dhexx.cn/news/show-3764737.html

相关文章

RSA加密与解密(Java实现)

经本人允许禁止转载。 RSA的应用 RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密。 Base64编码 apache.commons-codex包提供了许多编码格式转换,例如Base64。 以下为Base64编码…

Sql Server--还原备份的数据库

.bak文件是SqlServer数据库备份文件的后缀,之前竟然不知道……,下面就梳理下针对于.bak的数据库备份文件如何将其附加到Sql Server中。 如上图所示:错误的操作即将.bak修改为.mdf,然后到对象资源管理器中对“数据库”右击&#xf…

让tomcat跑起php(caucho quercus简单用法,tomcat运行php)

Quercus的用法其实就是一个Servlet 下载Quercus:http://quercus.caucho.com/ (下载war文件,在web-inf/lib/下提取 inject-16.jar resin.jar 两个包,至于mail.jar的话,用到在找) 修改web.xml&#xff…

mysql全备份脚本速查

mysql全备份脚本 # 快捷备份方式[rootnb scripts]# cat db.backup.sh #!/bin/bashmysqldump -ubackup -pbackuppwd -P3306 -h192.168.65.128 -R -E --triggers -e --max_allowed_packet16777216 --net_buffer_length16384 --master-data2 \--single-transaction -B db1 --quick…

app与后台的token、sessionId、RSA加密登录认证与安全解决方案

一、登录机制 粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认。 登录认保持是指客户端登录后, 服务器能…

Sql Server--如何自动备份数据

对于数据库备份,我自己之前的理解就是找到创建数据库的位置,然后把库CtrlC保存到指定的文件夹下。其实不然,从安全性、完整性的角度来说,CtrlC mdf和ldf文件然后再附加的方法很繁琐(需要停掉Server服务)&am…

Windows Phone 7 学习心得(二)

在上篇博文里面 我学习了如何创建第一个WP7手机程序和silverlight的一些知识。今天这篇博文将提到怎么样创建一个XNA的应用程序,并输出Hello, Windows Phone 7! --------内容开始--------- 一个XNA的应用程序 创建一个XNA的程序与创建手机程序基本相同,选…

Sql Server--通过生成脚本文件实现低版本“向上兼容”

像Office、VisualStudio、Sql Server这些大型软件,都具有向下兼容的功能,比如Word 2012能够打开使用Word 2003编辑的文档,但是Word 2003却不能打开使用Word 2012编写的文档。当然Sql Server也是这样,前段时间遇到了这样的问题&…

Golang 学习笔记—— 反射

转载请注明出处:Golang 学习笔记(11)—— 反射 Golang 介绍 反射是程序执行时检查其所拥有的结构。尤其是类型的一种能力。这是元编程的一种形式。它同一时候也是造成混淆的重要来源。 每一个语言的反射模型都不同(同一时候很多…

用layui实现三组单选框联动效果

三组单选框联动&#xff0c;指的是三组单选框的选中位置不能重复&#xff0c;如下图 代码 <!doctype html> <html> <head><meta charset"utf-8"><link rel"stylesheet" type"text/css" href"./layui/css/layui.…