您的位置:首页 > 数据库 > Oracle

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

2013-10-11 11:29 661 查看
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

=================================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: