Oracle APEX系列(一) 安装

 
在网上粗略的搜索了一下,已经有很多关于Oracle Application Express APEX )的文章了,真的很高兴看到已经有这么多国内的朋友使用起这个工具了。要知道,在Oracle 公司的很多团队都有用APEX 开发的应用程序,这其中就包括广大Oracle 爱好者熟悉的AskTOM 网站。
APEX 最新的版本是2.2 ,在此之前的名字是HTMLDB 。我很喜欢这个老名字,因为它一语道破了这个产品的本质:

a hosted declarative development environment for developing and deploying database-centric Web applications. 

看到这个定义,有的人会有这样的疑问:以数据库为中心进行web 应用程序的开发,那它的性能如何呢?Oracle 官方给出的解释是:

Oracle Application Express provides application developers and application users with an extremely high level of performance.  Because Oracle Application Express resides in the Oracle database, it has minimal impact on network traffic.  Plus, Application Builder includes a large number of monitoring reports to enable you to identify and tune application performance.

我本人对这个解释不是十分满意,我做过很长时间的性能测试,影响性能的因素当然不只是这里提到的network traffic ,而一些辅助工具也不是医病的灵丹妙药,最怕的是用工具看到有病,却不知道如何医治甚至得到无药可治的答案。不过这不意味Apex 的性能不好,Apex 提供了很多可以调整的地方,其中最主要的一项就是数据库的调整了。试想一下,即使是现在最普遍的J2EE 应用程序,性能调整也是一项最艰巨的任务。
 
好了,下面先开始安装吧。
APEX安装
简单的说,共分四步:
1、  安装 Oracle DB
APEX2.2 要求Oracle DB 版本为9.2.0.3 或更高。注意APEX2.2 不支持Oracle DB XE ,如果你的数据库是Oracle DB XE ,就要选用APEX2.1 。我这里选用的数据库是Oracle 10.2.0.1 ,虽然不是目前最高的版本(最高的版本是10.2.0.1 patchset ),但是已经包含了很多令人振奋的新特性了。
建议CSDN 的朋友们也多使用一些Oracle 产品的新版本,时刻保持对新技术的敏感度。
 
Oracle DB 的免费下载网址为:
http://www.oracle.com/technology/software/products/database/oracle10g/index.html
注意:不要用下载的软件从事有任何商业目的的活动。
 
下载之后开始安装,步骤非常简单。你可以选择在安装的同时创建一个数据库,或者在安装结束后用DBCA 创建一个数据库,最好将数据库的字符集设为AL32UTF8 (如果你想让你的数据库支持多种语言,请选用AL32UTF8 ;否则可以考虑使用一种native 本地的字符集,比如ZHS16GBK )。这里我创建了一个service name tina03.cn.oracle.com SID tina03 )的数据库。
安装结束后,打开services (服务)窗口,你可以看到里面多了数个oracle 的服务,其中包括我们需要的OracleServiceTINA03 OracleOraDb10gTNSListener ,其他的服务都可以停掉且设为手动启动。
 
2、  安装 Oracle Http Server
APEX2.2 是需要部署到Oracle Http Server 上的,它所以能运行主要是依赖于mod_plsql 这个模块。下面这三个系列的产品可以满足需要:

Oracle 9i Database release 2 (9.2) or higher

Oracle 9i Application Server release 1 (1.0.2.2) or higher

Oracle 10 g Database CompanionCD(CCD) release 1 or 2

我们选用Oracle DB 10.2.0.1.0 CCD。安装过程也十分简单,需要注意的是:

(a) 选择与DB 不同的安装目录,即另一个Oracle Home

(b) 在选择安装Http Server后的下一个页面,会询问是否安装Oracle Workflow,这与APEX没有任何直接的关系,当然如果你想在你的应用程序中使用Oracle Workflow,也可以安装。当然,即使现在不安装,以后仍然可以再次运行起这个安装程序进行安装。

安装结束后,在service (服务)程序,你会看到里面多了两个服务,名字类似于:OracleHttpServerProcessManager OracleHttpServerASControl 。其中:
(a) OracleHttpServerASControl enterprise management EM )管理服务,功能类似于Db 中的EM (刚才创建数据库时生成的OracleDBConsoletina03 服务),建议将OracleHttpServerASControl 停止且改为手动启动。

(b) OracleHttpServerProcessManager是我们真正需要的服务,只有它启动了,APEX才能正常访问。如果不通过services(服务)窗口来启动也可以在DOS创建下运行:%http server oracle home%/opmn/bin/opmnctl startall

 
3、  安装 APEX2.2
“严重”注意,如果你按(2 )中的步骤装Http Server ,会发现里面有一个HTMLDB10.2.0.1 的安装选项,这个不是APEX2.2 APEX 是一个单独的zip 包,请从以下网址单独下载:
http://download.oracle.com/otn/java/appexpress/apex_2.2.zip
下载后解压缩到本地目录,例如c:/apex 。打开一个dos 窗口。这里有两点注意事项:

(a)       APEX的框架数据库部分,即用到的数据库的各种对象,要导入到Oracle DB中;APEX的前台页面部分,即用到的图片、javascriptcss文件等,到拷贝到Http Server中。我们在这一步完成的是向数据库导入APEX,而拷贝工作放在下一步配置中完成。

(b)       在本地安装有两个Oracle Home ,安装程序会自动在系统环境变量和注册表中进行一些设置。由于我们先安装的DB 后安装的Http Server Http Server 的路径就会出现在Db 的路径前。这样在运行sqlplus 时就有可能发生问题,推荐的做法是创建一个设置DB 运行环境的shell 脚本,例如tina03.cmd
set ORACLE_HOME=C:/oracle/OraDb
set J2EE_HOME=%ORACLE_HOME%/j2ee/home
set ORACLE_SID=tina03
set PATH=%ORACLE_HOME%/jdk/bin;%ORACLE_HOME%/bin;%PATH%

set LD_LIBRARY_PATH=%ORACLE_HOME%/lib;%ORACLE_HOME%/ctx/lib

call c:
cd c:/
 
下面依次执行以下命令:

(a)       c:/tina03.cmd

(b)       cd c:/apex

(c)       sqlplus /nolog

(d)       conn sys/sys_passwd as sysdba

(e)       @apexins password SYSAUX SYSAUX TEMP /i/ none

其中,apexins c:/apex 目录下一个sql 脚本的名字;password APEX 管理员(administrator )帐号的口令;前后两个SYSAUX 分别代表tablespace_apex tablespace_files 两个表空间,它们分别是为apex 应用程序用户和apex 文件用户准备的。TMP 代表APEX 使用的临时表空间; /i/ 指定APEX 图片的虚拟路径;none 指定数据库的连接串,因为这里是本地数据库所有为none ,否则应为TNS 中定义的SID
 
 
到这里,APEX 的主体安装就已经结束了,但是现在还无法使用,要完成下面这些配置工作。
 
4、  安装后的配置
 

(1)          重新编译无效的PL/SQL Package

这里要说的是一个常识:很多情况下,在我们以批处理的方式运行了一系列sql 命令,创建了一系列object 时,这些object 的状态可能是无效的。需要重新编译一下。连接到数据库,运行数据库目录下的rdbms/admin 子目录下的utlrp.sql
(a) 启动一个DOS 窗口
(b) 运行c:/tina03.cmd

(c) sqlplus /nolog

(d) conn sys/sys_passwd as sysdba

(e) @ C:/oracle/OraDb/rdbms/admin/utlrp.sql

 

(2)          拷贝image子目录到Http ServerOracle Home

前面我们把APEX2.2 解压缩到c:/apex ,这个目录下有一个images 子目录,把这个image 目录拷贝到Http Server Oracle Home 下的Apache/Apache 子目录下,例如你的Http Server Oracle Home c:/oracle/HttpServer, 那么就把images 子目录拷贝到c:/oracle/HttpServer/Apache/Apache 下。
 

(3)          配置DAD

这一步骤是让mod_plsql 可以识别APEX 请求,也就是说把APEX 注册到mod_plsql 中。我们要修改的是Http Server Oracle Home 下的Apache/modplsql/conf 子目录中的dads.conf 文件,修改后的文件如下:

# ============================================================================

#                      mod_plsql DAD Configuration File                        

# ============================================================================

# 1. Please refer to dads.README for a description of this file               

# ============================================================================

 

# Note: This file should typically be included in your plsql.conf file with

# the "include" directive.
 

# Hint: You can look at some sample DADs in the dads.README file

 

# ============================================================================

AddType text/xml xbl
AddType text/x-component htc
 
Alias /i/ " D:/oracle/HttpServer/Apache/Apache/images/"
 
/pls/apex>
Order deny,allow
PlsqlDocumentPath docs
AllowOverride None

PlsqlDocumentProcedure wwv_flow_file_manager.process_download

PlsqlDatabaseConnectString localhost:1521:tina03.cn.oracle.com ServiceNameFormat

PlsqlNLSLanguage " SIMPLIFIED CHINESE_CHINA.AL32UTF8"
PlsqlAuthenticationMode Basic
SetHandler pls_handler

PlsqlDocumentTablename wwv_flow_file_objects$

PlsqlDatabaseUsername APEX_PUBLIC_USER
PlsqlDefaultPage apex
PlsqlDatabasePassword welcome0
Allow from all
 
我用红色加重的部分是需要修改的:
a /i/ 是我们在安装是指定的image 的虚拟路径,这里我们要把虚拟路径和真实路径做一个映射,真实路径就是我们拷贝到Http Server Oracle Home 下的Apache/Apache 子目录下的images 子目录。

blocalhost:1521:tina03.cn.oracle.com host:port:service_name格式的数据库连接串。

c SIMPLIFIED CHINESE_CHINA.AL32UTF8 指定的 NLS_LANG
d welcome0 是安装 APEX 时提供的口令
 

(4)          安装语言包

Oracle 的大多数产品一样,APEX 的全球化做的很出色,除缺省安装的英语外,还支持包括简体中文、日文和法文等9 种语言。例如,当你安装了中文前,不论浏览器的语言是因为还是简体中文,APEX 的开发界面都是英文的,而安装了简体中文包后,将浏览器的语言设为中文(zh_CN) 后,APEX 的开发界面就是中文的了。
我建议安装简体中文语言包,但是在开发的过程中还是使用英文,虽然看英文慢一些,但是更有助于准确的掌握APEX
注意,这时数据库字符集的重要性就体现出来了,如果你的数据库字符集不支持要安装的语言,通俗的说不是要安装的语言的超集,导入语言包可能会失败(即使成功结束,你看到的也可能是?号)。例如,你要导入日文,数据库的字符集就不能是ZHS16GBK ,当然AL32UTF8 支持所有的9 种语言。下面来导入中文包:
(a)       打开一个DOS 窗口,运行tina03.cmd

(b)       cd c:/apex/builder/zh-cn

(c)       set NLS_LANG=”SIMPLIFIED CHINESE_CHINA.AL32UTF8”
提示:因为安装文件都是UTF8 编码的,所以不论你的数据库字符集是什么,NLS_LANG 都要设成AL32UTF8
(d)       sqlplus /nolog
(e)       conn sys/welcome0 as sysdba

(f)        alter session set current_schema=FLOWS_020200;

(g)       @ load_zh-cn.sql
 

(5)          修改JOB_QUEUE_PROCESSES参数

job_queue_processes 参数定义job 的最发并发数,在APEX 中,交易(transaction )和SQL 脚本的处理都需要这个参数。要启动这个参数并设一个合理的值:
(a)       打开DOS 窗口,执行tina03.cmd
(b)       sqlplus /nolog
(c)       conn sys/welcome0 as sysdba

(d)       ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20 set scope=spfile

(e)       Shutdown immediate

(f)        startup

 
 
5、  第一次登陆 APEX
 
APEX 是通过浏览器访问的,包括IE firefox 在内的主流浏览器都支持,具体要求如下:

·IE 6.0 or higher( Windows only)

·Netscape 7.2 or higher

·Mozilla 1.2 or higher

·Firefox 1.0 or higher

当然你也可以使用MyIE
 
APEX 的有两个URL

(1)          admin站点

http://hostname:port/pls/database_access_descriptor/database_access_descriptor _admin

其中:
(a)       hostname 就是APEX 安装的机器的名字,可以是localhost
(b)       port 是从Http Server Oracle Home 下的install/portlist.ini 文件中获得的,取参数Oracle HTTP Server port 的值
(c)       database_access_descriptor 就是我们在(3) 中的dads.conf 文件中定义的
在我的例子中url http://localhost:7777/pls/apex/apex_admin

(2)          开发站点

http://hostname:port/pls/ database_access_descriptor
解释同上,在我的例子中url http://localhost:7777/pls/apex
 
下面先简要的介绍介绍一下使用APEX 开发的过程:
(1) admin 用户在admin 站点创建一个workspace (工作区),同时指定一个该工作区的administrator
或者使用一个现有的工作区
(2) 以工作区的administrator 用户登陆开发站点,创建应用程序(application
也就是说workspace application 是一对多的关系,一个workspace 可以包含多个application ,一个application 只能属于一个workspace
(3) 然后administrator 可以添加一些用户,赋予不同的权限。
用户是相对于workspace 而言的,也就是说用户可以访问workspace 所有applications ,只是它们的权限可能不同。
(4) 以后这些新添加的用户就可以登陆开发站点进行开发和维护了。
注意:只有缺省的admin 用户和被赋予admin 权限的人才可以访问admin 站点,象workspace administrator 和其他用户只能访问开发站点。
 
那么,赶快行动吧。
1 )登陆admin 站点,用户为admin ,口令为安装APEX 时指定的口令
Oracle APEX系列(一) 安装_第1张图片

2 )创建workspace
Oracle APEX系列(一) 安装_第2张图片

指定workspace 的名字,可以为中文。
Oracle APEX系列(一) 安装_第3张图片

选择是否使用已有的数据库schema (方案)。意思是,你应用程序所用到的数据库对象(object )和数据(data )保存在哪个schema 中。
如果你忘记了都有哪些schema ,可以点击“Schema Name ”后面的图标打开查询窗口进行选择。
Oracle APEX系列(一) 安装_第4张图片

指定工作区administrator 的名字和口令,再次提醒的是这个administrator 只是该工作区的administrator ,不同于缺省的admin 用户。
Oracle APEX系列(一) 安装_第5张图片

点击create 创建工作区。
Oracle APEX系列(一) 安装_第6张图片
Oracle APEX系列(一) 安装_第7张图片

3 )登陆到开发站点

注意的是:当你先在一个firefox 中登陆了admin 站点,后又在这个firefox 中新打开一个tab 或干脆新打开一个firefox ,都有可能发生一访问开发站点就转到admin 登陆界面的情况,这是最好的办法就是关闭所有的firefox ,然后重新启动一个。
  Oracle APEX系列(一) 安装_第8张图片

下面点击“Application Builder”的大图标,也可以打开下拉菜单:

Oracle APEX系列(一) 安装_第9张图片

里面已经有一个demo 的应用程序了:
Oracle APEX系列(一) 安装_第10张图片

你可以试着运行它。在下一个单元,我会教你如何在几个钟头内搞定这个应用程序。
 
 

你可能感兴趣的:(Oracle APEX系列(一) 安装)