Oracle Application Express (APEX) - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Oracle Application Express (APEX)

Amazon RDS 通过使用 APEXAPEX-DEV 选项支持 Oracle Application Express (APEX)。可以将 Oracle APEX 作为运行时环境或基于 Web 的应用程序的完整开发环境部署。使用 Oracle APEX,开发人员可完全在 Web 浏览器内构建应用程序。有关更多信息,请参阅 Oracle 文档中的 Oracle Application Express

Oracle APEX 包含以下主要组件:

  • 存储 APEX 应用程序和组件元数据的存储库。该存储库包含安装在 Amazon RDS 数据库实例内的表、索引和其他对象。

  • 管理与 Oracle APEX 客户端的 HTTP 通信的侦听器。该侦听器接受来自 Web 浏览器的传入连接并将这些连接转发至 Amazon RDS 数据库实例进行处理,然后将来自存储库的结果发送回浏览器。Amazon RDS for Oracle 支持以下类型的侦听器:

    • 对于 APEX 版本 5.0 和更高版本,请使用 Oracle Rest Data Services (ORDS) 19.1 和更高版本。建议您使用支持的最新版本 Oracle APEX 和 ORDS。本文档仅出于向后兼容的目的介绍旧版本。

    • 对于 APEX 版本 4.1.1,您可以使用 Oracle APEX Listener 版本 1.1.4。

    • Oracle HTTP Server 和 mod_plsql

      注意

      Amazon RDS 不支持具有嵌入的 PL/SQL 网关的 Oracle XML DB HTTP 服务器;不可将其用作 APEX 的侦听器。对于在 Internet 上运行的应用程序而言,Oracle 一般不建议使用嵌入 PL/SQL 网关。

    有关这些侦听器类型的更多信息,请参阅 Oracle 文档中的关于选择 Web 侦听器

将 Amazon RDS APEX 选项添加到数据库实例时,Amazon RDS 仅安装 Oracle APEX 存储库。将侦听器安装在单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机上。

APEX 选项将数据库实例类中的存储用于您的数据库实例。下面是支持的 Oracle APEX 版本和大致的存储要求。

APEX 版本 存储需求 支持的 Oracle 数据库版本 备注

Oracle APEX 版本 20.2.v1

148 MiB

全部

此版本包含补丁 p32006852_2020_Generic。您可以通过运行以下查询来查看补丁编号和日期:

SELECT PATCH_VERSION, PATCH_NUMBER FROM APEX_PATCHES;

Oracle APEX 版本 20.1.v1

173 MiB

全部

此版本包含补丁 30990551。

Oracle APEX 版本 19.2.v1

149 MiB

全部

Oracle APEX 版本 19.1.v1

148 MiB

全部

Oracle APEX 版本 18.2.v1

146 MiB

全部,但 19c 除外

Oracle APEX 版本 18.1.v1

145 MiB

全部,但 19c 除外

Oracle APEX 版本 5.1.4.v1

220 MiB

全部,但 19c 除外

Oracle APEX 版本 5.1.2.v1

150 MiB

仅限 12.1。

Oracle APEX 版本 5.0.4.v1

140 MiB

仅限 12.1。

Oracle APEX 版本 4.2.6.v1

160 MiB

仅限 12.1。

Oracle APEX 和 ORDS 的先决条件

要使用 Oracle APEX 和 ORDS,请确保您具备以下条件:

  • Java 运行时环境 (JRE)

  • 包含以下内容的 Oracle 客户端安装:

    • 用于执行管理任务的 SQL*Plus 或 SQL Developer

    • 用于配置与 Oracle 实例的连接的 Oracle Net Services

添加 Amazon RDS APEX 选项

将 Amazon RDS APEX 选项添加到数据库实例的一般过程如下所示:

  1. 创建新的选项组,或者复制或修改现有选项组。

  2. 将选项添加到该选项组。

  3. 将选项组与数据库实例相关联。

如果添加 Amazon RDS APEX 选项,则在数据库实例自动重新启动时会出现短暂中断。

将 APEX 选项添加到数据库实例

  1. 确定您想要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:

    1. 对于 Engine,请选择要使用的 Oracle 版本。所有版本均支持 APEX 选项。

    2. 对于主引擎版本,选择数据库实例的版本。

    有关更多信息,请参阅 创建选项组

  2. 将选项添加到该选项组。如果您只希望部署 Oracle APEX 运行时环境,则仅添加 APEX 选项。如果希望部署完整开发环境,则同时添加 APEXAPEX-DEV 选项。对于 Oracle Database 12c,请添加 APEXAPEX-DEV 选项。

    对于 Version,选择要使用的 APEX 版本。如果您不选择版本,版本 4.2.6.v1 将是 Oracle Database 12c 的默认版本。

    重要

    如果在已附加到一个或多个数据库实例的现有选项组中添加 APEX 选项,则会发生短暂中断。在此中断期间,将自动重新启动所有数据库实例。

    有关添加选项的更多信息,请参阅 将选项添加到选项组

  3. 将选项组应用到新的或现有的数据库实例:

    • 对于新数据库实例,您可以在启动实例时应用选项组。有关更多信息,请参阅 创建 Amazon RDS 数据库实例

    • 对于现有数据库实例,您可以通过修改实例并附加新的选项组来应用选项组。如果您将 APEX 选项添加到现有数据库实例,则在数据库实例自动重新启动时会出现短暂中断。有关更多信息,请参阅 修改 Amazon RDS 数据库实例

解锁公共用户账户

安装 Amazon RDS APEX 选项后,您必须更改 APEX 公共用户账户的密码,然后解锁账户。您可以使用 Oracle SQL*Plus 命令行实用程序执行该操作。以主用户身份连接到数据库实例,并发出以下命令。使用所选密码替换 new_password

alter user APEX_PUBLIC_USER identified by new_password; alter user APEX_PUBLIC_USER account unlock;

为 Oracle APEX 配置 RESTful 服务

要在 APEX 中配置 RESTful 服务 (对 APEX 4.1.1.V1 不需要),请使用 SQL*Plus 以主用户的身份连接到您的 DB 实例。执行此操作后,运行 rdsadmin.rdsadmin_run_apex_rest_config 存储过程。当您运行该存储过程时,请为以下用户提供密码:

  • APEX_LISTENER

  • APEX_REST_PUBLIC_USER

该存储过程运行 apex_rest_config.sql 脚本,从而为这些用户创建新的数据库账户。

注意

Oracle APEX 版本 4.1.1.v1 无需配置。仅对于此 Oracle APEX 版本,您不需要运行该存储过程。

以下命令运行该存储过程。

exec rdsadmin.rdsadmin_run_apex_rest_config('apex_listener_password', 'apex_rest_public_user_password');

为 Oracle APEX 设置 ORDS

现在一切就绪,可以安装和配置用于 Oracle APEX 的 Oracle Rest Data Services (ORDS) 了。对于 APEX 版本 5.0 和更高版本,请使用 Oracle Rest Data Services (ORDS) 19.1 和更高版本。

将侦听器安装在单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机。对于本节中的示例,我们假定您的主机的名称为 myapexhost.example.com,并且您的主机运行的是 Linux。

为安装 ORDS 做准备

在安装 ORDS 之前,您需要创建非特权操作系统用户,然后下载并解压缩 APEX 安装文件。

为安装 ORDS 做准备

  1. root 身份登录到 myapexhost.example.com

  2. 创建一个非特权操作系统用户以控制侦听器安装。以下命令会创建一个名为 apexuser 的新用户。

    useradd -d /home/apexuser apexuser

    以下命令会为新用户分配密码。

    passwd apexuser;
  3. apexuser 身份登录 myapexhost.example.com,并从 Oracle 网站将 APEX 安装文件下载到您的 /home/apexuser 目录:

  4. /home/apexuser 目录中解压缩该文件。

    unzip apex_<version>.zip

    在解压缩该文件后,/home/apexuser 目录中会有一个 apex 目录。

  5. 在您仍以 apexuser 身份登录 myapexhost.example.com 时,从 Oracle 网站将 Oracle REST Data Services 文件下载到您的 /home/apexuser 目录:http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html

安装并配置 ORDS

在使用 APEX 之前,您需要下载 ords.war 文件,使用 Java 安装 ORDS,然后启动侦听器。

安装和配置 ORDS 以用于 Oracle APEX

  1. 创建一个基于 ORDS 的新目录,然后解压缩侦听器文件。

    mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
  2. Oracle REST Data Services 下载 ords.version.number.zip 文件。

  3. 将该文件解压缩到 /home/apexuser/ORDS 目录中。

  4. 为主用户授予所需的权限以安装 ORDS。

    在安装 Amazon RDS APEX 选项后,为主用户提供所需的权限以安装 ORDS 架构。您可以连接到数据库并运行以下命令以完成该操作。将 master_user 替换为主用户的名称。

    exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'master_user', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'master_user', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'master_user', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'master_user', 'EXECUTE', true);
    注意

    这些命令适用于 ORDS 版本 19.1 和更高版本。

  5. 使用下载的 ords.war 文件安装 ORDS 架构。

    java -jar ords.war install advanced

    程序会提示您输入以下信息。括号中为默认值。有关更多信息,请参阅 Oracle 文档中的 Oracle REST Data Services 简介

    • 输入用于存储配置数据的位置:

      输入 /home/apexuser/ORDS。这是 ORDS 配置文件的位置。

    • 指定要使用的数据库连接类型。输入 [1] 基本 [2] TNS [3] 自定义 URL [1] 的编号:

      选择所需的连接类型。

    • 输入数据库服务器 [localhost] 的名称:DB_instance_endpoint

      选择默认值或输入正确的值。

    • 输入数据库侦听器端口 [1521]:DB_instance_port

      选择默认值或输入正确的值。

    • 输入 1 以指定数据库服务名称,或输入 2 以指定数据库 SID [1]:

      选择 2 以指定数据库 SID。

    • 数据库 SID [xe]

      选择默认值或输入正确的值。

    • 如果要验证/安装 Oracle REST Data Services 架构,请输入 1,或输入 2 以跳过此步骤 [1]:

      选择 1。此步骤将创建名为 ORDS_PUB_USER 的 Oracle REST Data Services 代理用户。

    • 输入 ORDS_PUBLIC_USER 的数据库密码:

      输入密码,然后确认。

    • 要求使用管理员权限登录以验证 Oracle REST Data Services 架构。

      输入管理员用户名:master_user

      输入 master_user 的数据库密码:master_user_password

      确认该密码:master_user_password

    • 输入 ORDS_METADATA [SYSAUX] 的默认表空间。

      输入 ORDS_METADATA [TEMP] 的临时表空间。

      输入 ORDS_PUBLIC_USER [USERS] 的默认表空间。

      输入 ORDS_PUBLIC_USER [TEMP] 的临时表空间。

    • 如果要使用 PL/SQL 网关,请输入 1,或者输入 2 以跳过该步骤。如果使用 Oracle Application Express 或从 mod_plsql 迁移,您必须输入 1 [1]。

      选择默认值。

    • 输入 PL/SQL 网关数据库用户名 [APEX_PUBLIC_USER]

      选择默认值。

    • 输入 APEX_PUBLIC_USER 的数据库密码:

      输入密码,然后确认。

    • 输入 1 以指定 Application Express RESTful Services 数据库用户(APEX_LISTENER、APEX_REST_PUBLIC_USER)的密码,或输入 2 以跳过此步骤 [1]:

      为 APEX 4.1.1.V1 选择 2;为所有其他 APEX 版本选择 1

    • [对于 APEX 4.1.1.v1 不需要] APEX_LISTENER 的数据库密码

      输入密码(如果需要),然后确认。

    • [对于 APEX 4.1.1.v1 不需要] APEX_REST_PUBLIC_USER 的数据库密码

      输入密码(如果需要),然后确认。

    • 输入一个数字以选择要启用的功能:

      输入 1 以启用所有功能:SQL 开发人员 Web、启用 REST 的 SQL 和数据库 API。

    • 如果您希望在独立模式下启动,请输入 1;或输入 2 退出 [1]:

      输入 1

    • 输入 APEX 静态资源位置:

      如果已将 APEX 安装文件解压缩到 /home/apexuser 中,请输入 /home/apexuser/apex/images。否则,请输入 unzip_path/apex/images,其中 unzip_path 是解压缩文件的目录。

    • 如果使用 HTTP,则输入 1;如果使用 HTTPS,则输入 2 [1]:

      如果您输入 1,请指定 HTTP 端口。如果您输入 2,请指定 HTTPS 端口和 SSL 主机名。HTTPS 选项提示您指定提供证书的方式:

      • 输入 1 以使用自签名证书。

      • 输入 2 以提供您自己的证书。如果输入 2,请指定 SSL 证书的路径和 SSL 证书私有密钥的路径。

  6. 为 APEX admin 用户设置密码。为此,请使用 SQL*Plus 以主用户身份连接到数据库实例,然后运行以下命令。

    EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE to master; @/home/apexuser/apex/apxchpwd.sql

    使用主用户名替换 master。在 apxchpwd.sql 脚本提示您时,输入新的 admin 密码。

  7. 启动 ORDS 侦听器。运行以下代码。

    java -jar ords.war

    首次启动 ORDS 时,系统会提示您提供 APEX 静态资源的位置。此映像文件夹位于 APEX 安装目录下的 /apex/images 目录中。

  8. 返回浏览器内的 APEX 管理窗口,然后选择 Administration。接下来选择 Application Express Internal Administration。在提示您输入凭证时,请输入以下信息:

    • 用户名admin

    • 密码 – 使用 apxchpwd.sql 脚本设置的密码

    选择 Login,然后设置 admin 用户的新密码。

您的侦听器现在已可以使用。

设置 Oracle APEX Listener

注意

Oracle APEX Listener 已被弃用。

Amazon RDS for Oracle 继续支持 APEX 版本 4.1.1 和 Oracle APEX Listener 版本 1.1.4。建议您使用支持的最新版本 Oracle APEX 和 ORDS。

将 Oracle APEX Listener 安装到独立的主机上,例如 Amazon EC2 实例、您公司的本地服务器或您的台式计算机上。假设您的主机名称为 myapexhost.example.com 且运行 Linux。

为安装 Oracle APEX Listener 做准备

在安装 Oracle APEX Listener 之前,您需要创建非特权操作系统用户,然后下载并解压缩 APEX 安装文件。

为安装 Oracle APEX Listener 做准备

  1. root 身份登录到 myapexhost.example.com

  2. 创建一个非特权操作系统用户以控制侦听器安装。以下命令会创建一个名为 apexuser 的新用户。

    useradd -d /home/apexuser apexuser

    以下命令会为新用户分配密码。

    passwd apexuser;
  3. apexuser 身份登录 myapexhost.example.com,并从 Oracle 网站将 APEX 安装文件下载到您的 /home/apexuser 目录:

  4. /home/apexuser 目录中解压缩该文件。

    unzip apex_<version>.zip

    在解压缩该文件后,/home/apexuser 目录中会有一个 apex 目录。

  5. 当您仍以 apexuser 身份登录 myapexhost.example.com 时,从 Oracle 网站将 Oracle APEX Listener 文件下载到您的 /home/apexuser 目录。

安装和配置 Oracle APEX Listener

在使用 APEX 之前,您需要下载 apex.war 文件,使用 Java 安装 Oracle APEX Listener,然后启动侦听器。

安装和配置 Oracle APEX Listener

  1. 创建一个基于 Oracle APEX Listener 的新目录并打开侦听器文件。

    运行以下代码:

    mkdir /home/apexuser/apexlistener cd /home/apexuser/apexlistener unzip ../apex_listener.version.zip
  2. 运行以下代码。

    java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
  3. 输入该程序提示的以下信息:

    • APEX Listener Administrator 用户名。默认值为 adminlistener

    • APEX Listener Administrator 密码。

    • APEX Listener Manager 用户名。默认值为 managerlistener

    • APEX Listener Administrator 密码。

    该程序将输出完成配置所需的 URL,如下所示。

    INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure Database is not yet configured
  4. 让 Oracle APEX Listener 保持运行,以便您可以使用 Oracle Application Express。完成此配置过程后,可在后台运行侦听器。

  5. 从 Web 浏览器内转到 APEX Listener 程序提供的 URL。显示 Oracle Application Express Listener 管理窗口。输入以下信息:

    • 用户名APEX_PUBLIC_USER

    • 密码APEX_PUBLIC_USER 的密码。这是您先前配置 APEX 存储库时指定的密码。有关更多信息,请参阅 解锁公共用户账户

    • 连接类型 – 基本

    • 主机名 – 您的 Amazon RDS 数据库实例的终端节点,例如 mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com

    • 端口 – 1521

    • SID – Amazon RDS 实例上的数据库名称,例如,mydb​。

  6. 选择 Apply。显示 APEX 管理窗口。

  7. 为 APEX admin 用户设置密码。为此,请使用 SQL*Plus 以主用户身份连接到数据库实例,然后运行以下命令。

    EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE to master; @/home/apexuser/apex/apxchpwd.sql

    使用主用户名替换 master。在 apxchpwd.sql 脚本提示您时,输入新的 admin 密码。

  8. 返回浏览器内的 APEX 管理窗口,然后选择 Administration。接下来选择 Application Express Internal Administration。在提示您输入凭证时,请输入以下信息:

    • 用户名admin

    • 密码 – 使用 apxchpwd.sql 脚本设置的密码

    选择 Login,然后设置 admin 用户的新密码。

您的侦听器现在已可以使用。

升级 APEX 版本

重要

在升级 APEX 之前,请对数据库实例进行备份。有关更多信息,请参阅 创建数据库快照测试 Oracle 数据库升级

要将 APEX 与数据库实例一起升级,请执行以下操作:

  • 为数据库实例的升级后版本创建一个新的选项组。

  • 将 APEX 和 APEX-DEV 的升级后版本添加到该新选项组。确保包括数据库实例使用的任何其他选项。有关更多信息,请参阅 选项组注意事项

  • 在升级数据库实例时,请为升级后的数据库实例指定该新选项组。

在升级 APEX 版本后,早期版本的 APEX 架构可能仍在您的数据库中。如果您不再需要旧的 APEX 架构,可在升级后从数据库中将其删除。

如果您升级 APEX 版本,并且在先前的 APEX 版本中未配置 RESTful 服务,我们建议您配置 RESTful 服务。有关更多信息,请参阅 为 Oracle APEX 配置 RESTful 服务

在某些情况下,当您计划对数据库实例进行主要版本升级时,您可能会发现您使用的是与目标数据库版本不兼容的 APEX 版本。在这些情况下,您可以在升级数据库实例之前升级 APEX 版本。先升级 APEX 可以减少升级数据库实例所需的时间。

注意

在升级 APEX 后,安装并配置用于已升级版本的侦听器。有关说明,请参阅设置 Oracle APEX Listener

删除 APEX 选项

可以从数据库实例中删除 Amazon RDS APEX 选项。要从数据库实例中删除 APEX 选项,请执行下列操作之一:

  • 要从多个数据库实例中删除 APEX 选项,请从其所属的选项组中删除 APEX 选项。此更改会影响使用该选项组的所有数据库实例。如果从已附加到多个数据库实例的选项组中删除 APEX 选项,所有数据库实例重新启动时都会发生短暂中断。

    有关更多信息,请参阅 从选项组中删除选项

  • 要从单个数据库实例中删除 APEX 选项,请修改该数据库实例,并指定另一个不包含 APEX 选项的选项组。您可以指定默认 (空) 选项组,或指定其他自定义选项组。如果删除 APEX 选项,数据库实例在自动重新启动时会出现短暂中断。

    有关更多信息,请参阅 修改 Amazon RDS 数据库实例

在从数据库实例中删除 APEX 选项时,将从数据库中删除 APEX 架构。