一、 简述与分析(本题有5小题,共20分)
1、请简述NC集群设置过程中prop.xml要维护完整有效,需要注意哪些点?(4分)
Server名称唯一
有效的主server,由<mgr></mgr>定义
Servieport唯一有效,未被占用
Httpaddress有效IP,不要是机器名
Httpport唯一有效,未被占用
jvmArgs参数设置大小合理,
sunjdk如下: -server -Xmx768m -XX:PermSize=256m -XX:MaxPermSize=400m
ibmjdk如下: -Xmx1024m
2、以windows环境为例,如何向IHS更新fix11补丁?(4分)
安装updater61013版本,下载下面3额补丁包
6.1.0-WS-PLG-WinX32-FP0000011.pak
6.1.0-WS-IHS-WinX32-FP0000011.pak
6.1.0-WS-WASSDK-WinX32-FP0000011.pak
向IHS的根目录更新
6.1.0-WS-WASSDK-WinX32-FP0000011.pak
6.1.0-WS-IHS-WinX32-FP0000011.pak
向IHS的plugin目录更新
6.1.0-WS-WASSDK-WinX32-FP0000011.pak
6.1.0-WS-PLG-WinX32-FP0000011.pak
3、 UNIX服务器上,怎么设置一个定时任务,每周星期六晚上11点50分备份WAS+NC代码,并清除NC的历史日志。(4分)
答:
1、 编写备份WAS、NC代码、清除nc日志的脚本bak.sh
cd $WAS_HOME
tar –cvf was.tar IBM
cd $NC_HOME
tar –cvf nchome.tar nchome
cd $NC_HOME/nclogs/server1
rm –r *.log
2、 赋予备份脚本可执行权限
chmod 755 bak.sh
3、 设置crontab定时任务
crontab –e,增加如下一行
50 23 * * 6 /usr/ bak.sh
4、UNIX系统中,常用的监控磁盘的命令都有哪些,请简要说明其用法?(4分)
答:
常用的监控磁盘的命令有:topas/top,iostat,sar 等
Topas/top:查看磁盘的busy%繁忙程度等
Iostat:iostat 5 10 监控所有磁盘的使用状况,每5秒钟输出一次,总共输出10次
Sar:sar –d 分析系统中的每个磁盘和磁带的活动情况等
5、将was安装盘从widows下上传到unix,无法正常安装,将unix安装盘在windows下读出通过
ftp上传到unix下后安装,无法正常安装成功,报找不到jvm或其他文件等.
请分析可能的原因(4分)
答案:unix安装盘在windows下读出来时发现没有了大小写区别,而unix是大小写敏感,导致安装失败。
(1):将安装盘unix光驱下读出即可
(2):或将正常的安装tar包而不是光驱目录文件从windows上传。
二、 实务题(本题有4大题,共30分)
1、以NC502为例,简述WAS启用管理安全,对NC和WAS整个环境需要做哪些调整?(6分)
登录was console,
打开节点 安全性――安全管理
点击安全配置向导
不选择 “启用应用程序安全性”
不选择 “使用java2安全性限制应用程序访问本地资源”
选择联合存储库
设置用户和密码
运行wassysconfig
设置Security中的was用户和was密码
运行wasimportcert导入安全证书
2、一个环境NC502部署在WAS6011上,同时在另一台服务器上安装了IHS服务,现在的问题故障是:startServer server1正常,通过9080端口登录NC正常,通过IHS的80端口登录时显示IBM的欢迎界面,此问题如何分析解决?(7分)
要明确说明问题在插件上。
可能原因是Plugin没有安装
Plugin相关配置没有描述在httpd.conf中。
Httpd.conf中描述的插件module路径不正确
Httpd.conf中描述的plugin-cfg.xml路径等不正确
plugin-cfg.xml没有新生成,没有相关端口,server和虚拟目录的描述
新生成的plugin-cfg.xml文件端口描述不匹配,没有相关的80端口信息
在wasconsole中修改虚拟主机和端口信息,重新生成插件来解决
3、在数据库中存在如下的大量等待事件:db file sequential read、db file scattered read,、SQL*Net message from client。请分别说明各个等待事件代表的意思是什么?那些是空闲(idle)事件?那些是非空闲事件?我们相应的应该如何处理? (8分)
答案: db file sequential read表示对数据文件的顺序读取,一般对应的是对index的访问。属于非空闲等待事件。
db file scattered read表示对数据文件内容的分散读取,一般对应的是对表的full scan。属于非空闲等待事件。
SQL*Net message from client表示服务器进程在等待客户端给出的操作需求。属于空闲等待事件。
对于SQL*Net message from client事件我们不予关注,而对于另外的两个等待事件,我们需要进一步查看具体的sid对应的具体操作,一般来说如果是db file sequential read事件,且对应sid相关的操作是对大表的full scan,则需要考虑在大表上创建合适的index来避免full scan,而如果是大量对小表的full scan可以考虑把小表cache到ram中。
对于db file sequential read的等待事件,我们需要进一步查看具体的sid对应的具体操作,如果具体的sql的执行计划中使用了合适的index,我们可以不予处理;如果对应的sql的执行计划中使用了不合适的index,我们需要通过hint或者数据库参数的调整,让sql使用合适的index。
4、 Oracle执行sql语句的时候会进行表间关联,进行表连接,请列出3种以上的连接方式并加以说明什么情况使用该连接。(9分)
嵌套循环连接(NESTED LOOP JOIN)
使用嵌套循环连接是一种从结果集中提取第一批记录最快速的方法。在驱动行源表(就是正在查找的记录)较小、或者内部行源表已连接的列有惟一的索引或高度可选的非惟一索引时, 嵌套循环连接效果是比较理想的。嵌套循环连接比其他连接方法有优势,它可以快速地从结果集中提取第一批记录,而不用等待整个结果集完全确定下来。这样,在理想情况下,终端用户就可以通过查询屏幕查看第一批记录,而在同时读取其他记录。不管如何定义连接的条件或者模式,任何两行记录源可以使用嵌套循环连接,所以嵌套循环连接是非常灵活的。
然而,如果内部行源表(读取的第二张表)已连接的列上不包含索引,或者索引不是高度可选时, 嵌套循环连接效率是很低的。如果驱动表的记录非常庞大时,其他的连接方法可能更加有效。
群集连接 (CLUSTER JOIN)
群集连接实际上是嵌套循环连接的一种特例。如果所连接的两张源表是群集中的表,即两张表属于同一个段(SEGMENT),,那么ORACLE能够使用群集连接。处理的过程是:ORACLE从第一张行源表中读取第一行,然后在第二张行源表中使用CLUSTER索引查找能够匹配到的纪录;继续上面的步骤处理行源表中的第二行,直到所有的记录全部处理完。
群集连接的效率极高,因为两个参加连接的行源表实际上处于同一个物理块上。但是,群集连接也有其限制,没有群集的两个表不可能用群集连接。所以,群集连接实际上很少使用。
排序合并连接(SORT MERGE JOIN)
在缺乏数据的选择性或者可用的索引时,或者两个源表都过于庞大(所选的数据超过表记录数的5%)时,排序合并连接将比嵌套循环连更加高效。
排列合并连接需要比较大的临时内存块,以用于排序,这将导致在临时表空间占用更多的内存和磁盘I/O。
笛卡尔连接 (CARTESIAN JOIN)
笛卡尔连接是指在sql语句中没有写出表连接的条件,优化器把第一个表的每一条记录和第二个表的所有纪录相连接。如果第一个表的纪录数为m, 第二个表的纪录数为m,则会产生m*n条纪录数。
下面的查询,未指名连接条件,就会产生笛卡尔连接。
select a.user_name,b.dev_no
from user_info a ,dev_info b;
由于笛卡尔连接会导致性能很差的SQL,因此一般也很少用到。
哈希连接(HASH JOIN)。
当内存能够提供足够的空间时,哈希(HASH)连接是Oracle优化器通常的选择。哈希连接中,优化器根据统计信息,首先选择两个表中的小表,在内存中建立这张表的基于连接键的哈希表;优化器再扫描表连接中的大表,将大表中的数据与哈希表进行比较,如果有相关联的数据,则将数据添加到结果集中。
当表连接中的小表能够完全cache到可用内存的时候,哈希连接的效果最佳。哈希连接的成本只是两个表从硬盘读入到内存的成本。
当哈希表过大或可用内存有限,哈希表不能完全CACHE到内存。随着满足连接条件的结果集的增加,可用内存会随之下降,这时已经CACHE到内存的数据可能会重新写回到硬盘去。如果出现这种情况,系统的性能就会下降。
索引连接(INDEX JOIN)。
如果一组已存在的索引包含了查询所需要的所有信息,那么优化器将在索引中有选择地生成一组哈希表。可通过范围或者快速全局扫描访问到每一个索引,而选择何种扫描方式取决于WHERE子句中的可有条件。在一张表有大量的列,而您只想访问有限的列时,这种方法非常有效。WHERE子句约束条件越多,执行速度越快。因为优化器在评估执行查询的优化路径时,将把约束条件作为选项看待。您必须在合适的列(那些满足整个查询的列)上建立索引,这样可以确保优化器将索引连接作为可选项之一。这个任务通常牵涉到在没有索引,或者以前没有建立联合索引的列上增加索引。相对于快速全局扫描,连接索引的优势在于:快速全局扫描只有一个单一索引满足整个查询;索引连接可以有多个索引满足整个查询。