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

下载本文档

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

文档简介

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

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

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

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

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

6、现 LifeKeeper登录界面:.可以使用 root 用户登录,也可以使用新建的用户进行登录。检测 LifeKeeper 集群运行状态可以使用 lcdstatus 命令对 LifeKeeper 集群的当前运行状态进行查看,命令格式:lcdstatus -q -d <主机名 >该程序向stdout 输出在 LifeKeeper 资源层次配置状态和通信路径的状态.选项 -q 表示输出采用简略的形式(建议使用该选项)选项 d 表示要查看的主机,缺X 查看本机管理 LifeKeeper 中的资源注意:如果能运行 LifeKeeper GUI,则使用其提供菜单命令执行相应操作;在执行命令行

7、启动 / 停止资源前,一定先使用 lcdstatus 命令确认资源的实际状态。a) 启用资源 (In-Service)可以使用命令:./perform_action-t <资源标记名 >-a restore将资源标记名所对应的资源在本机上投入服务(启动) 。如果该资源在命令使用前已经在另一台机器上处于运行状态, 则本命令执行的结果相当于执行了一次手.工切换!如果该资源在命令使用前是处于停止状态(即在备机上执行本命令) ,则本命令执行的结果相当于执行了一次手工切换b) 停止资源 (out-of-service)可以使用命令:./perform_action-t <资源标记名 &

8、gt;-a remove将资源标记名所对应的资源在本机上停止服务。如果该资源在命令使用前已经在另一台机器上处于运行状态,则本命令执行不产生任何结果注意:在执行命令行前后,一定先使用lcdstatus 命令确认资源的当前状态。命令停止 / 启动本地的资源命令中的 <资源标记名 >是区分大小写的一定要等待命令完成,注意命令的输出。详细用法见在线帮助手册。3.2. SQL SERVER 维护计算机系统各种软、硬件故障、用户误操作以及恶意破坏是不可避免的,这些影响到数据的正确性甚至造成数据损失、服务器崩溃等致命后果。 数据库的备份对保证系统的可靠性具有重要的作用。下面会根据执行强度对维护任

9、务及其相应的程序进行分类描述,执行强度用不同的时间间隔定义,包括每天、每周、每月和每季度,能够建立起良好的维护实务,确保 SQL Server数据库性能和安全。每天的例行维护任务需要数据库管理员密切关注的维护任务,最好每天都查看一下, 这样可以确保系统的可靠性、可用性、运行性能和安全。每天的例行维护任务包括:1、查看是不是所有被请求的SQL Server服务都正常运行。2、查看日常备份日志中成功、警告或者失败记录。.3、查看 Windows 事件日志有没有错误记录。4、查看 SQL Server日志有没有安全警告记录,例如非法登录。5、执行完全备份或差异备份。6、在设置了完全恢复模型或大容量日

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

11、理作业和维护计划等操作的历史数据。9、如果需要,手动增长数据库或事务日志文件10、清除执行维护计划残留下来的文件。每月或每季度的维护任务有一些维护计划不需要执行得过于频繁,可以每个月或每个季度执行一次。但是请不要以为这些任务不需要天天执行就无足轻重,这些任务可以确保数据库环境的健康,所以不要轻视以下这些维护任务:1、在测试环境中执行备份还原操作。2、将历史数据归档。.3、分析收集的性能统计数据,与基准值相比较。3、查看并更新维护文档。4、查看并安装最新的SQL Server补丁和补丁包。5、如果运行簇、数据库镜像或日志传送,则监测故障转移。6、验证备份和还原进程是否遵循已定义的服务等级协议。7

12、、更新 SQL Server构建指南。8、更新 SQL Server灾难恢复文档。9、更新维护计划列表10、修改管理员口令。11、修改 SQL Server服务帐户口令。3.3. WebLogic维护性能调优设定执行队列的溢出条件Weblogic Server 提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置下面几项:队列长度:此

13、值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。队列长度阈值百分比: 此值表示溢出条件, 在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为 Weblogic 一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影.响程序的性能。最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。在实际的应用场景中,应根据具体情况适当的调整以上参数。设定队列监测行为Weblogic Server能够自动

14、监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作, 也无法再执行新请求。 如果执行队列中的所有执行线程都变为“阻塞”状态, Weblogic server可能改变状态为“警告”或“严重”状态。如果 Weblogic server 变为“严重”状态,可以通过 Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities 文档。通过启动管理控制台,在域(如:mydomain)> 服务器 > server实例(如:myserver)>配置 > 调整下可配置下面几项:阻塞线程最长时间: 在

15、此服务器将线程诊断为阻塞线程之前, 线程必须连续工作的时间长度 (秒 )。默认情况下, WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。阻塞线程计时器间隔: WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 "阻塞线程最长时间 " 字段中指定的时间长度的间隔时间 (秒 )。默认情况下, WebLogic Server 将此时间间隔设置为 600 秒。尽量使用本地 IO 库WebLogic Server有两套套接字复用器: Java版和本地库。采用小型本地库更有效 ,尽量激活 Enable Native IO(默认 ),此

16、时 UNIX默认使用 CPUs+1个线程 ,Window 下为双倍 CPU。如果系统不能加载本地库,将会抛出此时只能使用Java 套接字复用器,可以调整socket readers 百分比 ,默 认为 33%。 该 参数可以在 Console Server Tuning Configuration 配置栏里设置,配置完,重新启动 WebLogic Server即可。.调整默认执行线程数名称开发模式产品模式推荐个数Execute默认的执行线程为15默认的执行线程为25200Queues在管理控制台修改默认执行队列线程数的步骤如下:如果管理服务器没有运行,先启动。访问管理控制台。展开左边面板的Se

17、rvers 节点,显示 Server列表。右击 Server,在弹出菜单中选择View Execute Queues ,就会在右边面板显示有执行队列的表用来修改。注意:你只能修改默认的执行队列或者用户定义的执行队列。在 Name 列,直接点击默认执行队列名称,显示配置标签用来修改执行队列数。填下适当的线程数。点击 Apply,保存刚才的修改。.重启 Server,使新的执行队列设置生效。JDBC 调优驱动程序类型选择Oracle提供 thin 驱动和 oci 驱动 ,从性能上来讲 ,oci 驱动强于 thin 驱动 ,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大 ,随着 thin

18、 驱动的不断改进 ,这一弱势将得到弥补。 而 thin 驱动的移植性明显强于oci 驱动。所以在通常情况下建议使用thin 驱动调节连接池初始容量和最大容量JDBC Connection Pool的调优受制于 WebLogic Server线程数的设置和数据库进程数 ,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好 ,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致; 值等于 WebLogicServer 的执行线程数。.其他配置尽管 JDBC Connection Pool 提供了很多高级参数 ,在

19、开发模式下比较有用 ,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时TestReserved Connections和 Test Released Connections也无需勾上。当然如果你的数据库不稳定 ,时断时续 ,你就可能需要上述的参数打开WEB 调优调整 WEB应用描述符WEB应用除代码之外的调优比较简单,仅仅是对一些 WEB应用描述符的调整。首先关闭 Session Monitoring Enabled,仅仅在 Cluster环境下设置 Session复制 (优先使用内存复制 ),在保证应用正常运行的情况下,设置较短的Session 超时时间。同.时生产环境下无需

20、查看Jsp和 servlet:JSPPage Check Secs和 Servlet Reload CheckSecs均设为 -1,关闭 JSPKeep Generated 和 JSPVerbose对性能也有帮助。此外,还可以对 jsp 进行预编译 ,有两种方法:激活 precompile 选项;使用 weblogic.appc事先编译,建议采用后者。其他调优设置文件描述符大小调整首先设置 WEB主机系统的 ulimit 参数为 unlimited ,然后设置 WebLogic 中文件描述符的大小。在WL_HOME/bea/weblogic/common/bin 中打开文件 commEnv.s

21、h,修改设置文件描述符大小的指令,将默认的:ulimit n 1024 修改为: ulimit n 8192维护管理启动 webl ogic server启动管理服务器:执行startAdmserver.sh启动被管理服务器:执行startManagedWebLogic.sh servername adminurl停止 webl ogic server停止被管理服务器:执行 stopWebLogic.sh servername 启动被管理服务器:执行 stopWebLogic.sh登录和退出管理控制台管理服务器启动后可以在浏览器中登录管理控制台输入 URL:http:/hostname:por

22、t/console或 https:/hostname:port/console.hostname:管理服务器的ip 地址或 DNS名port :管理服务器监听的端口如果管理服务器启动时使用SSL,则使用 https 访问管理控制台在弹出的窗口“ Console Login 中“输入用户名和密码登录性能监控查看性能参数登录控制台后点击Servers-servername-Monitoring-Performance参数分析1)Idle Threads && Queue Length && Throughout正常情况下idle threads >0 ,que

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

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

25、高效率、可靠性好的适应高吞吐量的数据库解决方案。数据库性能优化Oracle 性能管理既是一种艺术, 也是一种科学。 从实用角度讲, 它可以分为两种类型,主动式和被动式性能管理。 主动式性能管理涉及到特定系统实施初期的设计和开发,包括硬件选择、性能及容量规划,海量存储系统的选择,I-O 子系统配置及优化,以及如何对不同组件进行定制,以满足Oracle 数据库和应用系统的复杂要求。被动式性能管理涉及到现有环境中不同组件的性能评估、故障排除和Oracle环境的优化。本文旨在探讨如何进行被动式性能调优,以便为Oracle 性能调优提供必要的指导, 从而避免仅仅通过反复尝试的方式进行性能调优,提高 Or

26、acle性能管理的效率。所以 ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,须要用户长时间的等待。获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。对于以上的两个问题,通常我们采用以下几个方面来进行改善:.调整服务器内存分配。例如,可以根据数据库运行状况调整数据库系统全局区(SGA 区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区( PGA 区)的大小。调整硬盘I/O 问题,达到I/O 负载均衡。调整运用程序结构设计。优化调整操作系统参数和使用资源管理器。SQL 优化、诊断la

27、tch 竞争、 Rollback(undo) Segment 优化、提升block 的效率等等。查看 Oracle 数据库性能查看 Oracle 数据库性能情况,包含:查看数据库的等待事件,查看死锁及处理,查看cpu、 I/O、内存性能,查看是否有僵死进程,查看行链接/ 迁移,定期做统计分析,查看缓冲区命中率,查看共享池命中率,查看排序区,查看日志ORACLE产品日常运行维护年度服务项目缓冲区,总共十个部分。查看数据库的等待事件set pages 80set lines 120col event for a40select sid,event,p1,p2,p3,WAIT_TIME,SECOND

28、S_IN_WAIT from v$session_wait where event notlike 'SQL%' and event not like 'rdbms%'如果数据库长时间持续出现大量像latch free,enqueue,buffer busy waits,db filesequential read,db file scattered read 等等待事件时,需要对其进行分析,可能存在问题的语句。查看消耗 CPU 最高的进程SET LINE 240SET VERIFY OFF.COLUMN SID FORMAT 999COLUMN PID FOR

29、MAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING "ORA USER"COLUMN PROGRAM FORMAT A29COLUMN SQLFORMAT A60COLUMN OSNAME FORMAT A9 HEADING "OS USER"SELECT P.PIDPID,S.SID SID,P.SPIDSPID,S.USERNAMEUSERNAME,S.OSUSEROSNAME,P.SERIAL#S_#,P.TERMINAL,P.ROGRAMPROGRAM,P.BACKGROUN

30、D,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1,80) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE.ADDR =PS.PADDR ANDS.SQL_ADDRESS = A.ADDRESS (+) AND.SPIDPLIKE '%&1%'查看碎片程度高的表SQL> SELECTsegment_name table_name,COUNT(*) extents FROM dba_segments WHERE ownerNOT IN ('SYS', 'SYSTEM

31、') GROUP BY segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*)FROM dba_segments GROUP BY segment_name);查看表空间的I/O 比例SQL>SELECTDF.TABLESPACE_NAMENAME,DF.FILE_NAME"FILE",F.PHYRDSPYR,F.PHYBLKRDPBR,F.PHYWRTSPYW, F.PHYBLKWRT PBWFROMV$FILESTATF,DBA_DATA_FILES DF WHEREF.FILE# = DF.FILE_ID OR

32、DER BY DF.TABLESPACE_NAME;查看文件系统的I/O 比例SQL>SELECTSUBSTR(A.FILE#,1,2)"#",SUBSTR(A.NAME,1,30)"NAME",A.STATUS,A.BYTE.S,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# =B.FILE#;最高的 SQL语句的获取SQL>SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) W

33、HERE ROWNUM<=5 desc;查找前十条性能差的sqlSELECT * FROM (SELECT PARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC)WHERE ROWNUM<10 ;等待时间最多的5 个系统等待事件的获取SELECT * FROM (SELECT * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%'ORDER BYTOTAL_WAITS

34、DESC) WHERE ROWNUM<=5;查看运行很久的SQLCOLUMN USERNAME FORMAT A12COLUMN OPNAME FORMAT A16COLUMN PROGRESS FORMAT A8SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100/ TOTALWORK,0) | '%' ASPROGRESS,TIME_REMAINING,SQL_TEXTFROM V$SESSION_LONGOPS, V$SQL WHERETIME_REMAINING <> 0 AND SQL_ADDRESS=ADDRESS

35、AND SQL_HASH_VALUE = HASH_VALUE;.查看死锁及处理查询目前锁对象信息:col sid for 999999col username for a10col schemaname for a10col osuser for a16col machine for a16col terminal for a20col owner for a10col object_name for a30col object_type for a10select sid,serial#,username,SCHEMANAME,osuser,MACHINE, terminal,PROGRA

36、M,owner,object_name,object_type,o.object_id from dba_objects o,v$locked_object l,v$session swhere o.object_id=l.object_id and s.sid=l.session_id; oracle 级 kill 掉该 session:alter system kill session '&sid,&serial#'操作系统级kill 掉 session:#>kill -9 pid查看数据库 cpu、I/O 、内存性能记录数据库的cpu 使用、 IO、

37、内存等使用情况,使用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, 351 sleeping,0 stopped,0 zombieCpu(s):1.2% us,0.1% sy, 0.0% ni, 98.8% id,0.0% wa,0.0% hi,0.0% si.Mem:16404472k total, 128

38、87428k used, 3517044k free,60796k buffersSwap:8385920k total,665576k used,7720344k free, 10358384k cachedPID USER30495 oracle32501 oracle32503 oracle注意上面的加粗字体部分, 此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU 使用率异常,需记录下该数值,并将状态记为异常内存使用情况:# free -mTotalusedfreesharedbufferscached-/+ buffers/cache:3261700Swap:5

39、992925900如上所示, total 表示系统总内存, used 表示系统使用的内存, free 表示系统剩余内存,当剩余内存低于总内存的10%时视为异常。系统负载情况:#uptime12:08:37 up 162 days, 23:33, 15 users,load average: 0.01, 0.15, 0.10如上所示,load average 部分表示系统负载, 后面的3 个数值如果有高于2.5 的时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。查看是否有僵死进程select spid from v$process where addr not in (select

40、 paddr from v$session);有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。.查看行链接 / 迁移Sql>select table_name,num_rows,chain_cnt From dba_tables Where owner='CTAIS2'Andchain_cnt<>0;注:含有 long raw 列的表有行链接是正常的 ,找到迁移行保存到 chained_rows 表中 , 如没有该表执行 ./rdbms/admin/utlchain.sql Sql>analyze table tablename list cha

41、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.head_rowid andb.table_name ='SB_ZSXX'sql>delete from sb_zsxx where rowid in (selecthead_rowid from chained_rows where table_name = 'SB_ZSX

42、X');sql>insertinto sb_zsxx select * from chained_row where table_name = 'SB_ZSXX'定期做统计分析对于采用Oracle Cost-Based-Optimizer的系统,需要定期对数据对象的统计信息进行采集更新,使优化器可以根据准备的信息作出正确的explain plan。在以下情况更需要进行统计信息的更新:应用发生变化;大规模数据迁移、历史数据迁出、其他数据的导入等;数据量发生变化。查看表或索引的统计信息是否需更新,如:Sql>Select table_name,num_rows,

43、last_analyzed From user_tables wheretable_name ='DJ_NSRXX'sql>select count(*) from DJ_NSRXX如 num_rows 和 count(*) 如果行数相差很多 ,则该表需要更新统计信息,建议一周做一次统计信息收集,如:Sql>exec4);.查看日志缓冲区SQL> select name,value from v$sysstat where name in ('redo entries','redo bufferallocationretries'

44、;);如 果redobufferallocationretries/redoentries超 过1% ,则 需要 增 大log_buffer。性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行了阐述,被动调优主要有以下方法进行。确定合理的性能优化目标测试并记录当前的性能指标确定当前存在的 Oracle 性能瓶颈 (Oracle 中何处存在等待,哪个 SQL语句与此有关 )确定当前的操作系统瓶颈优化相关的组件(应用、数据库、 I/O 、连接 OS 及其它 )跟踪并实施变化管理制度测试并记录目前的性能指标重复第 3 到第 7 步直至达到既定的优化目标不要对并非性能瓶颈的部分

45、进行优化, 否则可能引起额外的问题。 正如任何聪明的人会告诉你的:“如果还未坏,千万不要修” 。更重要的是,一旦既定的优化目标已经达到,就务必停止所有的优化。获取Oracle 的性能指标(测试前及测试后 )必须在峰值处理时测试并获取系统在优化前和优化后的性能指标。数据采集不应在数据库instance 刚刚起动后进行。同时,测试数据应在峰 值期间每 过15 分钟 进行一 次。初始化参数TIMED_STATISTICS应该被设为TRUE。通过运行以下脚本开始快照:$ORACLE_HOME/rdbms/admin/utlbstat.sql.通过运行以下脚本结束快照:.$ORACLE_HOME/rdb

46、ms/admin/utlestat.sql.完成 utlestat.sql 操作后,会在当前目录中生成名为“report.txt ”的文件,包含系统的性能数据。该报告包括每15 分钟捕获的所有与Oracle 例程相关的参数。寻找问题根源如上所述,通过查看v$system_event 事件开始系统事件的问题诊断。下一步是查看v$session_event,找出引起或经历等待事件的进程。最后一步是通过v$session_wait 获得事件的细节。同时,应该进一步通过OS 进行深入分析,了解核心的 CPU、内存和 IO 状态参数。最后,结合两种不同的诊断的结论,找出系统瓶颈所在。应用优化从统计 (和

47、现实 ) 的角度看, 80% 的 Oracle 系统性能问题可以通过SQL 代码优化来解决。任何应用优化的过程,不外乎是索引优化、全表扫描、并行机制改进和选择正确数据组合方法的过程。这正是要达到最佳应用性能所必须考虑的因素。没有SQL 的优化,就无法实现高性能的应用。良好的SQL 语句可以减少CPU资源的消耗,提高响应速度。同时,优化后的SQL 语句还可以提高应用的可扩展性,这是除增加大量内存外,任何其它硬件手段也无法实现的。优化I-O 优化是系统优化中的一个关键步骤,还涉及到其它任务,将文件在不同驱动器 / 卷中进行分布,采用优化分区技术、确定I-O 子系统瓶颈、确定控制器瓶颈并根据应用的类

48、型选择最佳的RAID 级。 I-O 优化应该在全面了解Oracle 及Oracle RDBMS结构之后进行。应该在进行I-O 优化前后实施I-O 数据监控,如平均服务时间, IOPS,平均磁盘队列长度等。监控数据库忙时,应该对操作系统进行监控, 因为操作系统的性能指标会揭示数据库.活动的性质及其对系统的影响。 例如,为了了解 CPU 的利用率,可以通过 system activity reporter (sar u interval frequency) 、 mpstat (SunSolaris), top (多数UNIX)、 osview (SGI Irix) 及 vmstat 等命令。 Sar 和 vmstat 也可被用于确定包括内存使用率、I-O 参数、队列等待、读取 / 交换区活动等信息。 在 Solaris 上,mpstat utility 也可用于获取前面提到的 CPU 利用率数据。 Solaris 上的 Adrian 性能管理工具也很有用。 可以利用其中的一到多个工具来确定系统的性能状况, 找出可能存在的瓶颈。Oracle 数据库性

温馨提示

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

评论

0/150

提交评论