Oracle Application Express (APEX)
Amazon RDS 通过使用 APEX
和 APEX-DEV
选项支持 Oracle Application Express (APEX)。您可以将 Oracle APEX 部署为运行时环境或基于 Web 的应用程序的完整开发环境。使用 Oracle APEX,您可完全在 Web 浏览器内构建应用程序。有关更多信息,请参阅 Oracle 文档中的 Oracle Application Express
主题
APEX 组件
Oracle APEX 包含以下主要组件:
-
存储 APEX 应用程序和组件元数据的存储库。该存储库包含安装在 Amazon RDS 数据库实例内的表、索引和其他对象。
-
管理与 Oracle APEX 客户端的 HTTP 通信的侦听器。侦听器位于单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机。该侦听器接受来自 Web 浏览器的传入连接并将这些连接转发至 Amazon RDS 数据库实例进行处理,然后将来自存储库的结果发送回浏览器。
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 网关作为 APEX 侦听器的 Oracle XML DB HTTP 服务器。对于在 Internet 上运行的应用程序而言,Oracle 一般不建议使用嵌入 PL/SQL 网关。
有关这些侦听器类型的更多信息,请参阅 Oracle 文档中的关于选择 Web 侦听器
。 -
将 Amazon RDS APEX 选项添加到 RDS for Oracle 数据库实例时,Amazon RDS 仅安装 Oracle APEX 存储库。将您的侦听器安装在单独的主机上。
APEX 版本要求
APEX 选项将数据库实例类中的存储用于您的数据库实例。下面是支持的 Oracle APEX 版本和大致的存储要求。
APEX 版本 | 存储需求 | 支持的 Oracle 数据库版本 | 注意 |
---|---|---|---|
Oracle APEX 版本 23.2.v1 |
110 MiB |
全部 |
此版本包括补丁 35895964:PSE BUNDLE FOR APEX 23.2(PSES ON TOP OF 23.2.0)、PATCH_VERSION 6。 |
Oracle APEX 版本 23.1.v1 |
106 MiB |
全部 |
此版本包括补丁 35283657:PSE BUNDLE FOR APEX 23.1(PSES ON TOP OF 23.1.0)、PATCH_VERSION 2。 |
Oracle APEX 版本 22.2.v1 |
106MiB |
全部 |
此版本包括补丁 34628174:PSE BUNDLE FOR APEX 22.2(PSES ON TOP OF 22.2.0)、PATCH_VERSION 4。 |
Oracle APEX 版本 22.1.v1 |
124MiB |
全部 |
此版本包括补丁 34020981:PSE BUNDLE FOR APEX 22.1(PSES ON TOP OF 22.1.0)、PATCH_VERSION 6。 |
Oracle APEX 版本 21.2.v1 |
125 MiB |
全部 |
此版本包括补丁 33420059:PSE BUNDLE FOR APEX 21.2(PSES ON TOP OF 21.2.0)、PATCH_VERSION 8。 |
Oracle APEX 版本 21.1.v1 |
125 MiB |
全部 |
此版本包括补丁 32598392:PSE BUNDLE FOR APEX 21.1、PATCH_VERSION 3。 |
Oracle APEX 版本 20.2.v1 |
148 MiB |
全部,但 Oracle Database 21c 除外 |
此版本包括补丁 32006852:PSE BUNDLE FOR APEX 20.2、PATCH_VERSION 2020.11.12。您可以通过运行以下查询来查看补丁编号和日期:
|
Oracle APEX 版本 20.1.v1 |
173 MiB |
全部,但 Oracle Database 21c 除外 |
此版本包括补丁 30990551:PSE BUNDLE FOR APEX 20.1、PATCH_VERSION 2020.07.15。 |
Oracle APEX 版本 19.2.v1 |
149 MiB |
全部,但 Oracle Database 21c 除外 |
|
Oracle APEX 版本 19.1.v1 |
148 MiB |
全部,但 Oracle Database 21c 除外 |
有关可下载的 APEX .zip 文件,请参阅 Oracle 网站上的 Oracle APEX 先前版本存档
Oracle APEX 和 ORDS 要求
请注意以下对 APEX 和 ORDS 的要求:
-
系统必须使用 Java 运行时环境(JRE)。
-
您的 Oracle 客户端安装必须包括以下内容:
-
用于执行管理任务的 SQL*Plus 或 SQL Developer
-
用于配置与 RDS for Oracle 数据库实例的连接的 Oracle Net Services
-
将 APEX 和 APEX-DEV 选项添加到数据库实例
要将 APEX
和 APEX-DEV
选项添加到 RDS for Oracle 数据库实例,请执行以下操作:
-
创建新的选项组,或者复制或修改现有选项组。
-
将
APEX
和APEX-DEV
选项添加到该选项组。 -
将选项组与数据库实例相关联。
如果添加 Amazon RDS APEX 选项,则在数据库实例自动重新启动时会出现短暂中断。
注意
安装 APEX
选项时,APEX_MAIL
可用。APEX_MAIL
包的执行权限授予 PUBLIC
,因此您不需要 APEX 管理账户即可使用它。
将 APEX 选项添加到数据库实例
-
确定您要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:
-
对于 Engine,请选择要使用的 Oracle 版本。所有版本均支持 APEX 选项。
-
对于主引擎版本,选择数据库实例的版本。
有关更多信息,请参阅“创建选项组”。
-
-
将选项添加到该选项组。如果您只希望部署 Oracle APEX 运行时环境,则仅添加
APEX
选项。要部署完整开发环境,则同时添加APEX
和APEX-DEV
选项。对于 Version,选择要使用的
APEX
版本。重要
如果在已附加到一个或多个数据库实例的现有选项组中添加 APEX 选项,则会发生短暂中断。在此中断期间,将自动重新启动所有数据库实例。
有关添加选项的更多信息,请参阅 将选项添加到选项组。
-
将选项组应用到新的或现有的数据库实例:
-
对于新数据库实例,您可以在启动实例时应用选项组。有关更多信息,请参阅“创建 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
');
准备好在单独的主机上安装 ORDS
将 ORDS 安装在单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机。本节中的示例假设您的主机运行 Linux 且名为 myapexhost.example.com
。
在安装 ORDS 之前,您需要创建非特权操作系统用户,然后下载并解压缩 APEX 安装文件。
为安装 ORDS 做准备
-
以
myapexhost.example.com
身份登录到root
。 -
创建一个非特权操作系统用户以控制侦听器安装。以下命令会创建一个名为 apexuser 的新用户。
useradd -d /home/apexuser
apexuser
以下命令会为新用户分配密码。
passwd apexuser;
-
以
myapexhost.example.com
身份登录apexuser
,并从 Oracle 网站将 APEX 安装文件下载到您的/home/apexuser
目录: -
在
/home/apexuser
目录中解压缩该文件。unzip apex_
version
.zip在解压缩该文件后,
apex
目录中会有一个/home/apexuser
目录。 -
在您仍以
myapexhost.example.com
身份登录apexuser
时,从 Oracle 网站将 Oracle REST Data Services 文件下载到您的/home/apexuser
目录:http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html
安装并配置 ORDS 21 及更低版本
现在一切就绪,可以安装和配置用于 Oracle APEX 的 Oracle Rest Data Services (ORDS) 了。对于 APEX 版本 5.0 及更高版本,请使用 ORDS 版本 19.1 到 21。要了解如何安装 ORDS 22 及更高版本,请参阅安装和配置 ORDS 22 及更高版本。
将侦听器安装在单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机。对于本节中的示例,我们假定您的主机的名称为 myapexhost.example.com
,并且您的主机运行的是 Linux。
安装并配置 ORDS 21 及更低版本以与 Oracle APEX 结合使用
-
转至 Oracle REST Data Services
,查看自述文件。确保安装了所需的 Java 版本。 -
为 ORDS 安装创建一个新目录。
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
-
从 Oracle REST data services
下载文件 ords.
。version.number
.zip -
将该文件解压缩到
/home/apexuser/ORDS
目录中。 -
如果要将 ORDS 安装到多租户数据库中,请将如下命令行添加到文件
/home/apexuser/ORDS/params/ords_params.properties
:pdb.disable.lockdown=false
-
为主用户授予所需的权限以安装 ORDS。
在安装 Amazon RDS APEX 选项后,为主用户提供所需的权限以安装 ORDS 架构。您可以连接到数据库并运行以下命令以完成该操作。将
替换为主用户的大写名称。MASTER_USER
重要
输入用户名时,除非您使用区分大小写的标识符创建了用户,否则请使用大写字母。例如,如果您运行
CREATE USER myuser
或CREATE USER MYUSER
,则数据字典将存储MYUSER
。但是,如果您在CREATE USER "MyUser"
中使用双引号,则数据字典将存储MyUser
。有关更多信息,请参阅“向 SYS 对象授予 SELECT 或 EXECUTE 权限”。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 和更高版本。
-
使用下载的 ords.war 文件安装 ORDS 架构。
java -jar ords.war install advanced
程序会提示您输入以下信息。括号中为默认值。有关更多信息,请参阅 Oracle 文档中的 Oracle REST Data Services 简介
。 -
输入用于存储配置数据的位置:
输入
/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/imagesunzip_path
是解压缩文件的目录。 -
如果使用 HTTP,则输入 1;如果使用 HTTPS,则输入 2 [1]:
如果您输入
1
,请指定 HTTP 端口。如果您输入2
,请指定 HTTPS 端口和 SSL 主机名。HTTPS 选项提示您指定提供证书的方式:-
输入
1
以使用自签名证书。 -
输入
2
以提供您自己的证书。如果输入2
,请指定 SSL 证书的路径和 SSL 证书私有密钥的路径。
-
-
-
为 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
密码。 -
启动 ORDS 侦听器。运行以下代码。
java -jar ords.war
首次启动 ORDS 时,系统会提示您提供 APEX 静态资源的位置。此映像文件夹位于 APEX 安装目录下的
/apex/images
目录中。 -
返回浏览器内的 APEX 管理窗口,然后选择 Administration。接下来选择 Application Express Internal Administration。在提示您输入凭证时,请输入以下信息:
-
用户名 –
admin
-
密码 – 使用
apxchpwd.sql
脚本设置的密码
选择 Login,然后设置
admin
用户的新密码。 -
您的侦听器现在已可以使用。
安装和配置 ORDS 22 及更高版本
现在一切就绪,可以安装和配置用于 Oracle APEX 的 Oracle Rest Data Services (ORDS) 了。对于本节中的示例,我们假定单独主机的名称为 myapexhost.example.com
,并且主机运行的是 Linux。ORDS 22 的说明与先前版本的说明不同。
安装并配置 ORDS 22 及更高版本以与 Oracle APEX 结合使用
-
转至 Oracle REST Data Services
,查看您计划下载的 ORDS 版本的自述文件。确保安装了所需的 Java 版本。 -
为 ORDS 安装创建一个新目录。
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
-
从 Oracle REST Data Services
下载文件 ords.
或version.number
.zipords-latest.zip
。 -
将该文件解压缩到
/home/apexuser/ORDS
目录中。 -
为主用户授予所需的权限以安装 ORDS。
在安装 Amazon RDS APEX 选项后,为主用户提供所需的权限以安装 ORDS 架构。您可以登录到数据库并运行以下命令来完成该操作。将
替换为主用户的大写名称。MASTER_USER
重要
输入用户名时,除非您使用区分大小写的标识符创建了用户,否则请使用大写字母。例如,如果您运行
CREATE USER myuser
或CREATE USER MYUSER
,则数据字典将存储MYUSER
。但是,如果您在CREATE USER "MyUser"
中使用双引号,则数据字典将存储MyUser
。有关更多信息,请参阅 向 SYS 对象授予 SELECT 或 EXECUTE 权限。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); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER
', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER
', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER
', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER
', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER
', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER
', 'SELECT', true);注意
上述命令适用于 ORDS 22 及更高版本。
-
使用下载的
ords
脚本安装 ORDS 架构。指定要包含配置文件和日志文件的目录。Oracle Corporation 建议不要将这些目录放在包含 ORDS 产品软件的目录中。mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs
对于运行容器数据库(CDB)架构的数据库实例,请使用 ORDS 23.2 及更高版本,并在安装 ORDS 时传递
--pdb-skip-disable-lockdown
参数。/home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown
程序会提示您输入以下信息。括号中为默认值。有关更多信息,请参阅 Oracle 文档中的 Oracle REST Data Services 简介
。 -
Choose the type of installation:
选择
2
可在数据库中安装 ORDS 架构,并在本地 ORDS 配置文件中创建数据库连接池。 -
Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:
选择所需的连接类型。此示例假设您选择
1
。 -
Enter the name of the database server [localhost]:
DB_instance_endpoint
选择默认值 或输入正确的值。
-
Enter the database listener port [1521]:
DB_instance_port
选择默认值
1521
或输入正确的值。 -
Enter the database service name [orcl]:
输入 RDS for Oracle 数据库实例所使用的数据库名称。
-
Provide database user name with administrator privileges
输入 RDS for Oracle 数据库实例的主用户名。
-
Enter the database password for [username]:
输入 RDS for Oracle 数据库实例的主用户密码。
-
Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:
-
Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].
-
Enter a number to select additional feature(s) to enable [1]:
-
Enter a number to configure and start ORDS in standalone mode [1]:
选择
2
可在独立模式下立即跳过启动 ORDS。 -
Enter a number to select the protocol [1] HTTP
-
Enter the HTTP port [8080]:
-
Enter the APEX static resources location:
输入 APEX 安装文件的路径 (
/home/apexuser/apex/images
)。
-
-
为 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
密码。 -
使用带有
serve
命令的ords
脚本在独立模式下运行 ORDS。对于生产部署,可以考虑使用支持的 Java EE 应用程序服务器,例如 Apache Tomcat 或 Oracle WebLogic 服务器。有关更多信息,请参阅 Oracle 数据库文档中的 Deploying and Monitoring Oracle REST Data Services。 /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config serve \ --port 8193 \ --apex-images /home/apexuser/apex/images
如果 ORDS 正在运行但无法访问 APEX 安装,您可能会看到以下错误,尤其是在非 CDB 实例上。
The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.
要修复此错误,请通过运行带有
config
命令的ords
脚本来更改 ORDS 使用的请求验证函数。默认情况下,ORDS 使用ords_util.authorize_plsql_gateway
程序包,只有 CDB 实例支持该程序包。对于非 CDB 实例,您可以将此程序包更改为wwv_flow_epg_include_modules.authorize
软件包。有关为您的用例配置正确的请求验证函数的最佳实践,请参阅 Oracle 数据库文档和 Oracle Support。 -
返回浏览器内的 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 做准备
-
以
myapexhost.example.com
身份登录到root
。 -
创建一个非特权操作系统用户以控制侦听器安装。以下命令会创建一个名为 apexuser 的新用户。
useradd -d /home/apexuser
apexuser
以下命令会为新用户分配密码。
passwd apexuser;
-
以
myapexhost.example.com
身份登录apexuser
,并从 Oracle 网站将 APEX 安装文件下载到您的/home/apexuser
目录: -
在
/home/apexuser
目录中解压缩该文件。unzip apex_
<version>
.zip在解压缩该文件后,
apex
目录中会有一个/home/apexuser
目录。 -
当您仍以
myapexhost.example.com
身份登录apexuser
时,从 Oracle 网站将 Oracle APEX Listener 文件下载到您的/home/apexuser
目录。
安装和配置 Oracle APEX Listener
在使用 APEX 之前,您需要下载 apex.war 文件,使用 Java 安装 Oracle APEX Listener,然后启动侦听器。
安装和配置 Oracle APEX Listener
-
创建一个基于 Oracle APEX Listener 的新目录并打开侦听器文件。
运行以下代码:
mkdir /home/apexuser/apexlistener cd /home/apexuser/apexlistener unzip ../apex_listener.
version
.zip -
运行以下代码。
java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
-
输入该程序提示的以下信息:
-
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
-
-
让 Oracle APEX Listener 保持运行,以便您可以使用 Oracle Application Express。完成此配置过程后,可在后台运行侦听器。
-
从 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
。
-
-
选择 Apply。显示 APEX 管理窗口。
-
为 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
密码。 -
返回浏览器内的 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 架构。