楼主: 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
31#
 楼主| 发表于 2005-6-5 19:45 | 只看该作者
看了一下,这个贴还未被锁.很明显同学们对此贴还是有莫大的期待.偶也八敢怠慢.
(等着看呢,快写 。 jc)

[B]4.2.5 Viewing Log File Details and Log File Contents[/B]
都是一些IDE的操作,就八多写了.

[B]4.3 Searching Diagnostic Messages In A Log Repository[/B]
[B]Getting Started With Log Repository[/B]
可在Application Server Control Console page中按如下路径访问:
[I]Logs[/I]-->[I]Search Log Repository[/I]

[B]Searching Log Repository With Simple Search[/B]
其实如在普通的数据库中动态生成一个SQL及对输出结果特性的定义:
1. 选择Available Components.
2. 选择Message Types,还可输入message文本,查询结果每页显示多少条记录,共查出多少条记录.
3. 选择/输入Date Range,时间对于message来讲,当然很重要了.
4. 最后点击Select按钮.
文中Figure4-3 Search Log Repository Page很清楚.

[B]4.3.3 Searching Log Repository With Advanced Search[/B]
可以点击Figure4-3中的Advanced Search按钮,为结果集加多个filters.

[B]4.3.4 Viewing Repository Log Entry Details[/B]
可点击结果,得到detail information.

[B]4.3.5 Using Regular Expressions With Log Repository Search[/B]
可在Advanced Search中输入正则表达式.

figure 4-3.jpg (88.74 KB, 下载次数: 296)

figure 4-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
32#
 楼主| 发表于 2005-6-5 20:45 | 只看该作者
[B]4.4 Diagnosing Problems and Correlating Messages[/B]
偶的opinion是,与其依赖于IDE的Application Server Control Console,还不如自已多了解一下所有组件及它们间的关系,自已去日志中grep. 如果对组件间的关系了解不深,即使收集了各组件间的相关信息,也未必就能及时解决问题.
[B]4.4.1 Correlating Message Across Log Files and Components[/B]
ECID (Execution Context ID)是执行线程内部的全局唯一标识号.
ECID由两部分组成: request_id, sequence_number.
其中request_id是与每个请求都关联的唯一整数.
而sequence_number则标识请求的步骤,就是自client请求开始,AS的components将请求逐层向下传递.这些components按请求顺序形成链表,而sequence number则是对每个链表元素的编号(从0开始逐渐加大).[/COLOR]

偶们可用ECID从各个组件的log中查询该线程的相关信息.这种在多个组件中查找相关信息的技术称为first-fault component isolation.

Table 4-2中列出了OracleAS中,支持Message Correlation的组件

table 4-2.jpg (68.11 KB, 下载次数: 292)

table 4-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
33#
 楼主| 发表于 2005-6-5 21:15 | 只看该作者
谢过jc观注,八过此书的确很长,但又是这么重要.相当于concepts一样,可以说是AS的知识的总索引.继续ing.

[B]4.4.2 Diagnosing Components Problems[/B]
这一段廖廖几句,却是偶们今后做diagnose的roadmap了..
如果OracleAS中某组件出现问题,需使用以下技术作diagnose.
■ 找出与问题相关的错误或告警信息
■ Correlate the errors across components
■ Correlate the errors across a time interval
■ 作基于组件的分析
使用Log Repository可以比较容易地找出问题的根源.
偶的理解是就如Java Error Stack一样,按图索骥地查找错误源.
[/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
34#
 楼主| 发表于 2005-6-8 00:40 | 只看该作者
[B]4.5 Using Oracle Application Server Log Loader[/B]
[B]4.5.1 Starting and Stopping Log Loader[/B]
可以在Application Server Control Console Log Loader page中启动和停止Log Loader.
Note:缺省情况下,刚安装好的OracleAS中,Log Loader是未启动的.
启动步骤如下:
-1. 在Application Server Control Console page中选择Log link.
-2. 在View Logs page中选择Select Log Repository link.(因为需要将信息存入repository中,所以先找).
-3. 选择Log Loader按钮
-4. 选择Start按钮.
-5. 之后在confirmation page中会有Cancel/Start/Start and Load Existing Logs.
    (Oracle建议选择Start and Load Existing Logs,据说速度会快些).
详见:<4.3 Searching Diagnostic Messages In A Log Repository>

[B]4.5.2 Enabling and Diabling Log Loader[/B]
在Log Loader Page中点击Enable 按钮就行.缺省情况下,安装完AS后,Log Loader是enabled状态.
Disabling表示Log Loader自已的日志文件不会在View logs page中显示.

[B]4.5.3 Updating the Log Configuration[/B]
Log Loader将需要存入Log Repository的组件的信息存放在配置文件中.你可使用Update Log Configuration 按钮来更新Log Loader的配置.
参见:<4.6.4 Component Diagnostic Log File Registration>

[B]4.5.4 Setting Log Loader Properties[/B]
可以在Log Loader page中设置Log Loader的属性,步骤如下:
-1. 在Application Server Control Console page中选择Logs连接.
-2. 在View Logs page中点击Search Log Repository link.
-3. 在view logs page中点击Log Loader按钮.
-4. 在Administration部分选择Log Loader Properties link. 则可显示当前的Log Loader properties.
修改Log Loader的properties可按如下步骤:
-1. 在相应的区域中输入新值.
-2. 点击Apply按钮应用新值.
详见图4-6.

figure4-6.jpg (58.38 KB, 下载次数: 270)

figure4-6.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
35#
 楼主| 发表于 2005-6-8 01:23 | 只看该作者
[B]4.5.5 Understanding Log Loader Diagnostic Messages[/B]
本段说的是Log Loader自已的诊断信息.错误的原因可能有多种.比如不正确的配置或在向log repository中写数据时出错等等.
常见的Log Loader错误包含:
-1. 配置文件错误.
Log Loader自已的配置文件为$ORACLE_HOME/diagnostics/config/logloader.xml[/COLOR].配置文件错了,通常会导致Log Loader无法运行.
-2. 当组件的(向Log Loader)注册文件出错时,也称为配置错误.具体的配置文件为$ORACLE_HOME/diagnostics/config/registration/*.xml[/COLOR]. 这会导致Log Loader无法将日志文件中的内容load到repository中去.而这通常又会有两种常见注册文件错误:
--2.1 XML语法错误,导致无法正确parse.Log Loader会忽略整个xml文件.
--2.2 指向错误的configuration file路径.Log Loader找不到相应的log file,它会发布一个Warning level的诊断信息.但这也不表明就一定有错误.[/COLOR]比如,某组件的log刚被你手动清除了,或Log Loader启动时,该组件仍未有log产生.
-3. 在Log Loader读日志时,也可能产生错误.比如,日志文件的内容不能读或者无法parse.这时Log Loader会尝试恢复错误并继续读日志文件.
-4. 将信息写入repository时也可能会出问题.例如,磁盘有问题.这当然需要SA出手了.
-5. 当某个日志文件太大时(超出指定的最大值),Log Loader会skip日志文件.最大值可在Log Loader properties page中指定.出错信息如下例所示:
[I]Size of data to be read from log /logfile exceeds threshold of x bytes.
Skipping y_skipped bytes and moving to end of log.[/I]

使用道具 举报

回复
论坛徽章:
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
36#
 楼主| 发表于 2005-6-9 21:51 | 只看该作者
[B]4.6 Advanced Logging Topic[/B]
今天下午写了个全E文的应用的installation guide,头很昏.现在还是来享受一下写中文的乐趣吧.
[B]4.6.1 Using the printlogs Toos to View Log Messages[/B]
printlogs是个命令行的日志查询打印工具. 支持对日志的多种过滤.其主要功能如下:
■ 从Log Repository或单独的日志文件中读取日志信息
■ 根据timestamp或log file来过滤日志信息
■ 以ODL中文本格式打印日志信息
■ 将日志信息按log field排序
■ 统计并报告指定类型的日志信息数量
■ 可以定义循环,并在其中sleep一段时间再打印日志报告.

[B]4.6.2 Understanding ODL(Oracle Diagnostic Logging) Messages and ODL Log Files[/B]
使用ODL时,诊断信息是以XML格式写入到log files中的.
可参见:Example4-1
文中也有XML各TAG的介绍,其中最重要的是两个:
COMPONENT_ID : 指定最初产生信息的组件的产品或组件的ID.
MSG_TYPE:指定信息的类型. 可能的值有:INTERNAL_ERROR,ERROR, WARNING, NOTIFICATION, TRACE, UNKNOWN. 如果有MSG_TYPE,则MSG_TYPE的TYPE属性就会包含在message header之中.

example4-1.jpg (45.52 KB, 下载次数: 268)

example4-1.jpg

使用道具 举报

回复
论坛徽章:
150
蓝锆石
日期:2011-11-16 22:31:22萤石
日期:2011-11-17 13:05:31祖母绿
日期:2008-06-14 15:23:26海蓝宝石
日期:2011-11-16 22:25:15紫水晶
日期:2011-11-16 22:31:22红宝石
日期:2011-10-09 08:54:30蓝锆石
日期:2009-01-31 15:20:54萤石
日期:2008-12-22 15:22:00祖母绿
日期:2011-11-17 13:13:26海蓝宝石
日期:2008-07-05 14:52:18
37#
发表于 2005-6-14 14:24 | 只看该作者
精彩,我都要读!继续!

使用道具 举报

回复
论坛徽章:
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
38#
 楼主| 发表于 2005-6-18 11:51 | 只看该作者
[B]4.6.2.2 ODL Log File Naming[/B]
如果使用ODL,则OracleAS会将诊断日志文件写到一个日志目录中去. 各组件有自已的日志及日志文件命名规则.
ODL日志文件分为两种,一种是当前的日志,其文件名字一般为log.xml. 另一种则是当log.xml文件size达到一个指定的值时,将log.xml重命名(同时会生成新的log.xml)后生成的ODL Archives,也就是说ODL archives中存放的旧日志.
[B]Note:[/B]某些OracleAS组件(尤其是HTTP Server)是八支持本段所述ODL log机制的.Oracle HTTP Server只能将诊断信息写入到log.xml文件中,且八能通过设置来限定此文件的大小[/COLOR].
还可为组件设置所有日志(log.xml,logn.xml)的占用空间的最大值,达到此值时,ODL会删除最旧的logn.xml.而最近的日志文件不会被删除.

总的来说使用ODL有以下优点:
■ Limits the total amount of diagnostic information saved
■ 按日志生成时序(chronological fashion),先删除旧的,而保存新生的日志.
■ 在清空日志时,组件仍然可使用,且八需要shutdown.

[B]4.6.3 Understanding Log Loader Log File Format Conversion[/B]
主要讲如何将non-ODL logs转换为ODL format的一些规则.

使用道具 举报

回复
论坛徽章:
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
39#
 楼主| 发表于 2005-6-21 11:27 | 只看该作者
chapter4最后实在有些看八下去了,skip过去了.请同学们见谅. 新的开始.
今天要一条鱼.

[B]Chapter5 Managing Ports[/B][/COLOR]
[B]5.1 About Managing Ports[/B]
AS的组件大多依赖于ports对外提供service,作为administrator,管理ports,确保主机上同一port不被重用,是很重要的工作内容之一.
多数port numbers都是在installation期间设定的.每个组件和服务都需一个port numbers的集合.当他们运行时,OracleAS从port集合的最小值开始,按以下规则来检查port的是否被使用的.

■ 这个port是否已被本机上其它OracleAS所使用?
■ 这可port是否正被本机上某进程(可能是OracleAS的进程,也可能八是OracleAS的近程)使用?
■ 这个port存在于/etc/services文件的port list中吗?[/COLOR]
若以上回答有一个为yes,则表时此port已被使用,OracleAS会测试port集合中下一个port.
(书上写得有些矛盾,先说从lowest port开始check,但不成功后,又说移到下一个highest port作check.FT.应该为lowest,或者将开始的port改为highest.)
(铭记以上的rule,对于今后作diagnose,是很有用的.)
对于某些ports,你可以在installation时一个port number,这样就override了这个rule.在launch Oracle Universal Installer前,可以编一个称为staticports.ini的文件.
[B]Note[/B]:在Installation Guide中对staticports.ini文件有详细的说明.

[B]5.2 Viewing Port Numbers[/B]
查看OracleAS使用的ports有多种方法:
■ 在installation后,即刻查看 ORACLE_HOME/install/portlist.ini (windows下也是一样的path&file)
  如果在installtion后,修改了ports,则OracleAS不会自动更新此文件.
■ 在另一文件中显示了OracleAS Control Console port和HTTP Server port
  ORACLE_HOME/Apache/Apache/setinfo.txt
  因为OracleAS Control Console的port number是不能改动的,所以来这个文件中找AS Control Console的URL是总是正确的.当然,HTTP Server的port在installation后是可以修改滴.
■ 在installation之后,查看ports最好的方法还是在AS Control Console的Ports Page中.这是最新的port list.也可在此page中找到修改port number的LINK.

至于JServ的port,则可用如下的URL得到:
http://hostname.domain: http_port/oprocmgr-status

使用道具 举报

回复
论坛徽章:
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
40#
 楼主| 发表于 2005-6-21 14:00 | 只看该作者
[B]5.3 Changing Ports Common  to All Middle-Tier Instances[/B]
本段很重要,因为所述内容为如何更改middle-tier中的port numbers,以及如何更新其它受影响的components.
[B]5.3.1 Changing Oracle Enterprise Manager 10g Ports[/B]
在安装之后,是不能更改Oracle Enterprise Manager 10g滴ports的.[/COLOR]

[B]5.3.2 Changing OC4J Ports[/B]
OC4J有如下的port numbers: [B]AJP[/B],[B]JMS[/B],[B]RMI[/B],[B]IIOP[/B],[B]IIOPS1[/B](Server only),[B]IIOPS2[/B](Server and Client)
缺省情况下,OracleAS不会为OC4J指定每个port,而是为每种OC4J port指定一个port range(并且主机上所有instances是相同的).在运行期间,再由各instance找出具体可用的port.
例如AJP的缺省port range是3301-3400,每个instance都会从中找出一个供自已使用.
修改Oc4J port numbers,通常只需修改这个port range就行了.而共有两条途径可修改port range.
■ 通过AS Control Console来改,步骤如下:
-1. 打开Application Server Instance Home Page
-2. 点击[B]Ports[/B].
-3. 在Ports page中,打到想更改的OC4J实例及port range.点击Configure column中的icon.
-4. 在Server Properties Page,输入新的port range,再点击[B]Apply[/B].
■ 手动修改,步骤如下:
-1. 编辑文件ORACLE_HOME/opmn/conf/opmn.xml
-2. 在文件中找到欲修改的instance的名称,例如<process-type id="home" ...>
-3. 在OC4J instance element内,有每种port的列表.例如:
    <port id="ajp" range="3301-3400"/>
    <port id="rmi" range="3201-3300"/>
    <port id="jms" range="3701-3800"/>
    <port id="iiop" range="3401-3500"/>
    <port id="iiops1" range="3501-3600"/>
    <port id="iiops2" range="3601-3700"/>
    请根据自已的需求,修改相应的range.
-4. 保存并关闭opmn.xml.
-5. 运行以下OPMN命令.
    opmnctl reload[/COLOR]
-6. 重新启动已修改了port range的OC4J instance
    opmnctl restartproc process-type=OC4J_instance[/COLOR]
    例如,你修改了home实例,则需执行:
    opmnctl restartproc process-type=home[/COLOR]
-7. 再运行以下命令:
    dcmctl updateConfig[/COLOR]
[B]以上步骤少了一个前提: 执行前请确认environment setting.[/B][/COLOR]

使用道具 举报

回复

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

本版积分规则 发表回复

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