楼主: Puber

[精华] 同学笔记:OracleAS 10g(9.0.4) Administrator's Guide

 关闭 [复制链接]
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
21#
 楼主| 发表于 2005-5-24 10:48 | 只看该作者
[B]3.4 Enabling and Disabling Components[/B]
如果disable了一个组件,则意味着:[B]在重启AS instance时,这个组件不能启动[/B],且它不会显示在Application Server home page的System Components段的列表中.
如果enable了一个组件,则意味着:[B]在重启AS instance时,这个组件是能够启动的[/B],且它将显示在Application Server home page的System Components段的列表中.

可以在Application Server Control Console的Application Server home page中,点击[B]Enable/Disable Components[/B].可以选择具体的组件作disable/enable操作的.
[B]Notice that components that are dependent on each other are grouped, and are all enabled or disabled together.[/B][/COLOR]

[B]Note:[/B]如果你使用了本书中的backup和recovery程序,在你enable或disable组件后,需要运行bkp_restore.pl -m config[/COLOR]命令来向OracleAS Backup and Recovry工具重新注册.


[B]3.5 Starting and Stopping an Oracle Application Server Environment[/B]
本章讲的是start或stop一个Oracle AS environment的步骤.Environment是指多台主机上由多个intances和middle-tiers组成的分部式环境,这些intances存在相互依赖.

[B]3.5.1 Starting an Oracle Application Server Environment[/B]
启动Oracle AS environment的步骤如下:
-1. Start Metadata Repository-only Infrastructure.
如果某个环境只安装了Infrastructure的Metadata Repository,则可按任何次序(这些Metadata Repository之间的)启动它. 而且只需启动Metadata Repository,而不需要用opmnctl启动启它的进程,但还需要启动Oracle Application Server Control Console.
详见:[3.2.1 Starting an Infrastructure]

-2. Start the Infrastructure that contains Identity Management.
如果使用Indetity Management,则需启动其中的Oracle Internet Directory. 如果还有Metadata Repository,则需要先启动Metadata Repository后再启动OID.
详见:[3.2.1 Starting an Infrastructure]

-3. Start OracleAS Clusters.
若主机中含有OracleAS Clusters的middle-tier instances,可按任何次序(这些instance之间的)启动它们.
详见:<<Oracle Application Server 10g High Availability Guide>>

-4. Start Middle-tier Instances.
如果环境中的多个middle-tier instances不属于某OracleAS Clusters,则也可按任何次序(这些instance之间的)启动它们.
详见:[3.2.3 Starting a Middle-Tier Instance]


[B]3.5.2 Stopping an Oracle Application Server Environment[/B]
详细步骤如下:
-1. Stop OracleAS Clusters.
如果AS Cluster内有多个middle-tier intances,可按任何次序停止他们.
详见:<<Oracle Application Server 10g High Availability Guide>>

-2. Stop Middle-tier Instances.
如果环境中有多个middle-tier instance但又不属于某个cluster,则也可按任何的次序停止他们.
详见:[3.2.4 Stopping a Middle-Tier Instance]

-3. Stop the Infrastructure that contains Identity Management.
如果使用了Identity Management,则需停止其中的Oracle Internet Directory. 如果还有Metadata Repository,则也需要停止(Metadata Repository).
详见:[3.2.2 Stopping an Infrastructure]

-4. Stop Metadata Repository-only Infrastructure.
如果Infrastructure只有一个Metadata Repository,可按任何次序停止它.(昏,是八是写文档的写错啦).
详见:[3.2.2 Stopping an Infrastructure]

[B]需要注意在OracleAS中,从层次上分为两种instance,一种是为Infrastruture服务的instance,另一种则是向最终用户提供服务的middle-tier instance.[/B][/cOLOR]

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
22#
 楼主| 发表于 2005-5-24 11:38 | 只看该作者
[B]3.6 Starting and Stopping: Special Topics[/B]
[B]3.6.1 Using opmnctl Instead of Other Command-Line Tools to Start and Stop[/B]
在Oracle AS Release2(9.0.2和9.0.3)建议使用opmnctl命令行来start或stop以下组件:Oracle HTTP Server,OC4J,OPMN.
其它的命令行工具用于start或stop其它组件,例如webcachectl.

但在OracleAS 10g(9.0.4)中,Oracle建议使用opmnctl来启动所有组件,但以下情况例外:
■ OracleAS Certificate Authority--这个需使用ocactl来start和stop.详见<<Oracle Application Server Certificate Authority Administrator's Guide>>.
■ OacleAS Metadata Repository--使用SQL*Plus来start或stop.(这个不用说了.)[/COLOR]

当然还有另一种类型的exception是本段末有讲的,例如kill -9等等.


[B]3.6.2 Starting and Stopping Log Loader[/B]
Log Loader的启动和停止与OracleAS的其它组件是不同的.
在你执行opmnctl startall[/COLOR]命令或在Application Server Control Console中操作所有组件时,Log Loader是不会启动的.
如果需要Log Loader可使用以下两种方式来启动:
■ 使用命令行模式
$ORACLE_HOME/opmn/bin/opmnctl startproc ias-component-LogLoader[/COLOR]

■ 点击Application Server Control Console中Log Loader page中的[B]Start[/B]按钮.详见[4.5.1 Starting and Stopping Log Loader].

在Application Server Control Console中点击[B]Stop All[/B]按钮时,Log Loader不会停止.需按以下三种方式停止Log Loader:
■ 使用命令行模式单独停止它
$ORACLE_HOME/opmn/bin/opmnctl stopproc ias-component-LogLoader[/COLOR]

■ 点击Application Server Control Console中Log Loader page中的[B]Stop[/B]按钮.详见[4.5.1 Starting and Stopping Log Loader].

■ 使用命令行模式
$ORACLE_HOME/opmn/bin/opmnctl stopall[/COLOR]


[B]3.6.3 Starting and Stopping in High Availability Environments[/B]
以下这些高可用性解决方案有着特殊的starting and stopping steps:
■ Oracle Application Server Cold Failover Cluster
■ Oracle Application Server Active Failover Cluster(Limited Release)
详见<<Oracle Application Server 10g High Availability Guide>>

今天突然意识到一个问题:
将完整的Oracle原版document写成笔记放在这里的最大好处是,不会每次需要时都去看原始document,而可以边在PUB上灌水边看文档,轻松些.

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
23#
 楼主| 发表于 2005-5-24 12:20 | 只看该作者
[B]3.6.4 Resolving OC4J Errors When Starting Multiple Instances[/B]
这一段内容属于troubleshooting的.有个粗略的印象就可以.八过看Oracle在这段上花了很大笔墨,这些故障似乎很常遇到.

如果在一台主机上有多个Oracle Application Server Installation,并且需同时运行它们(例:启动一个cluster).这种情况下OPMN可能会返回如下的错误:
<process-type id="my_OC4J_instance">
<process-set id="default_island">
<process id="93388820" pid="24711" status="Stopped" index="1"
log="/disk1/oracleas/opmn/logs/OC4J~my_OC4J_instance~default_island~1"
operation="request" result="failure">
<msg code="-21" text="failed to restart a managed process after the maximum
retry limit">
</msg>
这个错误信息表明,OC4J实例my_OC4J_instance启动失败了.原因是两个不同的Oracle home的RMI,JMS,AJP使用了相同的port范围.其中某个Oracle home试图使用另一Oracle home的相同的port,但被block,在尝试多次后,只能报错,并启动失败了.

实例说明:

  1. 某台机器上有两个Oracle Application Server Installation.分别为$ORACLE_HOME1和$ORACLE_HOME2.
  2. 两个安装都有一个或多个OC4J实例,并且每个OC4J实例都需为其AJP,RMI,JMS分配port范围.
  3. 他们的OC4J实例的port range分别存放在以下文件中:
  4. $ORACLE_HOME1/opmn/conf/opmn.xml   
  5. $ORACLE_HOME2/opmn/conf/opmn.xml
  6. 这两个文件中的port range可看表Table3-1
复制代码

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
24#
 楼主| 发表于 2005-5-24 13:43 | 只看该作者
Table3-1

table3-1.jpg (55.42 KB, 下载次数: 374)

table3-1.jpg

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
25#
 楼主| 发表于 2005-5-24 15:11 | 只看该作者
因为OC4J实例的Port都是由OPMN分配的.因此在一个opmn.xml中有交叉的port range是没有问题的.
但对于Table3-1中的情况: 在这两个OPMNs启动时,这两个相互独立的OPMNs在一台主机上需要同时分配ports,这时就会产生block.
下面再具体地看一下OPMN分配port的算法(algorithm).
-1. 从port range中选择一个未被当前实例的OPMN标识为已使用的port.
-2. 在指定port前,通过尝试binding这个port来检查这个port是否已被使用.
-3. 如果port未背使用(也就是说,OPMN可以bind这个port),则先unbind这个port,再将相应进程(如:OC4J实例)bind到这个port,再新internal data structures with this assignment information.
在第3步中,自OPMN unbind再到assign port给process之间有一段时差,这时OS中可能会有其它的进程(比如本机的另一个OPMN)bind这个port,或者另一个process也正试图将这个port bind给其它process.

如果不同Oracle homes间的port ranges重叠,你就可能收到本段开头所述错误信息,直接原因就是两个OPMN试图将bind同一port到它们自已的OC4j实例中去.

[B]这个问题是不能完全避免的(因为这就好比两个普通进程,比如ftp进程和telnet,在争同一port时出现的问题一样).但是你可通过修改OPMN配置来降低出现这种问题的概率.[/B][/COLOR]

一般有两种解决方法供选择:
■ Option1: Assign Unique Port Ranges to Each Oracle Home[/COLOR]
可将Table3-1所示例子中的配置改为Table3-2.(各Oracle home拥有unique port range.)
具体的操作步骤如下:
-1. 对AJP,RMI和JMS选择唯一的port ranges.
-2. 修改$ORACLE_HOME2/opmn/conf/opmn.xml文件.
-3. 改AJP,RMI,JMS的port ranges.
-4. 保存并关闭文件.
-5. 最后执行reload命令$ORACLE_HOME/opmn/bin/opmnctl reload[/COLOR]

table3-2.jpg (55.27 KB, 下载次数: 371)

table3-2.jpg

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
26#
 楼主| 发表于 2005-5-24 15:34 | 只看该作者
■ Option2: Increase the Maximum Number of Retries for Starting OC4J Instances[/COLOR]
OPMN attempts to start processes a certain number of times before declaring failure.
如果OPMN尝试bind一个port失败,则会尝试使用port ranges内的另一个port,并再次尝试重启进程.如果两个不同的Oracle Home的ports ranges相同,则可通过增加OPMN尝试的the number of times,多次尝试后,OPMN找到可用的port的机会将大增.这种方法也不能完全解决问题,只是降低了出现问题的概略,同时也可能会延长启动的时间(sleep more).
这个控制参数为'retry',缺省值为2.改后的参数opmn.xml如Table3-3所示,具体的修改步骤如下:
-1. 修改$ORACLE_HOME/opmn/conf/opmn.xml文件(两个Oracle home的都需要改).
-2. 为每个OC4J实例增加如下start/restart控制参数.
  1. <start timeout="600" retry="10"/>
  2. <restart timeout="600" retry="10"/>
复制代码

-3. 保存并关闭文件.
-4. 最后执行reload命令$ORACLE_HOME/opmn/bin/opmnctl reload[/COLOR]

table3-3.jpg (72.99 KB, 下载次数: 372)

table3-3.jpg

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
27#
 楼主| 发表于 2005-5-24 15:42 | 只看该作者
[B]3.6.5 Shutting Down OracleAS Metadata Repository with the IMMEDIATE Option[/B]
这个偶在之前已提到过了.OracleAS Metadata Repository Database 也是个Oracle Database.所以其shutdown时就可有多个选项.
shutdown
shutdown transactional
shutdown immediate[/COLOR]
八到万八得已就别用shutdown abort了.

其实就数据来说也没有啥可怕的,最坏就做个incomplete recovey.

怕就怕因为OracleAS各工具管理metadata的SQL并未完全按事务原子性来写而引起metadata的内容不一致或丢失(这并非八可能).这时,你面对的是个完全blackbox的database,而八是flat file啊.想到这里都不寒而栗,所以metadata repository database也是需要做日常的备份的,且因其一般较小,只需很少的资源.

Concepts中可曾讲到Metadata的内容如下:
1. Management metaData
2. Identify Management metadata
3. Product metadata
下一chapter了.

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
28#
 楼主| 发表于 2005-5-25 11:30 | 只看该作者
[B]Chapter4 Managing Log Files[/B][/COLOR]
嘿嘿,今天的计划推迟一下子.学习ing...
[B]4.1 Introduction to Oracle Application Server Logging[/B]
AS Control Console中可以查各组件的log files.既可以AS Control COnsole中看,也可将log file downloads到本地来看.
[B]4.1.1 Understanding Log File Data and Naming[/B]
Oracle AS的Log多数都会产生[B]ODL(Oracle Dianostic Logging)[/B],这种log遵循Oracle自定义的标准,且以XML格式写入log files.某些组件不使用ODL(Oracle Dianostic Logging)来产生日志,而直接产生格式化的文本.这两种格式都可在AS Control COnsole中查看,或download到本地查看.
[B]4.1.1.1 ODL Message Formatting and ODL Log File Naming[/B]
XML格式.定会含有HEADER element.可能会含有CORRELATION_DATA element和PAYLOAD element.写入log directory中的log files中.
详见[Section4.6.2 Undertanding ODL Messages and ODL Log Files]和[Section4.4.1 Correlating Message Across Log Files and Components]


[B]4.1.1.2 Log File Messages by Component[/B][/COLOR]
Table4-1列出了OracleAS各组件的log格式及location.

table4-1.jpg (90.96 KB, 下载次数: 350)

table4-1.jpg

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
29#
 楼主| 发表于 2005-5-25 15:17 | 只看该作者
[B]4.1.2 Using A Log Repository[/B]
Log Repository中记录error logs,但不记录access logs.也记录来自于多个log files的综合诊断信息.
从log files到Log Repository的update是由Log Loader组件按intervals发起并完全的.
Log Repository可与log file联合使用,日志存在repository后就可在OracleAS Control Console中做各种处理:查询,诊断,报告等.
[B]Note:[/B]缺省情况下Log Loader是未启动的.可使用AS Control Console来启动Log Loader.
详见:[Section4.5 Using Oracle Application Server Log Loader]

[B]4.1.3 Configuring Component Logging Options[/B]
管理员可限制AS各组件所产生日志的内容和存放.
[B]Note:[/B]AS Control Console不支持直接修改配置选项. 你可使用AS Control Console Advanced Server Properties page来修改配置文件的值.
可选择的配置如下:
■ 指定Log File Names和Pathnames.
■ 限制Log File Size. 某些组件的日志需要管理员手工清除,而另一些组件如OC4J则可设置How much log file data is collected and saved.
■ 可以对Log File作Archiving. 指定某个log directory的的大小,当达到这个值时,旧的logging信息会被先删除,然后再将新的logging写进log files中去.
■ 设置各组件的Logging Levels. 这个和数据库中的Listener的Logging Level或statpack的level是相似的.


[B]4.3 Listing and Viewing Log Files With Enterprise Manager[/B]
在Application Server Control Console中有个[B]Logs[/B] link. 点击后会显示View Logs page.
[B]4.2.1 Listing Log Files for All Components[/B]
[B]4.2.2 Listing Log Files for Selected Components[/B]
[B]4.2.3 Listing Log Files for Oracle Application Server Components Pages[/B]
看图就知如何操作了.不多看.Figure4-1

figure4-1.jpg (49.07 KB, 下载次数: 338)

figure4-1.jpg

使用道具 举报

回复
论坛徽章:
25
每日论坛发贴之星
日期:2005-05-23 01:01:10马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
30#
 楼主| 发表于 2005-5-25 15:23 | 只看该作者
[B]4.2.4 Using Log Files Advanced Search[/B]
见图Figure4-2. 八想多看.

figure4-2.jpg (11.97 KB, 下载次数: 325)

figure4-2.jpg

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表