oracle apex服务安装

1.Oracle数据库
1.1oracle版本oracle19.3
1.2字符集采用缺省的AL32UTF8
1.3建议创建实例为非容器数据库(如果创建成了容器数据库,后续的安装配置有少量特别处理)
1.4实例名:MYORCL(若之前已经创建过,直接使用,不再重复创建)
1.5服务名:MYORCL
-------------------------------------------------------------------------------------------------------
2.安装APEX(19.2)
2.1创建表空间
用于安装APEX时指定:APEX应用表空间,文件表空间

#注意:如果是容器数据库,安装到PDB中,在PDB中创建表空间之前先执行:ALTER SESSION SET CONTAINER = MYORCL

以sys用户进入sqlplus执行:
C:\Users\zyk>sqlplus /@MYORCL as sysdba
CREATE TABLESPACE MYAPEX datafile 'XXXXX:\app\Administrator\oradata\SOA\MYORCL\MYAPEX_DATA.dbf' SIZE 1G AUTOEXTEND ON NEXT 50M ;

CREATE TABLESPACE MYAPEX_FILES datafile 'XXXXX:\app\Administrator\oradata\SOA\MYORCL\MYAPEX_FILES_DATA.dbf' SIZE 1G AUTOEXTEND ON NEXT 50M;

#注意:数据文件路径,查询Select File_Name From Dba_Data_Files Where Tablespace_Name = 'SYSTEM'

2.2执行APEX安装脚本
将APEX安装文件压缩包解压
进入命令行(Windows:cmd)
进入到APEX安装文件所在的目录,以sys用户登录sqlplus并执行安装脚本,例:
C:\Users\zyk>cd D:\DownLoad\soft\apex19.2
C:\Users\zyk>d:
D:\DownLoad\soft\apex19.2>sqlplus /@MYORCL as sysdba
SQL>@apexins.sql MYAPEX MYAPEX_FILES Temp /i/

2.3基本配置
设置APEX管理员admin的密码
SQL>@apxchpwd.sql

建议输入:Abc123#
#注意:admin的密码必须包含大小写字母、数字和特殊字符

如果ADMIN账户被锁或者忘记密码,可以通过执行这个脚本来重新配置

解锁APEX相关帐号并设置密码(因为后面涉及多个用户的密码设置,为了方便记忆,建议统一密码为admin
SQL>ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
SQL>ALTER USER APEX_PUBLIC_USER IDENTIFIED BY admin;
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
#注意:这个用户的密码必须配置为永不过期

解锁匿名帐号
SQL>ALTER USER ANONYMOUS ACCOUNT UNLOCK;

关闭数据库XMLDB的http端口(因为我们将采用ORDS来提供Web服务)
SQL>exec dbms_xdb.sethttpport(0);

2.4配置RESTful服务
SQL>@apex_rest_config.sql
Enter a password for the APEX_LISTENER user              []admin
Enter a password for the APEX_REST_PUBLIC_USER user              []admin

2.5配置ACL访问权限

说明:文中apex_190200,视当前APEX安装包版本而定,当前版本为19.2,为APEX_版本号(现在是APEX_190200)授权ACL访问的权限

         DECLARE
Declare
  Acl_Path Varchar2(4000);
Begin
  Select Acl Into Acl_Path From Dba_Network_Acls Where Host = '*' And Lower_Port Is Null And Upper_Port Is Null;
  If Dbms_Network_Acl_Admin.Check_Privilege(Acl_Path, 'APEX_190200', 'connect') Is Null Then
    Dbms_Network_Acl_Admin.Add_Privilege(Acl_Path, 'APEX_190200', True, 'connect');
  End If;
Exception
  -- When no ACL has been assigned to '*'.
  When No_Data_Found Then
    Dbms_Network_Acl_Admin.Create_Acl('power_users.xml', 'ACL that lets power users to connect to everywhere',
                                      'APEX_190200', True, 'connect');
    Dbms_Network_Acl_Admin.Assign_Acl('power_users.xml', '*');
End;
/
Commit;

Begin
  Dbms_Network_Acl_Admin.Append_Host_Ace(Host => '*',
                                         Ace => Xs$ace_Type(Privilege_List => Xs$name_List('connect'),
                                                             Principal_Name => 'APEX_190200',
                                                             Principal_Type => Xs_Acl.Ptype_Db));
End;
/

2.6安装汉化包
在命令行进入apex安装脚本文件夹下的目录builder/zh-cn
以sys用户登录sqlplus,并修改当前schema为APEX所有者模式,执行脚本load_zh-cn.sql
C:\Users\ThinkPad>cd D:\DownLoad\soft\apex19.2\builder\zh-cn
C:\Users\ThinkPad>d:
D:\DownLoad\soft\apex19.2\builder\zh-cn>sqlplus /@ORCLAPEX as sysdba

SQL>alter session set current_schema=APEX_190200;
SQL>@load_zh-cn.sql;

-------------------------------------------------------------------------------------------------------
3.安装JDK及Tomcat
3.1安装Java环境:jdk-8uXXX-windows-x64.exe
3.2安装Tomcat,如果是免安装包,解压到D盘即可,暂时不用启动Tomcat(在后续安装完ORDS后再启动)
   如果是exe安装程序,安装过程中用户名及密码建议为:admin/admin,其余保持缺省即可。

   为Apache安装APR(Apache portable Run-time libraries,Apache可移植运行库),以提高网站的并发访问性能:
   解压文件:tomcat-native-1.2.23-openssl-1.1.1c-win32-bin.zip
   将bin\x64下的两个文件:tcnative-1.dll,tcnative-1-src.pdb
   拷贝到Tomcat的执行文件目录:C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin

   另外,需要修改配置文件server.xml中的protocol,见后面的描述。
        
   配置成功后,在最后的步骤,启用tomcat之后,日志文件:
   C:\Program Files\Apache Software Foundation\Tomcat 9.0\logs\catalina.2019-12-30.log
   可以看到如下这样一行:
   org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-apr-8080"]

3.3将APEX安装包目录下的图片资源文件拷到Tomcat相关目录
在tomcat/webapps下创建i文件夹,将apex\images目录下的内容copy到tomcat/webapps/i/目录下

3.4调整配置文件,支持网页文件压缩以提高性能
打开conf目录下的配置文件server.xml
C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\server.xml

找到第一个redirectPort="8443"的位置行
在该行前面增加三行,配置compression、compressionMinSize、compressibleMimeType
注意:网上很多文章写的是compressableMimeType,如果按此名称配置,会在日志中看到警告信息:
Setting property 'compressableMimeType' to  'text/html......' did not find a matching property.
实际上该参数已更名为compressibleMimeType(字母a改成了i)
用来提高网页相关文件的下载性能(以及解决使用火狐浏览器遇到的一些问题)。

把下面这行的HTTP/1.1改为org.apache.coyote.http11.Http11AprProtocol,以支持APR(通过支持异步IO来提高并发性能)

<Connector port="8080"   address="0.0.0.0"

protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
compression="on"
compressionMinSize="2048"
compressibleMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain,application/json"
redirectPort="8443" />

3.5安装补丁p30392181_1920_Generic.zip
解压该补丁包,在windows命令行进入到该目录:
cd D:\DownLoad\APEX\30392181

以sys用户登录sqlplus运行脚本catpatch.sql

sqlplus /nolog

conn sys/xxxx@myorcl as sysdba;
@catpatch.sql

然后,将30392181\images目录下的libraries目录及子目录的内容拷贝到tomcat/webapps/i/目录下(将会替换其中的6个同名文件)


-------------------------------------------------------------------------------------------------------
4.安装ORDS
4.1解压ORDS安装文件
4.2修改配置文件,以支持更大的并发访问量
在解压出的ORDS安装目录下创建目录conf\apex,然后在该目录下创建配置文件defaults.xml
D:\DownLoad\soft\ords-19.4.0.352.1226\conf\apex\defaults.xml
(本来安装过程会自动创建该文件,我们为了预先指定配置文件中的参数,所以人工创建)

在配置文件defaults.xml中添加以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="apex.jdbc.InitialLimit">25</entry>
<entry key="jdbc.MaxLimit">100</entry>
<entry key="jdbc.MinLimit">25</entry>
<entry key="jdbc.InactivityTimeout">1800</entry>
<entry key="apex.jdbc.AbandonedConnectionTimeout">900</entry>
<entry key="apex.jdbc.MaxConnectionReuseCount">50000</entry>
<entry key="apex.security.requestValidationFunction">wwv_flow_epg_include_modules.authorize</entry>
</properties>

4.3执行ORDS安装
在命令行进入ORDS安装目录后执行安装(在命令行查看帮助:java -jar apex.war help)
C:\Users\zyk>cd D:\DownLoad\soft\ords-19.4.0.352.1226
C:\Users\zyk>d:
D:\DownLoad\soft\ords-19.4.0.352.1226>java -jar ords.war install advanced

#注意:以下安装过程涉及输入4个用户的密码,建议统一为admin,以方便记忆

输入要存储配置数据的位置:conf
输入相应编号:[1] 基本  [2] TNS  [3] 定制 URL [1]:1                (19.4才有)
输入数据库服务器的名称 [192.168.33.127]:MYORCL所在的地址)
输入数据库监听端口 [1521]:
输入 1 指定数据库服务名称, 或输入 2 指定数据库 SID [1]:1
        #独立实例选择2,如果是安装在容器数据库的pdb中,此处选择1(因为pdbSIDcdb相同,会导致连接到CDB上)(推荐安装的容器数据库,所以选择1
        输入数据库SID [MYORCL]:
#输入数据库服务名 [MYORCL]:你登录PLSQL时使用的服务名
如果您希望验证/安装 Oracle REST Data Services 方案, 则输入 1; 或者输入 2 跳过此步骤 [1]:1
输入ORDS_PUBLIC_USER的数据库口令:admin
确认口令:admin

        #如果这一步连接失败,需检查在SQLPLUS下是否能够以EZ Connect方式连接到数据库:
        SQL>sqlplus sys/his@192.168.33.127:1521/MYORCL
        #如果连接失败,请检查数据库监听的配置,常见的情况是本机配置时没有监听该IP,而是监听的localhost
        #分析诊断:在命令行下执行lsnrctl,执行status命令可查看监听情况
        #解决办法:修改C:\oracle\product\12.0\db_1\network\admin\listener.ora中的监听IP及实例,并重启监听
        #重新安装前,须删除含有apex.xml文件的最末级文件夹:conf\apex\conf(有的环境下可能没有,则无须删除)

需要 SYS AS SYSDBA 以验证 Oracle REST Data Services 方案。
Enter the administrator username:sys
输入SYS AS SYSDBA的数据库口令:
确认口令:
检索信息.
为 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]:1
输入 PL/SQL 网关数据库用户名 [APEX_PUBLIC_USER]:
输入APEX_PUBLIC_USER的数据库口令:admin
确认口令:admin
输入 1 可以为 Application Express RESTful 服务数据库用户 (APEX_LISTENER, APEX_REST_PUBLIC_USER) 指定口令; 或者输入 2 跳过此步骤 [1]:1
输入APEX_LISTENER的数据库口令:admin
确认口令:admin
输入APEX_REST_PUBLIC_USER的数据库口令:admin
确认口令:admin

输入相应编号以选择要启用的功能:[1] SQL Developer Web [2] 启用 REST 的 SQL [3] 无 [1]:2
2019-12-30T07:50:48.503Z INFO   reloaded pools: []
正在安装Oracle REST Data Services版本 19.4.0.r3521226
... 日志文件已写入C:\Users\ThinkPad\ords_install_core_2019-12-30_155048_00819.log
... 已验证数据库的先决条件
... 已创建 Oracle REST Data Services 代理用户
... 已创建 Oracle REST Data Services 方案
... 已授予 Oracle REST Data Services 权限
... 已创建 Oracle REST Data Services 数据库对象
... 日志文件已写入C:\Users\ThinkPad\ords_install_datamodel_2019-12-30_155111_00242.log
... 日志文件已写入C:\Users\ThinkPad\ords_install_apex_2019-12-30_155116_00201.log
已完成 Oracle REST Data Services 版本 19.4.0.r3521226 的安装。用时: 00:00:32.224

要以独立模式启动, 请输入 1; 要退出, 请输入 2 [1]:2

#如果以上过程出错,要重新配置,须删除含有apex.xml文件的最末级文件夹:conf\apex\conf(有的环境下可能没有,就无须删除)


4.4把ORDS安装目录下的ords.war文件复制到tomcat/webapps目录下
   如果重新制作并拷入ords.war,需先删除tomcat目录下的同名文件夹ords

补充:

删除ords时(java -jar ords.war  uninstall),若一直卡住不动,可查看数据库是否出现了死锁,这时可将对应的会话杀死重试,若依然卡死,可等待脚本抛出对应异常,将异常执行的脚本单独提取出来执行尝试。如删除ords时,抛出如下异常:


Error starting at line : 92 in command -
begin
   for c1 in (
      select username from sys.dba_users where username in ('ORDS_METADATA','ORDS_PUBLIC_USER')
   ) loop
      if (c1.username = 'ORDS_PUBLIC_USER' ) and (upper('^EXCLUDE_PUBLIC_USER') = 'TRUE') then
        dbms_output.put_line('skip dropping user ' || c1.username);
      else 
        dbms_output.put_line('drop user ' || c1.username);
        execute immediate 'drop user ' || c1.username || ' cascade';
      end if;
   end loop;
end;
Error report -
ORA-04021: timeout occurred while waiting to lock object 
ORA-06512: at line 9
ORA-06512: at line 9

可将此处语句块单独提取出来执行尝试。

若执行时抛出异常:

ERROR at line 1:
ORA-28014: cannot drop administrative user or role
ORA-06512: at line 9
ORA-06512: at line 9

可执行:alter session set "_oracle_script"=true;语句后再以上异常脚本执行。若仍然死锁,可将上述异常脚本中删除用户时的cascade关键字去除尝试。



4.5启动Tomcat
在Windows开始菜单中找到Apache Tomcat9.0 Tomcat\Monitor Tomcat,运行后,执行Start按钮。
其中可以设置为系统启动时自动运行(startup type设置为automatic)。
关闭后,Windows任务栏右下角会有一个小图标。
如果要查看启动过程中的错误,可以用管理员用户在命令行下执行:
C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\startup.bat

安装完成后,打开ords配置管理界面:

工作区默认为:internal

用户名/密码:初始化apex时所配置的

 登录后,创建自己的工作区:

此处可以使用已存在的表空间,也可新建:

 填写相关信息,下一步创建完成便可。

 

 创建完成后,退出登录便可进入自己的工作区进行相关操作了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值