代码改变世界

APEX实战第10篇:手把手教你给APEX打补丁

2026-01-20 22:15  AlfredZhao  阅读(11)  评论(0)    收藏  举报

这一期技术上没什么难度,但却很重要,因为任何企业级软件,定期应用补丁是很必要的,可以有效规避很多已知bug。

下面我们就以 APEX 24.2 版本为例,使用MOS可以直接搜到最新的补丁集信息,这是一个月前才发布的bundle包,其中已经包含了目前最新的 24.2.12 补丁集:

点击 Download,下载,只有2.6M大小。

然后严格按照README说明进行操作即可。这里按照笔者的Linux环境,实际执行步骤如下:

1.下载的补丁介质上传到APEX环境的任意目录下

  • p37366599_242_GENERIC.zip

2.解压补丁介质

  • unzip p37366599_242_GENERIC.zip

3.关闭ORDS服务

安装时要求关闭ORDS以阻止对ORDS和APEX的访问:

  1. Preventing Access to Oracle REST Data Services

    It is important that no developers or end users access Oracle APEX while you are applying the patch. This section describes how to prevent access to Oracle APEX.

    Stopping Oracle REST Data Services:

    To learn more about stopping the Oracle REST Data Services server, see Oracle REST Data Services Installation and Configuration Guide:

    https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/index.html

4.切换到37366599目录下

  • cd 37366599

5.设置NLS_LANG环境变量

  • NLS_LANG=American_America.AL32UTF8
  • export NLS_LANG

6.sys用户执行脚本

官方安装说明详细的给出了几种不同情况,对应笔者实际情况,只是在某一个PDB下安装了APEX,
因此这里只在安装了APEX的PDB下执行这个脚本即可:

  • @catpatch.sql

执行完成,确认没有报错,再查询下APEX组件状态OK:

SELECT comp_id, comp_name, version, status 
FROM dba_registry 
WHERE comp_id = 'APEX';

7. 针对images目录的更新

Install the Patch Set Exception's changes in the images directory

cp -rf /tmp/images ORACLE_APEX_HOME/apex

笔者注:特别需要注意下这个拷贝,最好先使用命令 ords config list 查询确认下,自己的配置是否相同,比如笔者这里路径就不是默认的images:

standalone.static.path /u02/app/apex/apex_images Global

这是因为笔者之前安装是把原本的images复制了一份apex_images,所以这里应该把新的images下面的文件拷贝到apex_images这个目录下才对,如果你没有这样的情况,就直接复制命令即可。

8.启动ORDS,登录APEX验证

一切正常,APEX主页这里 Available Updates 显示系统已是最新状态:

APEX界面的右下角还可以看到具体版本号,就是我们本次安装的 Oracle APEX 24.2.12

至此,已完成给APEX打补丁的全部工作。