




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《软件项目维护方案》
摘要:[root@sale8toptop-10:29:35up73days,19:54,1user,!oadaverage:0.37,0.38,0.29Tasks:353
total,2running,351sleeping,0stopped,0zombieCpu(s):1.2%us,0.1%sy,0.0%ni,98.8%id,0.0%wa,
0.0%hi,0.0%siMem:16404472ktotal,12887428kused,3517044kfree,60796kbuffersSwap:8385920k
total,665576kused,7720344kfree,10358384kcachedPIDUSER30495orade32501orade32503Oracle注
意上面的力崛字体部分,此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,初
录下该数值,并将状态记为异常n内存使用情况:#free-mTotalusedfreesharedbufferscached
Mem:20261958670761556-/+buffers/cache:3261700Swap:5992925900如上所示,total表示系
统总内存,used表示系统使用的内存,free表示系统藏余内存,当嬲余内存低于总内存的10%时视为异常,查看对象的
下一扩展与表空间的最大扩展值5aselecta.table_name,a.next_extent,a.tablespace_namefromalljablesa,(select
tablespace_name,max(bytes)asbig_chunkfromdba_free_spacegroupbytablespace_name)fwhere
f.tablespace_name=a.tablespace_nameanda.next_extentf.big_chunkunionselecta.index_name,a.next_extent,
a.tablespace_namefromalljndexesa,(selecttab!espace_name,max(bytes)asbig_chunkfromdba_free_space
groupbytablespace_name)fwheref.tab!espace_name=a.tablespace_nameanda.next_extentf.big_chunk;如
果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存精参数,项目组
包括项目经理、需求分析师、开发工程帅、实施工程帅,总体职责如下:1.保证与项目有关的的问题得到及时解决2.提供
有关产品的技能和以往经验3.计划、协调项目实施过程中各个方面的工作4建立项目环境和项目组结构5.依据项目计划
充分调动资源,并做好这些资源的后勤保獐,用包耍时候,寻求更高层次的支持6.针对客户未来的工作臃重组提出建
议7.从总体上控制项目实施时间进度,保证服务质量I客户经理客户经理配合客户项目经理负责计划、组织、指导和协调
项目组的工作,并在适当的时候,负责项目组内部和其他有关方面的相互沟通,项目的关键查看点,对项目各方面进行查看
与旨导,主要职责如下:L建议项目的阶段审核点2.制定项目计划3.规定培训内容及过程,制定培训及后勤计划4.指导、
建议、管理项目日常活动5.管理顼目初始变更及变更过程6.定期向项目领导及项目指导委员会汇报项目的迸展状况,无尾
出问题改迸措施7.协助客户通报并解决出现的问题8.合理分配项目人员9.万利组织系统执行10.确认任务的完
成,实施质量控制1L发现、协调阻互沟通/变更控制/组织方面等问题12.完成项目状态报告13.项目实施程序、殿麻隹
的建立与旅行14.项目组成员在团队内的有效工作15.负责监督项目实施质量16.负责完成项目监督报告I技术经理技术
经理责如下:1.主持需求调研和讨论会2.分析现有工作流程3.确定用户功熊需求并协助制作文档4.设讨未来工作流程5.
指导培训计划的制定与培训后勒工作的展开6.为关键用户提供标准产品培汹7.根据功能需求确定产品的功能和流程选择8.
计划测试,并预估测试所需资源9.制定测试方案10.协助制定系统测试过程和测试所需的业务案例1L协助监控、评估测
试的执行12.为最终用户培训提供指导和建议13.定义基础数据转换步骤和策谿I技术人员技术人员的主要职责如下:1.
提供系统运行环境配置建议和优化措施2.产品的安装及系统管理员的培训3.负责产品所需基础资*斗的数据整理及导入系
统4.负责关键用户的使用培训5,负责需求的调研工作6负责培训资料的制作6.技术服务流程管理方案61制定规章制
度制定规章制度是为了提高技术部服务效率、服务质量及售后端应时间
软件项目维护方案1.项目背景及目标1.1.项目背景在国家政策的指导和帮助下,信息化也
越来越发挥出十分重要的作用。XXXX不断加大信息化管理工作力度,积极实施"上网工程"
大力推进全市局域网建设,加快办公自动化系统进程,信息技术在改革中发挥了重要的支撑作
用,为充分发挥政府公共职能,促进依法理财、科学理财,提供了重要的信息技术保障。近年
来建设各系统随着数据量的逐年增加,陆续出现了性能问题,有必要进行数据库系统的升级及
性能优化,以确保应用系统的正常运行,为单位员工提供更好的信息服务。
1.2.项目目标•对各系统数据库进行补丁升级服务,安装补丁前制定详细的升级计划和应急
回退计划。
•完成各系统数据库的性能调优工作。
•各业务持续性得到有效的保证。
2.需求分析XXXXXXX项目,我公司有多年的行业经验。具有对运维服务对象进行适时监测、
指标分析、和及时修复的能力。
Oracle产品日常运行维护项目主要从如下几个方面进行:(1).每天对ORACLE数据库的运行
状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行查看,发现并解决问
题。(2).每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康查看,对
数据库对象的状态做查看。(3).查看表空间碎片,提出下一步空间管理计划。对ORACLE数据
库状态进行一次全面查看。(4)由于这些数据库系统承载着XXXX非常重要的业务系统数
据,所以在日常维护中需要非常仔细,每周、每月、每季都需要有相应的巡检记录,需要详
细记载以下一些内容:n监控数据库对象的空间扩展情况n监控数据量的增长情况n系统健
康查看,查看以下内容:n数据库对象有效性查看n查看是否有危害到安全策略的问题。
n查看alert.Sqlnet等日志并归档报错日志n分析表和索引n查看对数据库会产生危害的增
长速度n查看表空间碎片n数据库性能调整n预测数据度将来的性能n调整和维护工作n后
续空间3.整体运行维护服务方案3.1.Lifekeeper维护3.1.1.验证LifeKeeper的安装杳看已
经安装的LifeKeeper软件包,可以使用命令:rpm-qa|grepstee3.1.2.启动LifeKeepera)
启动LifeKeeper服务器进程如果当前您的系统没有运行LifeKeeper则在所有服务器上以
root用户身份输入如下命令#/opt/LifeKeeper/bin/lkstartb)启动LifeKeeperGUI服务器
进程同样以root用户运行命令#/opt/LifeKeeper/bin/lkGUIserverstart注意:以上命令
只需运行一次,以后每次系统重新启动时,LifeKeeper会自动运行上述进程3.1.3.有关的
LifeKeeper软件的其它管理任务a)停止LifeKeeper服务如果需要在服务器上永久停止
LifeKeeper服务,可以输入下列命令$LKROOT/bin/lkstop该命令同时会使所有LifeKeeper
保护的资源处于退出服务状态,如果希望在停止LifeKe即er时保持资源/应用的运行,可以使
用:$LKROOT/bin/lkstop-fb)查看LifeKeeper进程键入下列命令可以查看当前运行的所
有LifeKeeper进程列表ps-ef|grepLifeKeeper3.1.4.启动LifeKeeperGUI配置工具进入
LifeKeeperGUI管理工具可以通过运行命令:/opt/LifeKeeper/bin/lkGUIapp贝!]出现
LifeKeeper登录界面:可以使用root用户登录,也可以使用新建的用户进行登录。
3.1.5.检测LifeKeeper集群运行状态可以使用Icdstatus命令对LifeKeeper集群的当前运行
状态进行查看,命令格式:Icdstatus[-q][-d主机名]该程序向stdout输出在LifeKeeper
资源层次配置状态和通信路径的状态.选项-q表示输出采用简略的形式(建议使用该选项)
选项-d表示要直看的主机,缺X直看本机3.1.6.管理LifeKeeper中的资源注意:如果能运
行LifeKeeperGUI,则使用其提供菜单命令执行相应操作;在执行命令行启动/停止资源前,
一定先使用Icdstatus命令确认资源的实际状态。
a)启用资源(In-Service)可以使用命令:./perform_action-t资源标记名-arestore将资
源标记名所对应的资源在本机上投入服务(启动)。如果该资源在命令使用前已经在另一台机
器上处于运行状态,则本命令执行的结果相当于执行了一次手工切换!!!如果该资源在命
令使用前是处于停止状态(即在备机上执行本命令),则本命令执行的结果相当于执行了一次
手工切换b)停止资源(out-of-service)可以使用命令:./perform_action-t资源标记名-a
remove将资源标记名所对应的资源在本机上停止服务。如果该资源在命令使用前已经在另一
台机器上处于运行状态,则本命令执行不产生任何结果注意:n在执行命令行前后,一定先
使用Icdstatus命令确认资源的当前状态。
n命令停止/启动本地的资源n命令中的资源标记名是区分大〃泻的n一定要等待命令完成,
注意命令的输出。
n详细用法见在线帮助手册。
32SQLSERVER维护计算机系统各种软、硬件故障、用户误操作以及恶意破坏是不可避免
的,这些影响到数据的正确性甚至造成数据损失、服务器崩溃等致命后果。数据库的备份对保
证系统的可靠性具有重要的作用。
下面会根据执行强度对维护任务及其相应的程序进行分类描述,执行强度用不同的时间间隔定
义,包括每天、每周、每月和每季度,能够建立起良好的维护实务,确保SQLServer数据库
性能和安全。
3.2.1.每天的例行维护任务需要数据库管理员密切关注的维护任务,最好每天都查看一下,这
样可以确保系统的可靠性、可用性、运行性能和安全。每天的例行维护任务包括:L杳看是
不是所有被请求的SQLServer服务都正常运行。
2、查看日常备份日志中成功、警告或者失败记录。
3、杳看Windows事件日志有没有错误记录。
4、直看SQLServer日志有没有安全警告记录,例如非法登录。
5、执行完全备份或差异备份。
6、在设置了完全恢复模型或大容量日恢复模型的数据库上执行事务日志备份任务。
7、核实SQLServer作业没有失败。
8、查看所有的数据库文件和事务日志具有合适的磁盘空间大小。
9、至少要监控处理器、内存或者磁盘计数器没有出现瓶颈。
3.2.2.每周的例行维护任务关注程度稍逊于每天的例行维护任务,最好每周进行一次例行查看。
每周的例行维护任务包括:1、执行完全备份或差异备份。
2、查看以前执行的维护计划报告。
3、查看数据库完整性。
4、如果需要,执行收缩数据库任务。
5、通过重新组织索引任务压缩聚集和非聚集表和视图。
6、通过重新生成索引任务在数据页和索引页重新组织数据。
7、更新所有用户表和系统表的统计信息8、清除备份、还原、SQLServer代理作业和维护计
划等操作的历史数据。
9、如果需要,手动增长数据库或事务日志文件10、清除执行维护计划残留下来的文件。
3.23.每月或每季度的维护任务有一些维护计划不需要执行得过于频繁,可以每个月或每个季
度执行一次。但是请不要以为这些彳壬务不需要天天执行就无足轻重,这些任务可以确保数据库
环境的健康,所以不要轻视以下这些维护任务:1、在测试环境中执行备份还原操作。
2、将历史数据归档。
3、分析收集的性能统计数据,与基准值相比较。
3、直看并更新维护文档。
4、查看并安装最新的SQLServer补丁和补丁包。
5、如果运行簇、数据库镜像或日志传送,则监测故障转移。
6、验证备份和还原进程是否遵循已定义的服务等级协议。
7、更新SQLServer构建指南。
8、更新SQLServer灾难恢复文档。
9、更新维护计划列表10、修改管理员口令。
11、修改SQLServer服务帐户口令。
3.3.WebLogic维护3.3.1.性能调优33.1.1.设定执行队列的溢出条件WeblogicServer提
供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,
服务器改变其状态为"警告"状态,并且额外的再分配一些线程去处理在队列中的请求,而达
到降低队列长度的目的。通过启动管理控制台,在域(如:mydomain)服务器server实
例(如:myserver)ExecuteQueueweblogic.kernel.Defalt配置下面几项:队列长度:
此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。队列
长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小
的百分比。线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU
和内存不是足够的高,尽量不要改变默认值"0"。因为Weblogic一旦增加后不会自动缩减,
虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。最大线程
数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。在实际的应用场
景中,应根据具体情况适当的调整以上参数。33.1.2.设定队列监测行为WeblogicServer
能够自动监测到当一个执行线程变为“阻塞"。变为"阻塞"状态的执行线程将无法完成当前
的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为"阻塞"状态,
Weblogicserver可能改变状态为"警告"或"严重"状态。如果Weblogicserver变为
"严重”状态,可以通过NodeManager来自动关闭此服务器并重新启动它。具体请参考:
NodeManagerCapabilities文档。通过启动管理控制台,在域(如:mydomain)服务
器server实例(如:myserver)配置调整下可配置下面几项:阻塞线程最长时间:在此服
务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,
WebLogicServer认为线程在连续工作600秒后成为阻塞线程。阻塞线程计时器间隔:
WebLogicServer定期扫描线程以查看它们是否已经连续工作了"阻塞线程最长时间”字段
中指定的时间长度的间隔时间(秒)。默认情况下,WebLogicServer将此时间间隔设置为600
秒。.尽量使用本地10库WebLogicServer有两套套接字复用器:Java版和本地
库。采用小型本地库更有效,尽量激活EnableNative10(默认),此时UNIX默认使用CPUs+1
个线程,Window下为双倍CPU。如果系统不能加载本地库,将会抛出
java.Iang.UnsatisfiedLinkException,止匕时只能使用Java套接字复用器,可以调整socket
readers百分比,默认为33%。该参数可以在ConsoleServerTuningConfiguration配置栏
里设置,配置完,重新启动WebLogicServer即可。
.调整默认执行线程数名称开发模式产品模式推荐个数ExecuteQueues默认的执
行线程为15默认的执行线程为25200在管理控制台修改默认执行队列线程数的步骤如下:
n如果管理服务器没有运行,先启动。
n访问管理控制台。
n展开左边面板的Servers节点,显示Server列表。
n右击Server,在弹出菜单中选择ViewExecuteQueues,就会在右边面板显示有执行队列
的表用来修改。
n注意:你只能修改默认的执行队列或者用户定义的执行队列。
n在Name歹I」,直接点击默认执行队列名称,显示配置标签用来修改执行队列数。
n填下适当的线程数。
n点击Apply,保存刚才的修改。
n重启Server,使新的执行队列设置生效。
3.3.13.JDBC调优.驱动程序类型选择Oracle提供thin驱动和oci驱动,从性能上
来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,
随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于。ci驱动。所
以在通常情况下建议使用thin驱动.2.调节连接池初始容量和最大容量JDBC
ConnectionPool的调优受制于WebLogicServer线程数的设置和数据库进程数游标的大小。
通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建
议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最
大值设为一致;值等于WebLogicServer的执行线程数。
.其他配置尽管JDBCConnectionPool提供了很多高级参数,在开发模式下比较有
用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表,同时TestReserved
Connections和TestReleasedConnections也无需勾上。当然如果你的数据库不稳定,时断
时续,你就可能需要上述的参数打开.WEB调优.调整WEB应用描述符WEB
应用除代码之外的调优比较简单,仅仅是对一些WEB应用描述符的调整。首先关闭Session
MonitoringEnabled,仅仅在Cluster环境下设置Session复制(优先使用内存复制),在保证应
用正常运行的情况下,设置较短的Session超时时间。同时生产环境下无需查看Jsp和servlet:
JSPPageCheckSecs和ServletReloadCheckSecs均设为-L关闭JSPKeepGenerated
和JSPVerbose对性能也有帮助。此外,还可以对jsp进行预编译,有两种方法:激活
precompile选项"吏用weblogic.appc事先编译,建议采用后者。
.其他调优设置.WebLogic文件描述符大小调整首先设置WEB主机系统的
ulimit参数为unlimited,然后设置WebLogic中文件描述符的大小。
S{WL_HOME}/bea/weblogic/common/bin中打开文件commEnv.sh,修改设置文件描述
符大小的指令,将默认的:ulimit-n1024修改为:ulimit-n81923.3.2.维护管理33.2.1.
启动weblogicservern启动管理服务器:执行startAdmserver.shn启动被管理服务器:执
彳亍startManagedWebLogic.shservernameadminurl.停止weblogicservern停
止被管理服务器:执行stopWebLogic.shservernamen启动被管理服务器:执行
stopWebLogicsh3.3.23登录和退出管理控制台n管瓒艮务器启动后可以在浏览器中登录
管理控制台n输入URL:或管理服务器的ip地址或DNS名Iport:管理服务器监听的端口I
如果管理服务器启动时使用SSL,则使用访问管理控制台n在弹出的窗口Xonsole
Login"中输入用户名和密码登录33.2.4.性能监控n查看性能参数I登录控制台后点击
Servers-servername-Monitoring-Performancen参数分析nl)IdleThreadsQueue
LengthThroughout正常情况下idlethreads0,queueLength为0,Throughout呈不
规则变化曲线,MemoryUsage呈适度频度的锯齿变化曲线。
一般来说,对于正常配置的生产环境(线程数50~200),如果idlethreads10,或者呈现
不断降低的趋势,就应加以关注;空闲线程数与队列长度通常有如下关系:A、如果空闲
线程数0,KUqueuelength=0;B、反之,如果queuelength。,则空闲线程数=0;
n2)MemoryUsageMemoryUsage=totalMemoryQ-freeMemoryO内存使用曲线反
应了JVMHeap内存使用的变化情况,可以结合其他三个值的变化情况来判断server工作情
况;比较理想的状态是适当频度的各种锯齿变化,由于JVMGC多采用"stoptheword"
机制,也就是垃圾回收时其他处理将暂停,过度频繁的GC将明显降低server工作效率和性
能表现。
3.4.Oracle维护OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的
一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据
库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用
于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方
案。
3.4.1.数据库性能优化Oracle性能管理既是一种艺术,也是一种科学。从实用角度讲,它可
以分为两种类型,主动式和被动式性能管理。主动式性能管理涉及到特定系统实施初期的设计
和开发,包括硬件选择、性能及容量规划,海量存储系统的选择,1-0子系统配置及优化,以
及如何对不同组件进行定制,以满足Oracle数据库和应用系统的复杂要求。
被动式性能管理涉及到现有环境中不同组件的性能评估、故障排除和Oracle环境的优化,本
文旨在探讨如何进行被动式性能调优,以便为Oracle性能调优提供必要的指导,从而避免仅
仅通过反复尝试的方式进行性能调优,提高Oracle性能管理的效率。
所以ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,须要用户长时间的等待。
获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量:二
是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。
对于以上的两个问题,通常我们采用以下几个方面来进行改善:n调整服务器内存分配。例
如,可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区
和共享池的大小;还可以调整程序全局区(PGA区)的大小。
n调整硬盘I/。问题,达到I/O负载均衡。
n调整运用程序结构设计。
n优化调整操作系统参数和使用资源管理器。
nSQL优化、诊断latch竞争、Rollback(undo)Segment优化、提升block的效率等等。
.查看Oracle数据库性能查看Oracle数据库性能情况,包含:查看数据库的等待事
件,查看死锁及处理,杳看cpu、I/O、内存性能,查看是否有僵死进程,查看行链接/迁移,
定期做统计分析,查看缓冲区命中率,查看共享池命中率,查看排序区,查看日志ORACLE
产品日常运行维护年度服务项目缓冲区,总共十个部分。
.1.查看数据库的等待事件setpages80setlines120coleventfora40select
sidzevent,pl,p2,p3,WAIT_TIMEzSECONDS_IN_WAITfromv$session_waitwhereevent
notlike'SQL%'andeventnotlike'rdbms%';如果数据库长时间持续出现大量像
latchfree,enqueue,bufferbusywaits,dbfilesequentialread,dbfilescattered
read等等待事件时,需要对其进行分析,可能存在问题的语句。
.2.查看消耗CPU最高的进程SETLINE240SETVERIFYOFFCOLUMNSID
FORMAT999COLUMNPIDFORMAT999COLUMNS_#FORMAT999COLUMN
USERNAMEFORMATA9HEADING"ORAUSER"COLUMNPROGRAMFORMATA29
COLUMNSQLFORMATA60COLUMNOSNAMEFORMATA9HEADING"OS
USER"SELECTP.PIDPID,S.SIDSID,P.SPIDSPID,S.USERNAMEUSERNAME,S.OSUSER
OSNAME,P.SERIAL#S_#,P.TERMINAL,P.PROGRAM
PROGRAM,P.BACKGROLND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT,1,80))SQLFROM
V$PROCESSP,V$SESSIONS,V$SQLAREAAWHEREP.ADDR=S.PADDRAND
S.SQL_ADDRESS=A.ADDRESS(+)ANDP.SPIDLIKE'%1%';3.查看碎片程度
高的表SQLSELECTsegrrent_nametable_name,COUNT(*)extentsFROM
dba.segmentsWHEREownerNOTIN('SYS','SYSTEM')GROUPBY
segment_nameHAVINGCOUNT(*)=(SELECTMAX(COUNT(*))FROMdba_segments
GROUPBY);A查看表空间的I/O比例SQLSELECT
DF.TABLESPACE_NAMENAME,DF.FILE_NAME"FILE",F.PHYRDSPYR,
F.PHYBLKRDPBR,F.PHYWRTSPYW,F.PHYBLKWRTPBWFROMV$FILESTATF,
DBA_DATA_FILESDFWHEREF.FILE#=DF.FILEJDORDERBYDF.TABLESPACE_NAME;
.5.查看文件系统的I/O比例
SQLSELECTSUBSTR(A.FILE#,1,2)M#H,SUBSTR(A.NAME,l,30)"NAMEH,A.STATUS,A.BY
TES,B.PHYRDS,B.PHYWRTSFROMV$DATAFILEA,V$FILESTATBWHEREA.FILE#
二B.FILE#;.6.DiskRead最高的SQL语句的获取SQLSELECTSQL.TEXTFROM
(SELECT*FROMV$SQLAREAORDERBYDISK_READS)WHERER0WNUM=5desc:
7.查找前十条性能差的sqlSELECT*FROM(SELECTPARSING.USERJD
EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL.TEXTFROMV$SQLAREA
ORDERBYDISK_READSDESC)WHEREROWNUM10;8.等待时间最多的5个系
统等待事件的获取SELECT*FROM(SELECT*FROMV$SYSTEM_EVENTWHEREEVENT
NOTLIKE'SQL%'ORDERBYTOTAL_WAITSDESC)WHEREROWNUM=5;.9.
查看运彳亍很久的SQLCOLUMNUSERNAMEFORMATA12COLUMNOPNAMEFORMAT
A16COLUMNPROGRESSFORMATA8SELECT
USERNAME,SID,OPNAME,ROUND(SOFAR*100/TOTALWORK,0)||,%'AS
PROGRESS,TIME_REMAINING,SQL_TEXTFROMV$SESSION_LONGOPS,V$SQL
WHERETIME.REMAINING0ANDSQL_ADDRESS=ADDRESSANDSQL_HASH_VALUE
=HASH_VALUE;.10.查看死锁及处理查询目前锁对象信息:colsidfor999999col
usernameforalOcolschemanameforalOcolosuserforal6colmachineforal6col
terminalfora20colownerforalOcolobject_namefora30colobject_typefora10
selectsid,serial#,username,SCHEMANAMEqsuser,MACHINE,
terminal,PROGRAM,owner,object_name,object_type,o.object_idfromdba_objects
o,v$locked_objectl,v$sessionswhereo.object_id=l.objectjdands.sid=(.sessionJd;
oracle级kill掉该session:altersystemkillsession'sid,serial#';操作系统级kill掉
session:#kill-9pid.11.查看数据库cpu、I/O、内存性能记录数据库的cpu使用、
IO、内存等使用情况,使用vmstatjostatsactop等命令进行信息收集并直看这些信息,判
断资源使用情况。
nCPU使用情况:[root@sale8~]#toptop-10:29:35up73days,19:54,1user,load
average:0.37,038,0.29Tasks:353total,2running,351sleeping,0stopped,0
zombieCpu(s):1.2%us,0.1%sy,0.0%ni,98.8%id,0.0%wa,0.0%hi,0.0%siMem:
16404472ktotal,12887428kused,3517044kfree,60796kbuffersSwap:8385920k
total665576kused,7720344kfree,10358384kcachedPIDUSER30495oracle
32501oracle32503oracle注意上面的加粗字体部分,此部分内容表示系统剩余的cpu,
当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常
n内存使用情况:#free-mTotalusedfreesharedbufferscached
Mem:20261958670761556-/+buffers/cache:3261700Sw叩:599292
5900如上所示,total表示系统总内存,used表示系统使用的内存,free表示系统剩余内存,
当剩余内存低于总内存的10%时视为异常。
n系统负载情况:#uptime12:08:37up162days,23:33,15users,loadaverage:0.01,
0.15,0.10如上所示,loadaverage部分表示系统负载,后面的3个数值如果有高于2.5的
时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。
.12.查看是否有僵死进程selectspidfromv$processwhereaddrnotin(select
paddrfromv$session);有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。
.13.查看行链接/迁移Sqlselecttable_name,num_rows,chain_cntFromdba_tables
Whereowner=1CTAIS21Andchain_cnt0;注:含有longraw列的表有行链接是正常的,
找到迁移行保存到chained,ows表中,如没有该表执行../rdbms/admin/utlchain.sql
Sqlanalyzetabletablenamelistchainedrows;可通过表chained_rows中
table_name,head_rowid看出哪些行是迁移行如:Sqlcreatetableaaasselects.*from
sb_zsxxa,chained_rowsbwherea.rowid=b.head_rowidandb.table_name='
SB_ZSXX';sqldeletefromsb.zsxxwhererowidin(selecthead_rowidfrom
chained_rowswheretabe_name='SB_ZSXX');sqlinsertintosb_zsxxselect*from
chained_rowwheretable_name="SB_ZSXX';.14.定期做统计分析对于采用
OracleCost-Based-Optimizer的系统,需要定期对数据对象的统计信息进行采集更新,使
优化器可以根据准备的信息作出正确的explainplan。
在以下情况更需要进行统计信息的更新:应用发生变化;大规模数据迁移、历史数据迁出、
其他数据的导入等;数据量发生变化。
查看表或索引的统计信息是否需更新,如:SqISelecttable_name,num_rows,last_analyzed
Fromuser_tableswheretable_name='DJ_NSRXX'sqlselectcount(*)from
DJ_NSRXX如num’ows和count(*)如果行数相差很多,则该表需要更新统计信息,建议一周
做一次统计信息收集,如:Sqlexecsys.dbms_stats.gather_schema_stats(ownname='
查看日志缓冲区
CTAIS2'fcascade=TRUE,degree=4);3.4,1.1.15.SQLselectname,value
fromv$sysstatwherenamein('redoentries','redobufferallocationretries');如
果redobufferallocationretries/redoentries超过1%,则需要增大log_buffer。
.性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行
了阐述,被动调优主要有以下方法进行。
n确定合理的性能优化目标n测试并记录当前的性能指标n确定当前存在的Oracle性能瓶颈
(Oracle中何处存在等待,哪个SQL语句与此有关)n确定当前的操作系统瓶颈n优化相关的
组件(应用、数据库、I/O、连接OS及其它)n跟踪并实施变化管理制度n测试并记录目前的
性能指标n重复第3到第7步直至达到既定的优化目标不要对并非性能瓶颈的部分进行优化,
否则可能引起额外的问题。正如任何聪明的人会告诉你的:"如果还未坏,千万不要修"。更
重要的是,一旦既定的优化目标已经达到,就务必停止所有的优化。
获取Oracle的性能指标(测试前及测试后)必须在峰值处理时测试并获取系统在优化前和优化
后的性能指标。数据采集不应在数据库instance刚刚起动后进行。同时,测试数据应在峰值
期间每过15分钟进行一次。初始化参数TIMED_STATISTICS应该被设为TRUE。
通过运行以下脚木开始快照:$ORACLE_HOME/rdbms/admin/utlbstat.sqL通过运行以下
脚本结束快照:$ORACLE_HOME/rdbms/admin/utlestat.sql.完成utlestat.sql操作后,
会在当前目录中生成名为"reporttxt”的文件,包含系统的性能数据。该报告包括每15分
钟捕获的所有与Oracle例程相关的参数。
.1.寻找问题根源如上所述,通过查看v$system_event事件开始系统事件的问题诊断。
下一步是查看v$session_event,找出引起或经历等待事件的进程。最后一步是通过
v$session_wait获得事件的细节。同时,应该进一步通过OS进行深入分析,了解核心的
CPU、内存和10状态参数。最后,结合两种不同的诊断的结论,找出系统瓶颈所在。
.2,应用优化从统计(和现实)的角度看,80%的Oracle系统性能问题可以通过SQL
代码优化来解决。任何应用优化的过程,不外乎是索引优化、全表扫描、并行机制改进和选择
正确数据组合方法的过程。这正是要达到最佳应用性能所必须考虑的因素。没有SQL的优化,
就无法实现高性能的应用。良好的SQL语句可以减少CPU资源的消耗,提高响应速度。同时,
优化后的SQL语句还可以提高应用的可扩展性,这是除增加大量内存外,任]可其它硬件手段
也无法实现的。
.2.1.1-0优化1-0优化是系统优化中的一个关键步骤,还涉及到其它任务,将文件在
不同驱动器/卷中进行分布,采用优化分区技术、确定1-0子系统瓶颈、确定控制器瓶颈并根
据应用的类型选择最佳的RAID级。1-0优化应该在全面了解Oracle及OracleRDBMS结构
之后进行。应该在进行1-0优化前后实施1-0数据监控,如平均服务时间,IOPS,平均磁盘
队列长度等。
.2.2.0-S监控数据库忙时,应该对操作系统进行监控,因为操作系统的性能指标会揭
示数据库活动的性质及其对系统的影响。例如,为了了解CPU的利用率,可以通过system
activityreporter(sar-uintervalfrequency)、mpstat(SunSolaris),top(多数UNIX)、
osview(SGIIrix)及vmstat等命令。Sar和vmstat也可被用于确定包括内存使用率、IQ参
数、队列等待、读取/交换区活动等信息。在Solaris上,mpstatutility也可用于获取前面提
到的CPU利用率数据。Solaris上的Adrian性能管理工具也很有用。可以利用其中的一到多
个工具来确定系统的性能状况,找出可能存在的瓶颈。
Oracle数据库性能的管理需要遵循系统的方法论,以确保所有核心问题得以解决。多数问题
可以事先得以管理。了解与0-S相关的问题是成功的关键。勿需置疑,系统硬件配置上的良
好平衡也是至关重要的。必须承认,80%的系统性能问题可以通过书写更好的SQL语句来
解决。来文试图探究其余20%中可能覆盖的内容。同时,必须遵守严格的规定,在调优目标
达到后终止所有努力。了解自己想到何处是重要的,更重要的是,要知道自己何时到达了目的
地。
.23.例程调优n需要配置的主要初始化参数以下是一些已知与例程优化关系最密切的
一些核心Oracle初始化参数。它们都会影响Oracle及SGA区的活动。任何对这些参数的改
动,在实施到生产环境之前,都必须进行测试。一旦改变了生产环境的参数,就必须对相关的
Oracle动态性能指标和操作系统的性能进行监测,寻找可能由此产生的异常现象。
1)DB_BLOCK_SIZE该参数在数据库建立前设定,决定了数据库中每个数据块的大小。只有重
新建立数据库,才有可能改变该参数。db_block_size的配置应遵循以下公式:
DB_BLOCK_SIZE=FILESYSTEMBLOCKSIZE=O-SPAGESIZE这可以确保Oracle获得最
佳I/O性能,同时不会由于冗余或不必要的I/O,给I/O子系统带来压力。
2)DB_BLOCK_BUFFERS该参数决定了SGA区数据库缓冲区中的块数量。由于这是Oracle
读取和写入的区域,它的不正确配置会引起严重的I/O性能问题。尽管缓冲区的大小与应用性
质、数据库大小、同步用户数等无关,它的确是SGA区中最大的组件。经常可以看到缓冲区
占用75-80%SGA区内存的情况。另外,这一参数设置过大,也会引起整个系统的内存不足,
引起操作系统过多的读写操作。
该参数及SHARED_POOL_SIZE通常是两个最重要的SGA优化目标。只有当数据库缓冲率长
时间低于70%时,才需要增加其大小说。即使在这种情况下,也需要进一步审查应用的性能
和整个系统的吞吐性。若存在延迟性的应用设计问题,则无论数据库缓冲区的大小如何,缓冲
和读写率都不会有太大改变为。在实调优中,也曾发现由于SQL语句的问题,出现缓冲率很
高,但仍存在全系统性能问题的情况。
3)SHARED_POOL_SIZE该参数按字节数设定,定义了SGA中共享区的大小。该组件的大小
严重依赖于应用的类型(即该应用是重用SQL,还是生成动态SQL,等等)。同时它也取决于
同步用户的数量,以及实例是否被配置成支持多线程服务器(MTS)。如果该应用采用了MTS
配置,则共享区应该明显增加,因为光标状态和用户进程数据等程序全局区域(PGA)都被置入
了共享区。
有关多数应用的SHARED_POOL_SIZE大小设置,可以从每10个同步用户16MB共享区开
始.这不是一成不变的,因为应用的性质最终会决定该组件的大小。只有当库缓冲和字典缓冲
使用率一直低于90%时,才需要关注这一参数。但如果应用并未采用变量合并和/共离图标时,
内存的数量并不会使缓冲使用率高于90%。
共享区过大会导致处理时间增加,甚至SQL语句的挂起。如果应用不能有效地重用SQL,则
无论配置多大的库缓冲或字典缓冲都无济于事,不能改善缓冲使用率。
另一个值得考虑的因素是需要随时使用的存储PL/SQL代码数量。应用的核心包可以通过查看
DBA_SOURCE、USERJOURCE得以确认,其大小通过查询DBA_OBJECT_SIZE了解。另外,
为了确定存储PL/SQL是否被置于内存,可以查询动态性能视图V$DB_OBJECT_SIZE,内
时,包DBMS_SHARED_POOL中的程序大小可被用于确定应用中大包的规模。
4)LOG_BUFFER根据字节设定,该参数定义了SGA缓冲区中redolog的大小。缺X值通常
是数据库块大小的四倍,这对于多数环境并不是最佳的。对于中型的Oracle环境,其结构应
该为512Kb左右。对该存储结构而言,更大并不意味着更好。超过1MB就可能有问题。需
要监控V$SESSION_WAIT中logbufferspace的等待事件,优化该内存结构。需要提醒的
是,在线redolog文件的大小设置不当,会引起redo请求的等待。
5)DB_WRITERS该参数可以针对所有文件系统支持,且不可使用Direct1-0的Oracle实施
设定。这并不需要与rawpartitions一起使用,因为异步1-0更加。建议将该参数设定为(2*
独立磁盘驱动器数量/卷)。该参数只有在report.txt中的"averagewritequeuelength"持
续高于1时,才需要设定。在Oracle8.0和更高版本中,该参数已不再被支持,而为其它两
个名为DB_WRITER_PROCESSES和DBWRJO_SLAVES的参数取代。若需要设置
DB_WRITER_PROCESSES值高于8,贝I」DB_WRITER_PROCESSES可被设为1,且
DBWRJO.SLAVES可被设为"n",其中n的值必须设置为(2*独立磁盘驱动器数量/卷)
.2.4.竞争优化多数与Oracle有关的竞争问题可以通过主动配置管理相关的初始化参
数进行。不恰当地配置init.ora中的锁参数可能引起竞争。为了不打破其中的平衡,所需的参
数可进行配置并主动得以处理。
包括表在内的数据库对象可能存在两个竞争点。第一个是所配置的"freelists”的数量(缺X
值为1)。freelist结构维护着表中可用于插入的块。对于存在大量同步插入的表,有必要配置
该结构。为了以主动方式处理freelist竞争,必须在建立表时配置FREELISTS。可考虑的最佳
值为(2*CPU数量)。V$WAITSTAT不可能指示存在freelist竞争,除非存在freelist组,
而这种设置只存在于OracleParallelServer中。即便如此,也无法了解哪个表存在竞争中。
主动式的freelist竞争调优可以事先预防问题出现。
资源竞争的第二个来源与索引有关,即对象块头中配置的事务槽数量。事务槽是块头中的区域,
是事务处理进程采用自身识别号进行注册,以便任何被修改的更能够通过特定事务槽数量在低
层得以识别的地方。如果所有现存的事务槽已经被其它事务占用,服务器器进程会从块的
PCTFREE中请求23个字节,建立一个新的槽。这种情况适用于存在大量同步事务的对象。
对于事务槽的竞争,需要设置INITRANS参数。对于块大小为8K的数据库,多数情况下,4
为最佳设置,占用的空间仅为92字节,却可以大大减少运行时故障和性能问题。
3.4.2.数据库备份恢复为了保证客户数据库系统的数据安全性,降低各种故障、灾难给客户带
来的数据丢失,根据客户系统实际情况,协助客户规划实施符合客户工作要求的完善的备份恢
复方案,以确保客户数据库系统的安全可靠运行。数据库的恢复与备份主要有以下几点:n
恢复管理器(RMAN),能使备份恢复操作自动化nOracle数据泵,用以数据库的逻辑备份n
用户管理允许用户通过操作系统命令手动备份数据库。
n各种各样的其他的数据库备份和恢复软件,增强了Oracle的备份实用程序Oracle备份时
应注意事项:当数据库处于运行状态时的热备份时,不备份活动事务;使用比如Oracle工具
(OracleRAMN)或者其他的第三方软件(IBM/Tivoli的数据存储管理器)压缩Oracle备
份数据;如果维持数据存储空间比备份和恢复数据库时间更重要的话,可以考虑使用二达制压
缩。
.查看Oracle数据库备份结果查看Oracle数据库备份结果,是日常运维中必不可少
的一个环节。包含:查看数据库备份日志信息,查看backup卷中文件产生的时间,查看
oracle用户的email,总共三个部分。
.1.查看数据库备份日志信息假设:备份的临时目录为/backup/hotbakup,我们需要
查看2012年7月22日的备份结果,则用下面的命令来查看:#cat
/backup/hotbackup/hotbackup-09-7-22.log|grep-ierror备份脚本的日志文件为
hotbackup-月份-日期-年份.log,在备份的临时目录下面。如果文件中存在"ERROR:",则
表明备份没有成功,存在问题需要查看。
.2.查看backup卷中文件产生的时间#ls-It/backup/hotbackupbackup卷是备份
的临时目录,查看输出结果中文件的日期,都应当是在当天凌晨由热备份脚本产生的。如果时
间不对则表明热备份脚木没执行成功。
3.查看oracle用户的email#tail-n300/var/mail/oracle热备份脚本是通过
Oracle用户的cron去执行的。cron执行完后操作系统就会发一条Email通知Oracle用户
任务已经完成。查看Oracleemail中今天凌晨部分有无ORA-,Error,Failed等出错信息,
如果有则表明备份不正常。
3.4.3.数据库迁移数据迁移是日常运维过程中存在的一个必不可少的应急方案。日常维护过程
中,由于硬件的原因或其它一些外在因素需要对数据进行迁移,迁移到更加高级的主机上、迁
移到远程的机房上、迁移到不同的平台下等等一些情况。对于数据迁移我公司有非常成熟的方
案,从以下几种方式我们可以充分了解其优缺点:nexp/imp:这也算是最常用最简单的方
法了,一般是基于应用的owner级做导出导入;u优点是可以跨平台使用;u缺点是停机时
间长,停机时间为从exp到网络传输到新库,再加上imp的时间;n存储迁移:这种情况下,
数据文件、控制文件、日志文件、spfile都在存储上(一段情况下是裸设备),我们可以直接
把存储挂到新机器上,然后在新机器上启动数据库;u优点是该迁移方式非常简单,主要的
工作是主机工程师的工作,dba只需配合即可,停机时间为当库、切存储、起库的时间。
u缺点是要求新老库都是同一平台,是相同的数据库版本。
n利用dataguard迁移;u优点是停机时间短,停机时间为switchover的时间。
u缺点:主机必须双份、存储必须双份。
n用rman做迁移,这种方式比较适合于跨文件系统的迁移,如同平台下的不同文件系统。
3.4.4.数据库运维数据库的运维主要结合各系统的实际情况,提供切实可行的运维建设机制,
内容覆盖ORACLE数据库的日常维护、紧急故障处理,软件升级等,客户可依据服务内容进
行相应的定制。我们将会提供全面的、针对性的服务解决方案,以保证客户系统稳定、高效、
可靠的运行,以达到对业务系统的有效支持。
.查看数据库基本状况对数据库的基本状况进行查看,其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食物解救测试题及答案
- 重症肺炎合并心衰诊疗要点
- java源码面试题及答案
- 环境应急考试题及答案
- java面试题及答案arrlist
- 换药术考试题及答案
- 江苏省南京市励志高级中学2024-2025学年高一下学期6月期末地理试题(含答案)
- 心理健康协会会长竞选
- 广西钦州市第十三中学2024-2025学年高一下学期第十六周考试历史试卷(含答案)
- 2025年湖北省黄冈市黄梅县中考适应性考试英语试题(含答案)
- 一级圆柱齿轮减速器的设计计算22001文档
- 第19章一次函数-一次函数专题数形结合一一次函数与45°角模型讲义人教版数学八年级下册
- 2023年四川省宜宾市叙州区数学六年级第二学期期末考试模拟试题含解析
- 幼儿园警察职业介绍课件
- 灭火器维修与报废规程
- 皮肤病的临床取材及送检指南-修订版
- 机型理论-4c172实用类重量平衡
- 校企合作项目立项申请表(模板)
- 管道工厂化预制推广应用课件
- 海水的淡化精品课件
- 项目工程移交生产验收报告
评论
0/150
提交评论