整理自:http://www.itpub.net/thread-1409361-1-1.html
Database Tier:
我们看R12的后台数据库。
Oracle Applications 充分使用 Oracle 数据库提供的各种数据类型:
select object_type, count(*) from dba_objects where owner not like '%SYS%' group by object_type order by 1;
OBJECT_TYPE COUNT(*)
------------------- ----------
CLUSTER 1
DATABASE LINK 60
EVALUATION CONTEXT 30
FUNCTION 109
INDEX 56080
INDEX PARTITION 5128
INDEX SUBPARTITION 3266
INDEXTYPE 2
JAVA CLASS 968
JAVA RESOURCE 9
JAVA SOURCE 2
JOB 2
LIBRARY 18
LOB 2086
LOB PARTITION 326
LOB SUBPARTITION 752
MATERIALIZED VIEW 768
OPERATOR 7
PACKAGE 53673
PACKAGE BODY 52528
PROCEDURE 285
QUEUE 264
RULE 21
RULE SET 87
SEQUENCE 11659
SYNONYM 78416
TABLE 33005
TABLE PARTITION 3106
TABLE SUBPARTITION 1586
TRIGGER 6630
TYPE 4240
TYPE BODY 119
VIEW 34631
XML SCHEMA 91
可看到既有数据,也有各种 code ,JAVA,PL/SQL,Trigger 等。还有hybrid的如MATERIALIZED VIEW。
R12 支持 Multiple Languages,有关的translated data 放在 translation table (_TL)中。
所有的product 都各自有自己的Product Schema 放数据 object 例如tables , indexes, sequences。
所有的 code object 例如 triggers ,views, pl/sql, synonyms
等都集中在一个 统一的 schema 叫 APPS 上。 应用通过 这个 schema来 access data。
数据库上 R12 并没有用到什么特别的 Database Features.
Database Tier 有关的 Server Process Scripts 可在以下目录找到:
<RDBMS ORACLE_HOME>/appsutil/scripts/<CONTEXT_NAME>
除了以上的基本配置外, 其他一些稍微复杂的配置考虑:
1. Load balancing ,这主要有以下两方面:
- Network 层面 - 主要采用 hardware load balancer ,象 F5 这样的系统,外置在oracle appserver 外,然后两者结合 。最简单有效的就是,一个 hardware load balancer 的web 入口,然后指到 几个不同的 EBS app server
上。
- Concurrent processing 及database 层面 - 采用 Parallel Concurrent Processing (PCP)和 Oracle RAC 的技术。
具体,可参考 Using Load-Balancers with Oracle E-Business Suite Release 12 (Doc ID 380489.1)。
2. Failover
在这方面, R12比11i 有进步, 每一个 app server 的安装都是一样的,所以app server 之间services 可以 互相 failover。 例如,一开此,系统如下运行:
app server 1:Web, Forms.
app server 2: Concurrent Processing
假如 app server 1 停了,你可以将 Web,Forms 的服务 在 app server 2 上启动。
app server 1:
app server 2: Web, Forms, Concurrent Processing
R12 还提供 shared app tier file system 的安装,所以两台机器间的failover 比较方便。
具体,可参考
Sharing The Application Tier File System in Oracle E-Business Suite Release 12 (Doc ID 384248.1)
===============================================================================================
Environment Files
R12的环境非常复杂,目录众多,所以 Oracle 准备了很多 Environment Files。
上面提到的三个 Oracle HOME ,每一个 都有各自的 Environment File,另外,
APPL_TOP 也有自己的Environment File。
它们分别是: ( <CONTEXT_NAME> is <SID>_<hostname> )
${RDBMS Oracle HOME}/<CONTEXT_NAME>.env
${10.1.2 Oracle HOME}/<CONTEXT_NAME>.env
${IAS Oracle HOME}/<CONTEXT_NAME>.env
$APPL_TOP/<CONTEXT_NAME>.env
除此以外,Apps Tier 还有一个总的Environment File。
$APPL_TOP/APPS<CONTEXT_NAME>.env
Key Parameters in <CONTEXT_NAME>.env:
APPL_TOP:
ADMIN_SCRIPTS_HOME:
GWYUID:
FND_TOP
AU_TOP:
<product>_TOP
PATH
APPLCSF:
APPLLOG
APPLOUT:
APPLTMP : Temporary Files 的位置
APPLPTMP : PL/SQL output 的位置
INST_TOP
还有一些变量 定义在其他文件,但引用在 <CONTEXT_NAME>.env 里,例如
$APPL_TOP/admin/adovars.env, 它包含有:
JAVA_TOP : all java files
OA_JRE_TOP : jre location
OAH_TOP : HTML files location
LD_LIBRARY_PATH
CLASSPATH
另外,还有一些 Environment file, 例如 adconfig.txt,fndenv.env ,devenv.env ,但不常用。
有了正确的 Environment file 后, Oracle 提供 Application Tier Server Control Scripts 给 我们 start/stop/status app tier 的 各个components。所有的 scripts 都在 ADMIN_SCRIPT_HOME 目录上。
常用的有
cd $ADMIN_SCRIPTS_HOME ( $INST_TOP/admin/scripts )
adstrtal.sh
adstpall.sh
adautocfg.sh
adalnctl.sh
adapcctl.sh
adcmctl.sh
adopmnctl.sh
这些 Environment Files 都是由 Oracle 的 Autoconfig 自动管理。
Oracle Applications 可以支持 NLS 和 MLS。 NLS 指 支持某一种语言,比如中文;MLS指在一个安装中同时支持几种语言,比如一家公司同一个安装下,既有中国分公司,也有美国分公司,所以需要同时支持中文和英文。
要支持非英语的语言或同时支持几种语言,就要考虑 Character Sets 的问题。
除了在数据库层要考虑合适的Character Sets外, 还要考虑 database tier,application tier, 和 desktop tier 三者的 Character Sets 要一致。比如,如果在 db tier 选了 UTF8,那么 application tier 和 desktop tier 也要 UTF8。
除了语言支持外, Oracle Applications 还有Country-specific Functionalities 以达到Globalizations 的目的。这在 rapid install 时选择。
============================================================
Oracle Application file systems
了解了 Environment Files 和 start/stop control scripts 后,我们可以进一步了解Oracle Applications 的 file systems。
先看Database Tier , File System 没什么特别,最简单的就是一个file system装software binary,
一个 file system 装 data。像下面这样:
/u03/db/tech_st/10.2.0
/u04/db/apps_st/data/
在Application Tier File System 上, 就主要有:APPL_TOP , COMMON_TOP, TOOLS Oracle HOME,IAS Oracle HOME 和 INST_TOP.
APPL_TOP: /u01/apps/apps_st/appl ——oracle ebs 产品的目录和文件。在 APPL_TOP 目录下, 每一个 product 有各自的 Product Directories。 例如
gl,ad,fnd 等等。在每一个 Product Directory 下,有着相同的 目录结构。
COMMON_TOP: /u01/apps/apps_st/comn ——包括java的类文件,HTML的页面文件等。
在COMMON_TOP下的admin目录,是concurrent manager 的日志和输出数据的默认目录。当并行管理器(concurrent manager)运行ebs的report的时候,会写日志文件还有临时的文件到admin目录下的log目录和out目录。在admin下还有一个install子目录,放的是Rapid Install的日志文件。admin的scripts子目录包含了启动和停止一些服务的脚本,比如listener和concurrent manager等服务的。。
TOOLS Oracle Home: /u01/apps/tech_st/10.1.2
IAS Oracle HOme: /u01/apps/tech_st/10.1.3
INST_TOP: /u02/inst/apps/PROD_mis
我们看一个appl目录下某个模块的目录:
[applvis@mis appl]$ ls $APPL_TOP/gl/12.0.0
admin forms html lib mds mesg patch sql
bin help java log media out reports
$APPL_TOP/admin 主要有 给 AD utilities 用的 各种文件。其他需要注意的direcrory
还有:
AD Directory: $APPL_TOP/ad, adadmin/adpatch/adconfig.sh etc.
AU Directory: $APPL_TOP/au
Common Components Directory : $COMMON_TOP
Applications Technology Stack Directory : Tools and IAS Oracle HOME.
Database Directories: rdbms Oracle Home . $ORACLE_HOME/appsutil etc.
有关 Applications 的配置参数,Oracle 都放在一个 Applications Context File 上。
$INST_TOP/appl/admin/<SID>_<HOSTNAME>.xml. 这也是 AUTOCONFIG 的设计。
重点再讲讲instance home 这个目录:
在applmgr用户下面的环境变量表示为:$INST_TOP
instance home提供了在多个实例上共享应用程序,共享代码的功能。比如,一个开发的实例和一个测试的实例。支持只读的文件系统,支持日志文件集中化等。。
上面说到了日志文件集中化,Instance Home这样做,集中管理了:
==============================================================
应用层的file systems 共享:
共享的应用层系统,所有的应用层文件被安装到一个单独的共享的被挂载到每个应用层节点的存储上,任何的应用节点可以提供标准web 或者 form,或者 concurrent processing等服务:
好处有如下:
1)大部分的管理、打补丁、维护等只需要在单个应用节点上进行一次。
2)对共享文件系统的模式的更改会迅速的被其他节点识别,应用。
3)分布式进程在多个节点上并行运行。
4)降低了过多的磁盘访问
5)更容易的添加新的应用节点。
另外对于共享的应用层文件系统,其可以访问多个数据库,此时只是应用层的文件系统被共享,数据库层没有共享。
============================================================
环境参数设置: