软件项目维护方案(参考示例)_第1页
软件项目维护方案(参考示例)_第2页
软件项目维护方案(参考示例)_第3页
软件项目维护方案(参考示例)_第4页
软件项目维护方案(参考示例)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件项目维护方案1. 项目背景及目标1.1. 项目背景在国家政策的指导和帮助下, 信息化也越来越发挥出十分重要的作用。 XXXX 不断加大信息化管理工作力度,积极实施“上网工程” ,大力推进全市局域网建 设,加快办公自动化系统进程, 信息技术在改革中发挥了重要的支撑作用, 为充 分发挥政府公共职能,促进依法理财、科学理财,提供了重要的信息技术保障。 近年来建设各系统随着数据量的逐年增加, 陆续出现了性能问题, 有必要进行数 据库系统的升级及性能优化, 以确保应用系统的正常运行, 为单位员工提供更好 的信息服务。1.2. 项目目标 对各系统数据库进行补丁升级服务,安装补丁前制定详细的升级计划和应

2、急 回退计划。 完成各系统数据库的性能调优工作。 各业务持续性得到有效的保证。2. 需求分析XXXXXXX项目,我公司有多年的行业经验。具有对运维服务对象进行适时监测、 指标分析、和及时修复的能力。Oracle 产品日常运行维护项目主要从如下几个方面进行:(1) .每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使 用情况 ,系统资源的使用情况进行查看 ,发现并解决问题。(2) . 每周对数据库对象的空间扩展情况 ,数据的增长情况进行监控 ,对数据库 做健康查看 ,对数据库对象的状态做查看。(3) .查看表空间碎片,提出下一步空间管理计划。对ORACLED据库状态进行一次全

3、面查看(4) 由于这些数据库系统承载着 XXXX非常重要的业务系统数据,所以在日维护中需要非常仔细,每周、每月、每季都需要有相应的巡检记录,需要详 细记载以下一些内容:监控数据库对象的空间扩展情况监控数据量的增长情况系统健康查看,查看以下内容:数据库对象有效性查看查看是否有危害到安全策略的问题。查看alert、Sqlnet等日志并归档报错日志分析表和索引查看对数据库会产生危害的增长速度查看表空间碎片数据库性能调整预测数据库将来的性能调整和维护工作后续空间3. 整体运行维护服务方案3.1. Lifekeeper 维护3.1.1. 验证 LifeKeeper 的安装查看已经安装的LifeKeepe

4、r软件包,可以使用命令:rpm a|grep stee312启动LifeKeepera)启动LifeKeeper服务器进程如果当前您的系统没有运行LifeKeeper则在所有服务器上以root用户身份输入如下命令# /opt/LifeKeeper/bi n/Ikstartb)启动LifeKeeper GU服务器进程同样以root用户运行命令# /opt/LifeKeeper/bi n/lkGUIserver start注意:以上命令只需运行一次,以后每次系统重新启动时,LifeKeeper会自动运行上述进程3.1.3.有关的LifeKeeper软件的其它管理任务a)停止LifeKeeper服务

5、如果需要在服务器上永久停止 LifeKeeper服务,可以输入下列命令$LKROOT/bi n/lkstop该命令同时会使所有LifeKeeper保护的资源处于退出服务状态,如果希望在停止 LifeKeeper时保持资源/应用的运行,可以使用:$LKROOT/bi n/l kstop -fb)查看LifeKeeper进程键入下列命令可以查看当前运行的所有LifeKeeper进程列表ps -ef | grep LifeKeeper3.1.4.启动 LifeKeeperGUI配置工具进入LifeKeeper GU管理工具可以通过运行命令:/opt/LifeKeeper/bi n/lkGUI app

6、则出现LifeKeeper登录界面:| Ell皐 旦比 里lew 旦凶p:fill |=H 毛七 X > <-& I5erTe- larieserverl可以使用root用户登录,也可以使用新建的用户进行登录。3.1.5. 检测LifeKeeper集群运行状态可以使用Icdstatus命令对LifeKeeper集群的当前运行状态进行查看,命令格式: Icdstatus -q -d <主机名 >该程序向stdout输出在LifeKeeper资源层次配置状态和通信路径的状态. 选项-q表示输出采用简略的形式(建议使用该选项) 选项-d表示要查看的主机,缺X查看本机3

7、.1.6. 管理 LifeKeeper中的资源注意:如果能运行LifeKeeper GUI,则使用其提供菜单命令执行相应操作;在执 行命令行启动/停止资源前,一定先使用lcdstatus命令确认资源的实际状态。a)启用资源(In-Service)可以使用命令:./perform_action -t <资源标记名 > -a restore将资源标记名所对应的资源在本机上投入服务(启动)。如果该资源在命令使用 前已经在另一台机器上处于运行状态,则本命令执行的结果相当于执行了一次手 工切换!如果该资源在命令使用前是处于停止状态(即在备机上执行本命令),则本命令执行的结果相当于执行了一次手

8、工切换b)停止资源(out-of-service)可以使用命令:./perform_action-t 资源标记名 -a remove将资源标记名所对应的资源在本机上停止服务。如果该资源在命令使用前已经在 另一台机器上处于运行状态,则本命令执行不产生任何结果在执行命令行前后,一定先使用Icdstatus命令确认资源的当前状态。命令停止/启动本地的资源命令中的 资源标记名 是区分大小写的一定要等待命令完成,注意命令的输出。 详细用法见在线帮助手册。3.2. SQL SERVER维护计算机系统各种软、硬件故障、用户误操作以及恶意破坏是不可避免的 ,这 些影响到数据的正确性甚至造成数据损失、 服务器崩

9、溃等致命后果。数据库的备 份对保证系统的可靠性具有重要的作用。下面会根据执行强度对维护任务及其相应的程序进行分类描述,执行强度用不同的时间间隔定义,包括每天、每周、每月和每季度,能够建立起良好的维护 实务,确保SQL Serve数据库性能和安全。3.2.1.每天的例行维护任务需要数据库管理员密切关注的维护任务, 最好每天都查看一下,这样可以确 保系统的可靠性、可用性、运行性能和安全。每天的例行维护任务包括:1、查看是不是所有被请求的SQL Serve服务都正常运行。2、查看日常备份日志中成功、警告或者失败记录。3、查看 Windows 事件日志有没有错误记录。4、查看SQL Serve日志有没

10、有安全警告记录,例如非法登录。5、执行完全备份或差异备份。6、在设置了完全恢复模型或大容量日恢复模型的数据库上执行事务日志备 份任务。7、核实SQL Serve作业没有失败。8、查看所有的数据库文件和事务日志具有合适的磁盘空间大小。9、至少要监控处理器、内存或者磁盘计数器没有出现瓶颈。3.2.2. 每周的例行维护任务关注程度稍逊于每天的例行维护任务, 最好每周进行一次例行查看。 每周的 例行维护任务包括:1、执行完全备份或差异备份。2、查看以前执行的维护计划报告。3、查看数据库完整性。4、如果需要,执行收缩数据库任务。5、通过重新组织索引任务压缩聚集和非聚集表和视图。6、通过重新生成索引任务在

11、数据页和索引页重新组织数据。7、更新所有用户表和系统表的统计信息8、清除备份、还原、SQL Serve代理作业和维护计划等操作的历史数据。9、如果需要,手动增长数据库或事务日志文件10、清除执行维护计划残留下来的文件。3.2.3. 每月或每季度的维护任务有一些维护计划不需要执行得过于频繁,可以每个月或每个季度执行一次。 但是请不要以为这些任务不需要天天执行就无足轻重, 这些任务可以确保数据库 环境的健康,所以不要轻视以下这些维护任务:1、在测试环境中执行备份还原操作。2、将历史数据归档。3、分析收集的性能统计数据,与基准值相比较3、查看并更新维护文档。4、查看并安装最新的SQL Serve补丁

12、和补丁包。5、如果运行簇、数据库镜像或日志传送,则监测故障转移。6、验证备份和还原进程是否遵循已定义的服务等级协议。7、更新SQL Serve构建指南。8、更新SQL Serve灾难恢复文档。9、更新维护计划列表10、修改管理员口令。11、修改SQL Serve服务帐户口令。3.3. WebLogic 维护3.3.1. 性能调优. 设定执行队列的溢出条件Weblogic Server 提供给默认的执行队列或用户自定义的执行队列自定义溢 出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且 额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。通过启

13、动管理控制台,在域(如:mydomain)服务器 server实例(如:myserver) Execute Queue weblogic.kernel.Defalt 配置下面几项: 队列长度:此值表示执行队列中可容纳的最大请求数,默认值是 65536,最后不 要手动改变此值。队列长度阈值百分比: 此值表示溢出条件, 在此服务器指出队列溢出之前可以达 到的队列长度大小的百分比。线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果 CPU 和内存不是足够的高,尽量不要改变默认值“ 0”。因为 Weblogic 一旦增加后不 会自动缩减, 虽然最终可能确实起到了降低请求的作用, 但在将

14、来的运行中将影 响程序的性能。最大线程数: 为了防止创建过多的线程数量, 可以通过设定最大的线程数进行控 制。在实际的应用场景中,应根据具体情况适当的调整以上参数。. 设定队列监测行为Weblogic Server能够自动监测到当一个执行线程变为 “阻塞”。变为“阻塞” 状态的执行线程将无法完成当前的工作, 也无法再执行新请求。 如果执行队列中 的所有执行线程都变为“阻塞”状态, Weblogic server 可能改变状态为“警告” 或“严重”状态。如果 Weblogic server变为“严重”状态,可以通过Node Manager 来自动关闭此服务器并重新启动它。具体请参考

15、:Node Man ager Cap abilities文档。通过启动管理控制台,在域(如:mydomain)服务器 server实例(如:myserver) 配置 调整下可配置下面几项:阻塞线程最长时间: 在此服务器将线程诊断为阻塞线程之前, 线程必须连续工作 的时间长度 (秒)。默认情况下, WebLogic Server 认为线程在连续工作 600 秒后 成为阻塞线程。阻塞线程计时器间隔: WebLogic Server 定期扫描线程以查看它们是否已经连续 工作了 "阻塞线程最长时间 " 字段中指定的时间长度的间隔时间 (秒)。默认情况下, WebLogic Serv

16、er 将此时间间隔设置为 600 秒。.1. 尽量使用本地 IO 库WebLogic Server有两套套接字复用器:Java版和本地库。采用小型本地库更 有效,尽量激活Enable Native 10默认)此时UNIX默认使用CPUs+1个线程,Window 下 为 双 倍 CPU 。 如 果 系 统 不 能 加 载 本 地 库 , 将 会 抛 出 java.lang.UnsatisfiedLinkException此时只能使用 Java套接字复用器,可以调整 socket readers 百 分比 , 默 认 为 33%。 该参 数 可 以 在 Console Server

17、Tuning Con figuration配置栏里设置,配置完,重新启动 WebLogic Server即可。Cortflim rationProtoC'jfe MrrrifcinnijCcrWi.ilD&ptoyrnente&gr皿T |r i.des JG mi era! | Cluslsr |be卢Imps £ SSL eplDrrent |Tunlny | Heailh Manitnriing | Remote SiartTita page 玄和幡 you to tune uw perronnBoce ml tlncl>on0i of rile

18、«iwr 也 F EmbhB F4dti¥fl IOSoeces iflhelt-rr' th5 server uses natrr UOSDCh «t R# rtfirv:卜齐Tha 卿世时蜩釦|B嵌彌n 1 and D9) ofthrde hr&m th© ddfaut qufiu ihst u 山 站叩旳 (=> 的 Eodat rudfrniiAIIiii .VlHIj imii.和* f ir . h ,i - 1 ,i |j I- s h h | |.1 ; I k | D| r |l - m 山.Tm%g 1门i p&

19、#39; h I阳QU対|MuKhuirn Opin ochatxThs oadviijfn miEbsr cf opm sockets 出Immdl in<thk server 白t a gken punt in Nme (bsthiss'n 0 md aposIHM 32-bii: integer) Aveluei I?%& Bian D icSd咚普 an uninnted siz*A Stuck Thread Maa Tim#!: |*0Q ttecoridB"Rt 4 书丁! W Um9tccn) that 刁 Ih垢孑d rnust 展 ccrfli

20、rLly 肚:3自 -re 口 e, serr disgno$9s the in书ad 毎 bng sb., ok &) iieiauft webLoflie Sewr coreldsnsii fl WMd k& be "stuck1 oterBOOof confemiOLB u&e.33122调整默认执行线程数名称开发模式产品模式推荐个数Execute默认的执行线程为 15默认的执行线程为 25200Queues在管理控制台修改默认执行队列线程数的步骤如下:如果管理服务器没有运行,先启动。访问管理控制台。展开左边面板的Servers节点,显示Server列表

21、。右击Server,在弹出菜单中选择 View Execute Queues,就会在右边面板显示 有执行队列的表用来修改。注意:你只能修改默认的执行队列或者用户定义的执行队列。在Name列,直接点击默认执行队列名称,显示配置标签用来修改执行队列 数。填下适当的线程数。点击Apply,保存刚才的修改hurf"M*VM*-' -fU'Vu-1-?1, w rj xj->jiu1 u!|j|jip_uiir'." i j4 tlj htvtfW| *rv¥ *uu|_mi*uuwii-r u> iu-r wibu j, xv sei-

22、 ± Eiv-j" V%1 -b-xju i. i田gp .w. !/i:ju t:- cordiijj"吕I削*. us0ir-dyhri0ij h 巳虫:血 quauei for伙帆h 亡祥如:ations on 1h ;石自rw or to eCii wstrng 却右uulu 口讪飢氏.hlaint.Queue Lenigelii-The nwirnjm number hire*qu5fc m tris seiwr can HiMdthA 皿阳丿日CuBue Length Ttirehold Percent: GDThe prc«rtjflg a

23、r ti Qu9l> L<呼Hi sz Uhat can be rMclvd bstort th iMvtrindicalBfi an両 * lih> i i quusThread Count:Trw nurfcer urwfrad-s assiqrGdtoiiis qu«uuThrodt interThe nimtr ffire-rid io貯 di>d to ifr cueu肿 伽陀幵郴 cooti n 0ce vcThrewls MsxihniJm:Ths rrasjrnurn numti=r of tnrej生 thzi ih s qj日ue can

24、na-e, this uaL倉 rewnlH WebLog 匸 三日wsr fran 匚咔卅叩 an owerly high Ihrea d cotLint lin 士 queo? inmspcnN ti cortrua cerfim conditiizrisThreaclft MinimyrirTtw mniniLjinn nurrt_vof t 怯心九 狛酊 V呼tLugL 矢m3 r和 rnar id n in lli» qusu-Thread Pricrrt>TM uior tyeq 匚卅 jh 舟冲c .c. j w lii riif 耳血山一Appjy重启Serve

25、r,使新的执行队列设置生效。3313 JDBC 调优33131驱动程序类型选择Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是 大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断 改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常 情况下建议使用thin驱动3.3132调节连接池初始容量和最大容量JDBC Connection Poo的调优受制于 WebLogic Server线程数的设置和数据库 进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,

26、建议设置连接池的最大值等于或者略小于线程 数。同时为了减少新建连接的开销,将最小值和最大值设为一致;值等于WebLogic Server的执行线程数。|.>C&flfigwrif wenTaroetflndDeptov |MoniturnQ |CwibTQiJh tmI Gfnariil Ccnnflctlons |Thi* 芮脚 allows you to)donnEho connection ccnlgurtion JOBC 吻mddkn poollhlN*l CapacityTtin nuirtiirir ol ph iicd M日Ebsr丽: onneciions |&q

27、uot;如吋测 0 ond a posilrwi 32> hit integer i k crfi-ak whijn.slim this JDBC connection pc«JHlKimum网rhe tnaiHinum nunter of phEicsl dstetess comecioris (bebneM 0 and a positive1 32七 t inbeer) Uiat tms JDBC cormacfliQn pool tim conrainCapacky ikicriEiTwnff.The mcrerrtrit fbtiSfi o 的d 占 pciyt 枱弓工

28、细 infl口声)by hi< h mis .D5c CiXinwctiijn poor caipHity 百 口叩的H血 stMiirmm each* Tyt. 莎耳The algjnirim lk电 1 rcr r- irtaiiainqi in屯 prpard 5ht0m»=rit Gtxed mirt cajn leu rpuc(=i=- trw k:臼史ecrts- u砒 sldrrrLs mim nW- dttemnt& sn uwcL hiked kMpfi tut tint ikmi niwibtir of sttftiwis m tiw ctcg9t

29、?i«rr»nB c»ch* 呂 ia |ioThe nurrt'&r qi pr二pM* 3rd rail洼,旨 rtstrn&rts 引口i曰d in Bt© 订ncUh pTi£ ms# 巾亡日寻匸户三日吨performanr-fi)33133其他配置尽管JDBC Conn ection Pool提供了很多高级参数,在开发模式下比较有用,但 大部分在生产环境下不需调整。这里建议最好不要设置测试表,同时TestReserved Connections和 Test Released Connection也无需勾上。当然

30、如果你的数 据库不稳定,时断时续,你就可能需要上述的参数打开ir Tet R«s-Br¥ed CaimctiDnsSpecl Het wh«li»r WetoLogiic Serwr teab a connecfion before "d ng it 怀 the dient. (You must 冒pewi忖 a Test Tabb Name bdouv r Test Created ConnectionsSpci阳百 whether WebLogic* Smr bB>5b v Donrwnfcn alter QrMbhg it but

31、beFor adding i| tQ tti© list M eornections sellable iri the pool (You must specify b TestTatde Name )r Test Rjee&ed ConnectionreSpKifws whether WobLoaic Serwr toids a conwcionirtftuming it to this JDBC cciw凹ion pool (You moslspecify a Test Table Maine )3314 WEB 调优33141调整 WEB应用描述符WEB应用除代码之外的

32、调优比较简单,仅仅是对一些WEB应用描述符的调整。 首先关闭Session Monitoring Enabled仅仅在Cluster环境下设置Session复制(优先 使用内存复制),在保证应用正常运行的情况下,设置较短的Session超时时间。同 时生产环境下无需查看 Jsp和 servlet: JSPPage Check Se和 Servlet Reload Check Secs均设为-1,关闭JSPKeep Gen erated和JSPVerbose对性能也有帮助。此外, 还可以对 jsp 进行预编译 , 有两种方法: 激活 precompile 选项;使用 weblogic.appc

33、事先编译,建议采用后者。. 其他调优设置33151WebLogic文件描述符大小调整首先设置WEB主机系统的ulimit参数为unlimited,然后设置 WebLogic中 文件描述符的大小。在WL_HOME/bea/weblogic/common/bin 中打开文件 commEnv.sh,修改设 置文件描述符大小的指令,将默认的:ulimit - n 1024修改为:ulimit - n 8192332 维护管理. 启动 weblogic server启动管理服务器:执行 startAdmserver.sh 启动被管理服务器:执行 startManagedWeb

34、Logic.sh servername adminurl. 停止 weblogic server停止被管理服务器:执行 stopWebLogic.sh servername 启动被管理服务器:执行 stopWebLogic.sh. 登录和退出管理控制台管理服务器启动后可以在浏览器中登录管理控制台输入 URL: http:/hostname:port/console 或 https:/hostname:port/consolehost name:管理服务器的ip地址或DNS名port :管理服务器监听的端口如果管理服务器启动时使用SSL则使用https访问管理控制台

35、在弹出的窗口“ Co nsole Log in中输入用户名和密码登录3324性能监控登录控制台后点击 Servers-servername-Monitoring-PeformaneeIiMf fhmdK;1諷*砂加 £*«» 4XW*rCotmImS in U 衣 IE 1 TOIIWhLf a| 懵PWJ*Ip II4-甲仙”叶甲呼“ Min J I 311 1« GMT MM ft XkM71w<yre*i Hrt .血 e 矗*11?!JVM »Hp查看性能参数参数分析1) ldle Threads && Queue

36、 Length && Throughout正常情况下idle threads >0,queue Length为0,Throughout呈不规则变化曲线, Memory Usage呈适度频度的锯齿变化曲线。一般来说,对于正常配置的生产环境(线程数50200),如果idle threads <10,或者呈现不断降低的趋势,就应加以关注;空闲线程数与队列长度通常有如下关系:A、如果空闲线程数>0,贝U queue length =0 ;B、反之,如果queue length>0,则空闲线程数=0 ;2) Memory UsageMemory Usage = t

37、otalMemory() freeMemory()内存使用曲线反应了 JVM Heap内存使用的变化情况,可以结合其他三个值的变 化情况来判断server工作情况;比较理想的状态是适当频度的各种锯齿变化, 由于JVM GC多采用“ stop the world”机制,也就是垃圾回收时其他处理将暂停, 过度频繁的GC将明显降低server工作效率和性能表现。3.4. Oracle 维护Oracle Database又名Oracle RDBMS或简称Oracle。是甲骨文公司的一款 关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle 数据库系统是目前世界上流行的关系数据

38、库管理系统,系统可移植性好、 使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠 性好的 适应高吞吐量的数据库解决方案。3.4.1. 数据库性能优化Oracle 性能管理既是一种艺术,也是一种科学。从实用角度讲,它可以分 为两种类型, 主动式和被动式性能管理。 主动式性能管理涉及到特定系统实施初 期的设计和开发,包括硬件选择、性能及容量规划,海量存储系统的选择, I-O 子系统配置及优化,以及如何对不同组件进行定制,以满足 Oracle 数据库和应 用系统的复杂要求。被动式性能管理涉及到现有环境中不同组件的性能评估、故障排除和Oracle 环境的优化。本文旨在探讨如何进行被

39、动式性能调优,以便为 Oracle 性 能调优提供必要的指导, 从而避免仅仅通过反复尝试的方式进行性能调优, 提高 Oracle性能管理的效率。所以ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,须要 用户长时间的等待。获得满意的用户响应时间有两个途径: 一是减少系统服务时间,即提高数据库的吞吐量; 二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。 对于以上的两个问题,通常我们采用以下几个方面来进行改善:调整服务器内存分配。例如,可以根据数据库运行状况调整数据库系统全局 区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序 全局区(PGA区)的大小。调整

40、硬盘I/O问题,达到I/O负载均衡。调整运用程序结构设计。优化调整操作系统参数和使用资源管理器。SQL优化、诊断latch竞争、Rollback®ndo) Segment优化、提升block的效 率等等。341.1. 查看Oracle数据库性能查看Oracle数据库性能情况,包含:查看数据库的等待事件,查看死锁及 处理,查看cpu、I/O、内存性能,查看是否有僵死进程,查看行链接 /迁移,定 期做统计分析,查看缓冲区命中率,查看共享池命中率,查看排序区,查看日志 ORACLE产品日常运行维护年度服务项目缓冲区,总共十个部分。34111查看数据库的等待事件set pages 80set

41、 lines 120col eve nt for a40select sid,eve nt,p1,p2,p3,WAIT_TIME,SECONDSN _WAIT from v$session_wait where event notlike 'SQL%' and eve nt n ot like 'rdbms%'如果数据库长时间持续出现大量像 latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read 等等待事件时,需要对其进行分析,可能 存在问题的语句。3

42、4112查看消耗CPU最高的进程SET LINE 240SET VERIFY OFFCOLUMN SID FORMAT 999COLUMN PID FORMAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING "ORA USER"COLUMN PROGRAM FORMAT A29COLUMN SQLFORMAT A60COLUMN OSNAME FORMAT A9 HEADING "OS USER"SELECT PPID PID,S.SID SID,RSPID SPID,S.USERNA

43、MEUSERNAME,S.OSUSER OSNAME,.SERIAL#S_#,PTERMINAL,.PROGRAMPROGRAM,JBACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1,80) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WADDE :PS.PADDR ANDS.SQL_ADDRESS = A.ADDRESS (+) ASOPLIKE '%&1%'34113查看碎片程度高的表SQL> SELECTSegme nt_name table_name,COUNT(*)

44、exte nts FROM dba_segme ntsWHERE ownerNOT IN ('SYS', 'SYSTEM') GROUP BY segment_name HAVINGCOUNT(*)=(SELECT MAX(COUNT(*)FROM dba_segme nts GROUP BY segme nt_n ame);34114查看表空间的I/O比例SQL>SELECTDF.TABLESPACE_NAMNAME,DF.FILE_NAME"FILE",F.PHYRDS°YR,F.PHYBLKRDPBR,F.PHYWRTY

45、W, F.PHYBLKWRTPBW FROM V$FILESTATF,DBA_DATA_FILES DF WHEREF.FILE# = DF.FILED ORDER BY DF.TABLESPACE_NAME;34115查看文件系统的I/O比例SQL>SELECTSUBSTR(A.FILE#,1,2)"#",SUBSTR(A.NAME,1,30)"NAME",A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# =B.FILE#;34116

46、 Disk Read最高的SQL语句的获取SQL>SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS)WHERE ROWNUM<=5 desc;341.1.7.查找前十条性能差的sqlSELECT * FROM (SELECT PARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC)WHERE ROWNUM<10 ;34118等待时间最多的5个系

47、统等待事件的获取SELECT * FROM (SELECT * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%'ORDER BYTOTAL_WAITS DESC) WHERE ROWNUM<=5;.9.查看运行很久的SQLCOLUMN USERNAME FORMAT A12COLUMN OPNAME FORMAT A16COLUMN PROGRESS FORMAT A8SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*1O0 TOTALWORK,0) |'%' ASPR

48、OGRESS,TIME_REMAINING,SQL_TEXTOM V$SESSION_LONGOPS V$SQLWHERETIME_REMAINING <> 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE=HASH_VALUE;341110查看死锁及处理查询目前锁对象信息:col sid for 999999col user name for a10col schema name for a10col osuser for a16col mach ine for a16col term inal for a20col owner for a

49、10col object_ name for a30col object_type for a10select sid,serial#,username,SCHEMANAME,osuser,MACHINE,termi nal,PROGRAM,ow ner,object_ name,object_type,o.object_idfrom dba_objects o,v$locked_object l,v$sessi on swhere o.object_id=l.object_id and s.sid=l.sessio nd;oracle 级 kill 掉该 sessionalter syste

50、m kill session '&sid,&serial#'操作系统级kill掉session#>kill -9 pid341111.查看数据库cpu I/O、内存性能记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并查看这些信息,判断资源使用情况。CPU使用情况:rootsale8 # toptop - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29Tasks: 353total, 2 running, 35

51、1 sleep ing, 0 stopped, 0 zombieCpu(s):1.2% us, 0.1% sy, 0.0% ni, 988% icd0.0% wa, 0.0% hi, 0.0% siMem: 16404472k total, 12887428k used, 3517044k free, 60796k buffersSwap: 8385920k total, 665576k used, 7720344k free, 10358384k cached PID USER30495 oracle32501 oracle 32503 oracle注意上面的加粗字体部分,此部分内容表示系统

52、剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常内存使用情况:# free -mTotalusedfreesharedbufferscachedMem:20261958670761556-/+ buffers/cache:3261700Swap:5992925900如上所示,total表示系统总内存,used表示系统使用的内存,free表示系统剩 余内存,当剩余内存低于总内存的10%时视为异常。系统负载情况:#uptime12:08:37 up 162 days, 23:33, 15 users,load average: 0.01,0.15,

53、 0.10如上所示,load average部分表示系统负载,后面的3个数值如果有高于2.5的 时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。341112.查看是否有僵死进程select spid from v$process where addr not in (select paddr from v$sessi on);有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。341113查看行链接/迁移Sql>select table_ name ,nu m_rows,cha in_cnt From dba_tables Where own er='CTAIS

54、2' An dcha in_cn t<>0;注:含有long raw列的表有行链接是正常的,找到迁移行保存到chained_rows表中,如没有该表执行./rdbms/admin/utlchain.sqlSql>a nalyze table table name list cha ined rows;可通过表 chained_rows中table_name,head_rowid看出哪些行是迁移行如: Sql>create table aa as selecta.* from sb_zsxx a,chained_rows b where a.rowid=b.hea

55、d_rowid an db.table_ name ='SB_ZSXX'sql>delete from sb_zsxx where rowid in (selecthead_rowid from chained_rows where table_name = 'SB_ZSXX');sql >in sert into sb_zsxx select * from cha in ed_row where table_ name = 'SB_ZSXX'341114定期做统计分析对于采用Oracle Cost-Based-Optimizer的系

56、统,需要定期对数据对象的统计信息 进行采集更新,使优化器可以根据准备的信息作出正确的expla in pla n。在以下情况更需要进行统计信息的更新:应用发生变化;大规模数据迁移、历史数据迁出、其他数据的导入等;数据量发生变化。查看表或索引的统计信息是否需更新,如:Sql>Select table_ name ,nu m_rows,last_a nalyzed From user_tables wheretable_ name ='DJ_NSRXX'sql>select count(*) from DJ_NSRXX如 num_rows 和 count(*)如果行数相

57、差很多, 则该表需要更新统计信息,建议一周做一次统计信息收集,如:Sql>execsys.dbms_stats.gather_schema_stats(ow nn ame=>'CTAIS2',cascade=>TRUE,degr>e4);341115.查看日志缓冲区SQL>select n ame,value from v$sysstat where n ame in ('redo en tries','redo buffer allocati on retries');如果 redo buffer allocati

58、on retries/redo entries 超过 1%,则需要增大 log_buffer。3412性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行了阐述, 被动调优主要有以下方法进行。确定合理的性能优化目标测试并记录当前的性能指标确定当前存在的Oracle性能瓶颈(Oracle中何处存在等待,哪个 SQL语句 与此有关)确定当前的操作系统瓶颈优化相关的组件(应用、数据库、I/O、连接OS及其它)跟踪并实施变化管理制度测试并记录目前的性能指标重复第3到第7步直至达到既定的优化目标不要对并非性能瓶颈的部分进行优化,否则可能引起额外的问题。正如任何聪明 的人会告诉你的:“如果还未坏,千万不要修”。更重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论