《Oracle Applications DBA 基础》3- 4 系统架构及基本系统管理知识

Oracle Applications DBA 基础》3- 4 系统架构及基本系统管理知识

3. 系统架构介绍
==============

参考资料:

1. Oracle Applications Concepts
http://download.oracle.com/docs/ ... acrobat/120oacg.pdf

2. Oracle Applications Maintenance Procedures
http://download.oracle.com/docs/ ... robat/r12adproc.pdf

3.《Oracle EBS R12: Install, Patch and Maintain Applications 》之
Applications Components,Environment Files/control scripts/languages,
Applications Filesystems ,Applications Database。

4. <828157.1> Useful Articles for the Oracle E-Business Suite Technology Stack
for Technical Consultant/DBA

--------

Oracle applications 的架构是 multi-tier 的。不同层有不同的 components 如下:
在Desktop Tier 上既有 典型的HTML界面又有传统的 FORMS 界面 。FORMS界面通过
Forms client Applet (Java client Applet的一种)与 应用服务器联系,下载 有关的
JAR file。原来的11i 需要 Oracle 专用的JVM, 叫 Jinitiator。 R12 中只需要标准的 J2SE plugin JVM。


对应地, 在Application Tier,既有web 服务器,J2EE 服务器,也有传统的 FORMS/Reports 服务器。
当然,还有 batch job 用的 Concurrent Manager。

针对HTML-Based 的应用, Oracle 开发 Oracle Applications Framework (OAF)。OAF 包括如下
component:
- AOL Java (AOL/J)
- Business Components for Java (BC4J)
- Java Controller
- Metadata UI Definition
- UIX HTML Generator        

OAF 采用 J2EE 的 MVC (Model- View - Controller) 的 design pattern。 所以如果你用过
J2EE MVC 开发,应该不难理解。比一般的 MVC 开发稍微复杂一点的是 HTML 页面的生成是由
存在数据库里面的 metadata dictionary 控制。

R12 还有大量的 FORMS 界面,所以 在服务器上也有 Forms Services。Forms Services 由
Forms listener Servlet (java servlet 的一种, 响应 Forms client applet 的请求) 及
Forms runtime 构成。

Concurrent Manager: 负责处理 batch job, 比如复杂的报表,涉及大量更新的处理等。用户
在前台提交请求 ( concurrent request),请求会写到 数据库的表上去,然后,Concurrent Manager 就会读表,一个
一个的进行处理。

Concurrent request的 log 或 output file 会 通过        Report Review Agent ($FND_TOP/bin/FNDFS)
送到 FORMS Services,再有 FORMS Services 传给 用户的 browser。
Report Review Agent的详细内容可参看 :
《The Basics About Report Review Agent (FNDFS) on 11i (Doc ID 111383.1)》。

Database Tier:

R12 有 如下 三个 Oracle HOME:
1. RDBMS
ORACLE_HOME: 这是 后台数据库用的。
2. 10.1.2 ORACLE_HOME : 又叫做Tools, C, or Developer ORACLE_HOME。 相当于 11i 里 的
8.0.6 ORACLE_HOME。 主要是给 FORMS 及 REPORTS 用的。
3. 10.1.3 ORACLE_HOME :又叫做 Web or Java ORACLE_HOME,  相当于 11i 里 的iAS ORACLE_HOME,
主要是给web server (Apache) 及 JAVA (OC4J )用的。

R12 有各种各样的 应用模块,例如,Finance, HR, CRM, Manufacturing 等,针对一些公用的功能,
Oracle 开发了 Oracle Applications Technology Layer。

Oracle Applications Technology Layer 包含的功能有:
1. Oracle Applications DBA (AD): 就是一些安装,维护用的工具, 包括:
AD Administration (adadmin)
AD Merge Patch
AutoConfig
AutoPatch (adpatch)
Rapid Clone
Rapid Install (rapidwiz)

2. Oracle Application Object Library (FND)
security (responsibility, data group etc), profile option,
concurrent processing
flexfield         
       
3. Oracle Applications Utilities (AU): 维护 整个 Applications 用的,
例如 FORMS 的源文件 等等。
4. Oracle Applications Framework (OAF): 就是我们上面提到的OAF 开发平台。
5. Oracle Workflow (WF): Oracle的 工作流 工具。
6. Oracle Alert (ALR)
7. Oracle XML Publisher (XDO): 开发报表用的,强项是 data 跟 layout 分开。
8. Oracle Applications Manager (OAM): 系统管理用的。

===========================================
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
COMMON_TOP:                /u01/apps/apps_st/comn
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_TOP 目录下, 每一个 product 有各自的 Product Directories。 例如
gl,ad,fnd 等等。

在每一个 Product Directory 下,有着相同的 目录结构。

[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 的设计。


=============================================================
Oracle 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 app
server 外,然后两者结合 。最简单有效的就是,一个 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)


==================================================================
4: 基本系统管理知识

结合上面提到的系统架构的基本知识,这里总结R12系统的基本管理知识,就是如何做我们最关心的
最基本的start/stop/status 。

1. database 方面:
如上述,Database Tier 有关的 Server Process Scripts 可在以下目录找到:
<RDBMS ORACLE_HOME>/appsutil/scripts/<CONTEXT_NAME>。主要有:

addbctl.sh : start/stop db
addlnctl.sh: start/stop/status listener
adautocfg.sh:autoconfig script for db tier

与后台数据库相关的 network config 文件在 $ORACLE_HOME/network/admin/<CONTEXT_NAME>.
例如 listener.ora,tnsnames.ora 之类。

另外, 应用层也有 listener。对应的
tnsnames.ora and listener.ora file 在 $INST_TOP/ora/10.1.2/network/admin。
应用层的listener 主要是给 Concurrent Manager 用的,包括如下两个program:
FNDFS: Report Review Agent  
FNDSM: Service Manager

对应的 listener script 是: $ADMIN_SCRIPTS_HOME/adalnctl.sh
通常的command 也可应用,例如 tnsping, lsnrctl 等:
LSNRCTL> set current_listener APPS_PROD

2. Enviornment File
一般的管理支持需要熟悉 上面提到的Enviornment File 。通常我们会分别source 在
db user 和 app tier user。例如:

[applvis@mis ~]$ cat .bash_profile

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
. /u01/appl/APPSVIS_mis.env
export PATH
unset USERNAME
########

3. Apache
R12的web server - Apache 的control script 在 $ADMIN_SCRIPTS_HOME :
adapcctl.sh status apps/apps

主要的配置文件在:
        $IAS_ORACLE_HOME/Apache/Apache/conf
       
一些有用的URL:
       
http://mis.myerp.com:8000/OA_HTML/jtflogin.jsp
       
       
http://mis.myerp.com:8000/OA_JAV ... gistry/Registry.dat
检查 JSP 用的 URL:
       
http://mis.myerp.com:8000/OA_HTML/jsp/fnd/fndping.jsp
检查 Forms 用的,直接login FORMS:
       
http://mis.myerp.com:8000/forms/frmservlet

Forms 的有关文件在 $FORMS_PATH 。
Reports 的有关文件在 $REPORTS_PATH

Concurrent Manager的control script 在 $ADMIN_SCRIPTS_HOME :
        adcmctl.sh status  apps/apps

OC4J/OPMN 的control script 在 $ADMIN_SCRIPTS_HOME :
        adopmnctl.sh status apps/apps
        adoacorectl.sh status apps/apps
        adformsctl.sh status apps/apps
        adoafmctl.sh status apps/apps

基本上,applications tier 的所有 control script 都在$ADMIN_SCRIPTS_HOME。
格式 也一致, 就是 start/stop/status.
       
DBC File:
dbc (Database Connectivity)file 是给 applications tier 连接 database用的。它的
位置在:$FND_SECURE。如果该目录下有多个 .dbc file,profile option value
"Applications Database ID" 决定用哪个。

如下的命令可测试 .dbc file 是否正确:
java oracle.apps.fnd.security.AdminAppServer apps/apps status DBC=$INST_TOP/appl/fnd/12.0.0/secure/PROD.dbc

PL/SQL, Log and Out direcotry:
R12通常用到的 log file, temp file, 或者 output file 都可以在如下地方找到:
        $APPLTMP
        $APPLPTMP
        utl_file_dir
        $LOG_HOME
        fnd_log_messages

================================

Reference:
<387208.1>:         Fusion Middleware Reports "ABC" Health Check
<113428.1>:         CONCURRENT C and PRO*C PROGRAM TUTORIAL
<342500.1>:         Quick Start: Designing, Testing, and Deploying Oracle Reports with 10G Middleware

=================================================================================

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值