版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.PAGE45/NUMPAGES45WORD完美格式ORACLE数据库日常运行维护年度服务项目方案书..目录.123项目背景及目标51.1项目背景51.2项目目标5需求分析5项目总体方案73.1数据库性能优化8检查Oracle数据库性能8.检查数据库的等待事件9DiskRead最高的SQL语句的获取9查找前十条性能差的sql9等待时间最多的5个系统等待事件的获取9检查运行很久的SQL9检查消耗CPU最高的进程10检查碎片程度高的表10检查表空间的I/O比例10检查文件系统的I/O比例10.检查死锁及处理10检查数据库cpu、I/O、内存性能11查看是否有僵死进程12检查行链接/迁移13定期做统计分析13检查缓冲区命中率14检查共享池命中率14检查排序区14检查日志缓冲区15性能调优及方法15.寻找问题根源16System_Event事件16Session_Event事件16Session_Wait17应用优化17.例程调优17I-O优化19竞争优化19O-S监控20.3.2数据库备份恢复21检查Oracle数据库备份结果21.检查数据库备份日志信息21检查backup卷中文件产生的时间22检查oracle用户的email22.3.3数据库迁移22.3.4数据库运维23检查数据库基本状况23.检查Oracle实例状态23检查Oracle服务进程24检查Oracle监听状态24.检查系统和oracle日志文件25.检查操作系统日志文件25检查oracle日志文件26检查Oracle核心转储目录26检查Root用户和Oracle用户的email27.检查Oracle对象状态27.检查Oracle控制文件状态27检查Oracle在线日志状态27检查Oracle表空间的状态28检查Oracle所有数据文件状态28检查无效对象29检查所有回滚段状态29.检查Oracle相关资源的使用情况30.检查Oracle初始化文件中相关参数值30检查数据库连接情况31检查系统磁盘空间32检查表空间使用情况32检查一些扩展异常的对象33检查system表空间内的内容33检查对象的下一扩展与表空间的最大扩展值34.检查数据库安全性34.检查系统安全日志信息35检查用户修改密码35.其他检查36.OracleJob是否有失败36监控数据量的增长情况36检查失效的索引37检查不起作用的约束37检查无效的trigger37.4项目实施及管理384.1项目实施方案38项目实施策略38项目实施计划38项目交付文档39.交付要求39提交文件资料39.5支持服务体系40售后服务40电话支持40.现场服务40电子邮件支持41紧急故障处理415.1.6ORACLE定期巡检服务〔24次/年41.6培训方案41培训方式42教师、教材使用及授课语言42培训计划44培训分工44.1项目背景及目标1.1项目背景xxx信息化建设经过多年的发展和完善,已经建立成熟的网络环境及生产经营管理的各类应用系统,目前全厂在线运行的PC近600台,近年来建设的企业资产管理、基建MIS管理系统、全面预算管理系统、生产综合管理系统技术监督管理系统等若干应用信息系统多数是基于Oracle数据库系统的应用。这些Oracle数据库产品的标准服务都已经过了服务期。而各系统随着数据量的逐年增加,陆续出现了性能问题,有必要进行数据库系统的升级及性能优化,以确保应用系统的正常运行,为全厂员工提供更好的信息服务。1.2项目目标.尽早发现性能瓶颈,及时调整,保障数据库稳定高效工作;对各个系统数据库进行补丁升级服务,安装补丁前需要对补丁的可行性及风险即你想那个分析,并制定升级计划和应急回退计划。同时要做好系统备份准备及详细的测试工作,确保系统的稳定性、安全性,保障系统业务数据的安全;数据库架构的合理化;提升应用系统性能,完成各系统数据库的性能调优工作,包括:外部资源调优、行的重新安排调优、SQL性能调优、表格和索引存储参数设置调优等。各业务持续性得到有效的保证。.2需求分析通过对xxx技术要求进行详实的分析以及xxx科技对xxx信息系统建设的了.解,xxxOracle产品日常运行维护项目主要从如下几个方面进行:1、由于xxx有些系统软件建设的较早,目前存在不同版本的数据库共存的现象,包括:Oralce8、Oracle9I以及Oracle10g等。而Oracle9I版本之前的数据库SQL编程语句还不是业界通用的标准化的语句,它与后面版本的SQL编程语句有很大的差别,所以在这方面的性能优化需要做好充分备份的准备。2、正是由于这些系统建设的较早,基于当时的实际情况,应用系统或数据库都还存在一些不足,针对这些情况软件开发商都开发出相应的补丁提供给用户进行升级以防范风险。所以在对各个系统数据库进行补丁升级服务之前,需要对补丁的可行性、安全性及风险进行充分的测试和分析。并制定相关的应急预案及数据库升级计划和应急回退计划,同时还需要做好系统备份准备和详细的测试工作,以确保系统的稳定性、安全性,从而保证系统业务数据的安全;3、如上所说,这些系统建设的较为长久,由于长时间的运行各个系统存在一些冗余,由于冗余的存在使得这些系统数据库需要进行性能的优化,包括外部资源优化、行的重新安排以及SQL性能优化、表格和索引存储参数等需要重新进行设置优化。4、对于当前的一些应用如:企业资产管理系统<EAM>、基建MIS管理系统、全面预算管理系统、生产综合管理系统、企业门户〔EIP/EAI系统、综合指标统计分析系统、燃料管理信息系统、标准化管理信息系统、档案管理信息系统、安健环管理系统、技术监督管理子系统、IT运维服务系统、SIS系统接口数据库、生产图纸管理系统等等所有这些系统都需要重新进行整理并形成一个完善的文档资料。5、由于这些数据库系统承载着xxx非常重要的业务系统数据,所以在日常维护中需要非常仔细,每周、每月、每季都需要有相应的巡检记录,需要详细记载以下一些内容:.监控数据库对象的空间扩展情况监控数据量的增长情况系统健康检查,检查以下内容:..数据库对象有效性检查查看是否有危害到安全策略的问题。查看alert、Sqlnet等日志并归档报错日志分析表和索引查看对数据库会产生危害的增长速度检查表空间碎片数据库性能调整预测数据库将来的性能调整和维护工作后续空间.3项目总体方案建立在Oracle数据库上的关键业务系统,是当今企业的核心应用。如何改善其性能和可用性,是包括系统设计、维护和管理人员的最大挑战。为了更好地维护系统和数据库,必须随时了解系统和数据库的运行状况。但由于数据库维护具有一定的复杂性,增加了维护工作的难度。所以数据库维护需要借助一些相关的工具,优秀的数据库管理工具,可以大大简化生产环境下的应用维护和管理,提高IT人员的工作效率。数据库管理人员借助相应的工具可以主动、迅速、方便的监控系统的运行。基于我公司多年在Oracle数据库的使用及研究经验上,对于Oracle数据库的管理,主要包括三方面的内容:.系统诊断:了解当前运行的Oracle的状态,发现数据库性能瓶颈;空间管理:即数据库存储结构的调优,包括定期检查数据库的存储结构,发现Oracle数据库存储中的主要问题<如数据库碎片>,进行碎片重组和数据分布以及容量规划等;调优SQL,分析对系统性能影响比较大的SQL语句,调整SQL语句的执.行效率。使SQL存取尽可能少的数据块。下面我们将从以下这几个方面详细阐述:.3.1数据库性能优化Oracle性能管理既是一种艺术,也是一种科学。从实用角度讲,它可以分为两种类型,主动式和被动式性能管理。主动式性能管理涉及到特定系统实施初期的设计和开发,包括硬件选择、性能及容量规划,海量存储系统的选择,I-O子系统配置及优化,以及如何对不同组件进行定制,以满足Oracle数据库和应用系统的复杂要求。被动式性能管理涉及到现有环境中不同组件的性能评估、故障排除和Oracle环境的优化。本文旨在探讨如何进行被动式性能调优,以便为Oracle性能调优提供必要的指导,从而避免仅仅通过反复尝试的方式进行性能调优,提高Oracle性能管理的效率。所以ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,须要用户长时间的等待。获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。对于以上的两个问题,通常我们采用以下几个方面来进行改善:.调整服务器内存分配。例如,可以根据数据库运行状况调整数据库系统全局区〔SGA区的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区〔PGA区的大小。调整硬盘I/O问题,达到I/O负载均衡。调整运用程序结构设计优化调整操作系统参数和使用资源管理器SQL优化、诊断latch竞争、Rollback<undo>Segment优化、提升block.的效率等等检查Oracle数据库性能检查Oracle数据库性能情况,包含:检查数据库的等待事件,检查死锁及处理,检查cpu、I/O、内存性能,查看是否有僵死进程,检查行链接/迁移,定期做统计分析,检查缓冲区命中率,检查共享池命中率,检查排序区,检查日志.机密文件版权所有2012第8页共45页.ORACLE产品日常运行维护年度服务项目缓冲区,总共十个部分。检查数据库的等待事件setpages80setlines120coleventfora40selectsid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAITfromv$session_waitwhereeventnotlike'SQL%'andeventnotlike'rdbms%';如果数据库长时间持续出现大量像latchfree,enqueue,bufferbusywaits,dbfilesequentialread,dbfilescatteredread等等待事件时,需要对其进行分析,可能存在问题的语句。DiskRead最高的SQL语句的获取SQL>SELECTSQL_TEXTFROM<SELECT*FROMV$SQLAREAORDERBYDISK_READS>WHEREROWNUM<=5desc;查找前十条性能差的sqlSELECT*FROM<SELECTPARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXTFROMV$SQLAREAORDERBYDISK_READSDESC>WHEREROWNUM<10;等待时间最多的5个系统等待事件的获取SELECT*FROM<SELECT*FROMV$SYSTEM_EVENTWHEREEVENTNOTLIKE'SQL%'ORDERBYTOTAL_WAITSDESC>WHEREROWNUM<=5;检查运行很久的SQLCOLUMNUSERNAMEFORMATA12COLUMNOPNAMEFORMATA16COLUMNPROGRESSFORMATA8SELECTUSERNAME,SID,OPNAME,ROUND<SOFAR*100/TOTALWORK,0>||'%'ASPROGRESS,TIME_REMAINING,SQL_TEXTFROMV$SESSION_LONGOPS,V$SQLWHERE.机密文件版权所有2012第9页共45页.ORACLE产品日常运行维护年度服务项目TIME_REMAINING<>0ANDSQL_ADDRESS=ADDRESSANDSQL_HASH_VALUE=HASH_VALUE;检查消耗CPU最高的进程SETLINE240SETVERIFYOFFCOLUMNSIDFORMAT999COLUMNPIDFORMAT999COLUMNS_#FORMAT999COLUMNUSERNAMEFORMATA9HEADING"ORAUSER"COLUMNPROGRAMFORMATA29COLUMNSQLFORMATA60COLUMNOSNAMEFORMATA9HEADING"OSUSER"SELECTP.PIDPID,S.SIDSID,P.SPIDSPID,S.USERNAMEUSERNAME,S.OSUSEROSNAME,P.SERIAL#S_#,P.TERMINAL,P.PROGRAMPROGRAM,P.BACKGROUND,S.STATUS,RTRIM<SUBSTR<A.SQL_TEXT,1,80>>SQLFROMV$PROCESSP,V$SESSIONS,V$SQLAREAAWHEREP.ADDR=S.PADDRANDS.SQL_ADDRESS=A.ADDRESS<+>ANDP.SPIDLIKE'%&1%';检查碎片程度高的表SQL>SELECTsegment_nametable_name,COUNT<*>extentsFROMdba_segmentsWHEREownerNOTIN<'SYS','SYSTEM'>GROUPBYsegment_nameHAVINGCOUNT<*>=<SELECTMAX<COUNT<*>>FROMdba_segmentsGROUPBYsegment_name>;检查表空间的I/O比例SQL>SELECTDF.TABLESPACE_NAMENAME,DF.FILE_NAME"FILE",F.PHYRDSPYR,F.PHYBLKRDPBR,F.PHYWRTSPYW,F.PHYBLKWRTPBWFROMV$FILESTATF,DBA_DATA_FILESDFWHEREF.FILE#=DF.FILE_IDORDERBYDF.TABLESPACE_NAME;检查文件系统的I/O比例.SQL>SELECTSUBSTR<A.FILE#,1,2>"#",SUBSTR<A.NAME,1,30>"NAME",.A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTSFROMV$DATAFILEA,V$FILESTATBWHEREA.FILE#=B.FILE#;检查死锁及处理查询目前锁对象信息:.机密文件版权所有2012第10页共45页.ORACLE产品日常运行维护年度服务项目colsidfor999999colusernamefora10colschemanamefora10colosuserfora16colmachinefora16colterminalfora20colownerfora10colobject_namefora30colobject_typefora10selectsid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,o.object_idfromdba_objectso,v$locked_objectl,v$sessionswhereo.object_id=l.object_idands.sid=l.session_id;oracle级kill掉该session:altersystemkillsession'&sid,&serial#';操作系统级kill掉session:#>kill-9pid检查数据库cpu、I/O、内存性能记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。.CPU使用情况:.[root@sale8~]#toptop-10:29:35up73days,19:54,1user,loadaverage:0.37,0.38,0.29Tasks:353total,2running,351sleeping,0stopped,0zombie.Cpu<s>:1.2%us,0.1%sy,0.0%ni,98.8%id,0.0%wa,0.0%hi,0.0%si.Mem:16404472ktotal,12887428kused,3517044kfree,60796kbuffersSwap:8385920ktotal,665576kused,7720344kfree,10358384kcached.PIDUSER30495oracle32501oracle32503oraclePR151515NIVIRTRESSHRS%CPU%MEMTIME+COMMAND08329m866m861mR105.47:53.90oracle08328m1.7g1.7gS210.61:58.38oracle08329m1.6g1.6gS210.22:06.62oracle.。。。。。。。注意上面的蓝色字体部分,此部分内容表示系统剩余的cpu,当其平均值下降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常。.机密文件版权所有2012第11页共45页.ORACLE产品日常运行维护年度服务项目.内存使用情况:.#free-m.totalusedfreesharedbufferscached.Mem:20261958670761556.-/+buffers/cache:Swap:59923269217005900.如上所示,蓝色部分表示系统总内存,红色部分表示系统使用的内存,黄色部分表示系统剩余内存,当剩余内存低于总内存的10%时视为异常。.系统I/O情况:.#iostat-k13.Linux2.6.9-22.ELsmp<AS14>07/29/2012.avg-cpu:%user%nice%sys%iowait%idle.0.160.000.050.3699.43.Device:sdatps3.33kB_read/s13.16kB_wrtn/s50.25kB_read94483478kB_wrtn360665804.avg-cpu:%user%nice%sys%iowait%idle.0.000.000.000.00100.00.Device:sdatps0.00kB_read/s0.00kB_wrtn/s0.00kB_read0kB_wrtn0.如上所示,蓝色字体部分表示磁盘读写情况,红色字体部分为cpuIO等待情况。.系统负载情况:.#uptime.12:08:37up162days,23:33,15users,loadaverage:0.01,0.15,0.10.如上所示,蓝体字部分表示系统负载,后面的3个数值如果有高于2.5的时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。查看是否有僵死进程selectspidfromv$processwhereaddrnotin<selectpaddrfromv$session>;有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。.机密文件版权所有2012第12页共45页.ORACLE产品日常运行维护年度服务项目检查行链接/迁移Sql>selecttable_name,num_rows,chain_cntFromdba_tablesWhereowner='CTAIS2'Andchain_cnt<>0;注:含有longraw列的表有行链接是正常的,找到迁移行保存到chained_rows表中,如没有该表执行../rdbms/admin/utlchain.sqlSql>analyzetabletablenamelistchainedrows;可通过表chained_rows中table_name,head_rowid看出哪些行是迁移行如:Sql>createtableaaasselecta.*fromsb_zsxxa,chained_rowsbwherea.rowid=b.head_rowidandb.table_name='SB_ZSXX';sql>deletefromsb_zsxxwhererowidin<selecthead_rowidfromchained_rowswheretable_name='SB_ZSXX'>;sql>insertintosb_zsxxselect*fromchained_rowwheretable_name='SB_ZSXX';定期做统计分析对于采用OracleCost-Based-Optimizer的系统,需要定期对数据对象的统计信息进行采集更新,使优化器可以根据准备的信息作出正确的explainplan。在以下情况更需要进行统计信息的更新:.应用发生变化;大规模数据迁移、历史数据迁出、其他数据的导入等;数据量发生变化。.查看表或索引的统计信息是否需更新,如:Sql>Selecttable_name,num_rows,last_analyzedFromuser_tableswheretable_name='DJ_NSRXX'sql>selectcount<*>fromDJ_NSRXX如num_rows和count<*>如果行数相差很多,则该表需要更新统计信息,建议一周做一次统计信息收集,如:Sql>execsys.dbms_stats.gather_schema_stats<ownname=>'CTAIS2',cascade=>TRUE,degree=>4>;.机密文件版权所有2012第13页共45页.ORACLE产品日常运行维护年度服务项目检查缓冲区命中率SQL>SELECTa.VALUE+b.VALUElogical_reads,c.VALUEphys_reads,round<100*<1-c.value/<a.value+b.value>>,4>hit_ratioFROMv$sysstata,v$sysstatb,v$sysstatcWHEREa.NAME='dbblockgets'ANDb.NAME='consistentgets'ANDc.NAME='physicalreads';LOGICAL_READSPHYS_READSHIT_RATIO12736457057119143094.4104如果命中率低于90%则需加大数据库参数db_cache_size。检查共享池命中率SQL>selectsum<pinhits>/sum<pins>*100fromv$librarycache;SUM<PINHITS>/SUM<PINS>*10099.5294474716798如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数sharedpool的大小。检查排序区SQL>selectname,valuefromv$sysstatwherenamelike'%sort%';.NAMEVALUE.sorts<memory>sorts<disk>sorts<rows>如果613553482264742084disk/<memoty+row>的比例过高,则需要调整.sort_area_size<workarea_size_policy=false或pga_aggregate_target<workarea_size_policy=true>。.机密文件版权所有2012第14页共45页.ORACLE产品日常运行维护年度服务项目检查日志缓冲区SQL>selectname,valuefromv$sysstatwherenamein<'redoentries','redobufferallocationretries'>;.NAMEredoentriesredobufferallocationretriesVALUE27663705880.如果redobufferallocationretries/redoentries超过1%,则需要增大log_buffer。性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行了阐述,被动调优主要有以下方法进行。.确定合理的性能优化目标测试并记录当前的性能指标确定当前存在的Oracle性能瓶颈<Oracle中何处存在等待,哪个SQL语句与此有关>确定当前的操作系统瓶颈优化相关的组件<应用、数据库、I/O、连接OS及其它>跟踪并实施变化管理制度测试并记录目前的性能指标重复第3到第7步直至达到既定的优化目标.不要对并非性能瓶颈的部分进行优化,否则可能引起额外的问题。正如任何聪明的人会告诉你的:"如果还未坏,千万不要修"。更重要的是,一旦既定的优化目标已经达到,就务必停止所有的优化。获取Oracle的性能指标<测试前及测试后>必须在峰值处理时测试并获取系统在优化前和优化后的性能指标。数据采集不应在数据库instance刚刚起动后进行。同时,测试数据应在峰值期间每过15分钟进行一次。初始化参数.机密文件版权所有2012第15页共45页.ORACLE产品日常运行维护年度服务项目TIMED_STATISTICS应该被设为TRUE。通过运行以下脚本开始快照:$ORACLE_HOME/rdbms/admin/utlbstat.sql.通过运行以下脚本结束快照:$ORACLE_HOME/rdbms/admin/utlestat.sql.完成utlestat.sql操作后,会在当前目录中生成名为"report.txt"的文件,包含系统的性能数据。该报告包括每15分钟捕获的所有与Oracle例程相关的参数。寻找问题根源如上所述,通过查看v$system_event事件开始系统事件的问题诊断。下一步是查看v$session_event,找出引起或经历等待事件的进程。最后一步是通过v$session_wait获得事件的细节。同时,应该进一步通过OS进行深入分析,了解核心的CPU、内存和IO状态参数。最后,结合两种不同的诊断的结论,找出系统瓶颈所在。System_Event事件v$system_event可以从全局的角度查看Oracle系统中的所有事件。尽管它并不包括任何进程级的信息<当前或历史>,但却可以显示上次例程弹出后总的等待时间。这种动态性能视图中的数据,会在下次例程起动时清零。出于这种原因,这种视力中的数据应该在不同时段进行抽样。Session_Event事件v$session_event视图在进程级提供与v$system_event相同的信息<即,SID等>。这种视图可以从"system-wideevents"级进一步钻取,到达进程级,以确哪个进程引起或经历了等待事件。.机密文件版权所有2012第16页共45页.ORACLE产品日常运行维护年度服务项目Session_Waitv$session_wait视图在特定事件的进程级提供低层次的信息挖掘。不同于其它一些视图,这种方式可以"实时"获取进程级的等待信息。这是真正有用的信息。切记,每次查看这一视图得到的结果可能不一样。这可能与数据库中当前的活动有关。应用优化从统计<和现实>的角度看,80%的Oracle系统性能问题可以通过SQL代码优化来解决。任何应用优化的过程,不外乎是索引优化、全表扫描、并行机制改进和选择正确数据组合方法的过程。这正是要达到最佳应用性能所必须考虑的因素。没有SQL的优化,就无法实现高性能的应用。良好的SQL语句可以减少CPU资源的消耗,提高响应速度。同时,优化后的SQL语句还可以提高应用的可扩展性,这是除增加大量内存外,任何其它硬件手段也无法实现的。例程调优.需要配置的主要初始化参数.以下是一些已知与例程优化关系最密切的一些核心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读取和写.机密文件版权所有2012第17页共45页.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、USER_SOURCE得以确认,其大小通过查询DBA_OBJECT_SIZE了解。另外,为了确定存储PL/SQL是否被置于内存,可以查询动态性能视图V$DB_OBJECT_SIZE。内时,包DBMS_SHARED_POOL中的程序大小可被用于确定应用中大包的规模。4>LOG_BUFFER.机密文件版权所有2012第18页共45页.ORACLE产品日常运行维护年度服务项目根据字节设定,该参数定义了SGA缓冲区中redolog的大小。缺省值通常是数据库块大小的四倍,这对于多数环境并不是最佳的。对于中型的Oracle环境,其结构应该为512Kb左右。对该存储结构而言,更大并不意味着更好。超过1MB就可能有问题。需要监控V$SESSION_WAIT中logbufferspace的等待事件,以优化该内存结构。需要提醒的是,在线redolog文件的大小设置不当,会引起redo请求的等待。5>DB_WRITERS该参数可以针对所有文件系统支持,且不可使用DirectI-O的Oracle实施设定。这并不需要与rawpartitions一起使用,因为异步I-O更加。建议将该参数设定为<2*独立磁盘驱动器数量/卷>。该参数只有在report.txt中的"averagewritequeuelength"持续高于1时,才需要设定。在Oracle8.0和更高版本中,该参数已不再被支持,而为其它两个名为DB_WRITER_PROCESSES和DBWR_IO_SLAVES的参数取代。若需要设置DB_WRITER_PROCESSES值高于8,则DB_WRITER_PROCESSES可被设为1,且DBWR_IO_SLAVES可被设为"n",其中n的值必须设置为<2*独立磁盘驱动器数量/卷>.2I-O优化I-O优化是系统优化中的一个关键步骤,还涉及到其它任务,将文件在不同驱动器/卷中进行分布,采用优化分区技术、确定I-O子系统瓶颈、确定控制器瓶颈并根据应用的类型选择最佳的RAID级。I-O优化应该在全面了解Oracle及OracleRDBMS结构之后进行。应该在进行I-O优化前后实施I-O数据监控,如平均服务时间,IOPS,平均磁盘队列长度等。竞争优化多数与Oracle有关的竞争问题可以通过主动配置管理相关的初始化参数进行。不恰当地配置init.ora中的锁参数可能引起竞争。为了不打破其中的平衡,所需的参数可进行配置并主动得以处理。包括表在内的数据库对象可能存在两个竞争点。第一个是所配置的.机密文件版权所有2012第19页共45页.ORACLE产品日常运行维护年度服务项目"freelists"的数量<缺省值为1>。freelist结构维护着表中可用于插入的块。对于存在大量同步插入的表,有必要配置该结构。为了以主动方式处理freelist竞争,必须在建立表时配置FREELISTS。可考虑的最佳值为<2*CPU数量>。V$WAITSTAT不可能指示存在freelist竞争,除非存在freelist组,而这种设置只存在于OracleParallelServer中。即便如此,也无法了解哪个表存在竞争中。主动式的freelist竞争调优可以事先预防问题出现。资源竞争的第二个来源与索引有关,即对象块头中配置的事务槽数量。事务槽是块头中的区域,是事务处理进程采用自身识别号进行注册,以便任何被修改的更能够通过特定事务槽数量在低层得以识别的地方。如果所有现存的事务槽已经被其它事务占用,服务器器进程会从块的PCTFREE中请求23个字节,建立一个新的槽。这种情况适用于存在大量同步事务的对象。对于事务槽的竞争,需要设置INITRANS参数。对于块大小为8K的数据库,多数情况下,4为最佳设置,占用的空间仅为92字节,却可以大大减少运行时故障和性能问题。.4O-S监控数据库忙时,应该对操作系统进行监控,因为操作系统的性能指标会揭示数据库活动的性质及其对系统的影响。例如,为了了解CPU的利用率,可以通过systemactivityreporter<sar–uintervalfrequency>、mpstat<SunSolaris>,top<多数UNIX>、osview<SGIIrix>及vmstat等命令。Sar和vmstat也可被用于确定包括内存使用率、I-O参数、队列等待、读取/交换区活动等信息。在Solaris上,mpstatutility也可用于获取前面提到的CPU利用率数据。Solaris上的Adrian性能管理工具也很有用。可以利用其中的一到多个工具来确定系统的性能状况,找出可能存在的瓶颈。Oracle数据库性能的管理需要遵循系统的方法论,以确保所有核心问题得以解决。多数问题可以事先得以管理。了解与O-S相关的问题是成功的关键。勿需置疑,系统硬件配置上的良好平衡也是至关重要的。必须承认,80%的系统性能问题可以通过书写更好的SQL语句来解决。来文试图探究其余20%中可能覆盖的内容。同时,必须遵守严格的规定,在调优目标达到后终止所有努力。了解自己想到何处是重要的,更重要的是,要知道自己何时到达了目的地。.机密文件版权所有2012第20页共45页.ORACLE产品日常运行维护年度服务项目3.2数据库备份恢复为了保证客户数据库系统的数据安全性,降低各种故障、灾难给客户带来的数据丢失,根据客户系统实际情况,协助客户规划实施符合客户工作要求的完善的备份恢复方案,以确保客户数据库系统的安全可靠运行。数据库的恢复与备份主要有以下几点:.恢复管理器<RMAN>,能使备份恢复操作自动化Oracle数据泵,用以数据库的逻辑备份用户管理允许用户通过操作系统命令手动备份数据库。各种各样的其他的数据库备份和恢复软件,增强了Oracle的备份实用程序.Oracle备份时应注意事项:当数据库处于运行状态时的热备份时,不备份活动事务;使用比如Oracle工具〔OracleRAMN或者其他的第三方软件〔IBM/Tivoli的数据存储管理器压缩Oracle备份数据;如果维持数据存储空间比备份和恢复数据库时间更重要的话,可以考虑使用二进制压缩。检查Oracle数据库备份结果检查Oracle数据库备份结果,是日常运维中必不可少的一个环节。包含:检查数据库备份日志信息,检查backup卷中文件产生的时间,检查oracle用户的email,总共三个部分。检查数据库备份日志信息假设:备份的临时目录为/backup/hotbakup,我们需要检查2012年7月22日的备份结果,则用下面的命令来检查:#cat/backup/hotbackup/hotbackup-09-7-22.log|grep–ierror备份脚本的日志文件为hotbackup-月份-日期-年份.log,在备份的临时目录下面。如果文件中存在"ERROR:",则表明备份没有成功,存在问题需要检查。.机密文件版权所有2012第21页共45页.ORACLE产品日常运行维护年度服务项目检查backup卷中文件产生的时间#ls–lt/backup/hotbackupbackup卷是备份的临时目录,查看输出结果中文件的日期,都应当是在当天凌晨由热备份脚本产生的。如果时间不对则表明热备份脚本没执行成功。检查oracle用户的email#tail–n300/var/mail/oracle热备份脚本是通过Oracle用户的cron去执行的。cron执行完后操作系统就会发一条Email通知Oracle用户任务已经完成。查看Oracleemail中今天凌晨部分有无ORA-,Error,Failed等出错信息,如果有则表明备份不正常。3.3数据库迁移数据迁移是日常运维过程中存在的一个必不可少的应急方案。日常维护过程中,由于硬件的原因或其它一些外在因素需要对数据进行迁移,迁移到更加高级的主机上、迁移到远程的机房上、迁移到不同的平台下等等一些情况。对于数据迁移xxx科技公司有非常成熟的方案,从以下几种方式我们可以充分了解其优缺点:.exp/imp:这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入;优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间;存储迁移:这种情况下,数据文件、控制文件、日志文件、spfile都在存储上〔一般情况下是裸设备,我们可以直接把存储挂到新机器上,然后在新机器上启动数据库;优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库、切存储、起库的时间。缺点是要求新老库都是同一平台,是相同的数据库版本。.机密文件版权所有2012第22页共45页.ORACLE产品日常运行维护年度服务项目.利用dataguard迁移;优点是停机时间短,停机时间为switchover的时间。缺点:主机必须双份、存储必须双份。用rman做迁移,这种方式比较适合于跨文件系统的迁移,如同平台下的.不同文件系统。3.4数据库运维数据库的运维主要结合xxx系统的实际情况,提供切实可行的运维建设机制,内容覆盖ORACLE数据库的日常维护、紧急故障处理,软件升级等,客户可依据服务内容进行相应的定制。我们将会提供全面的、针对性的服务解决方案,以保证客户系统稳定、高效、可靠的运行,以达到对业务系统的有效支持。检查数据库基本状况对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。检查Oracle实例状态SQL>selectinstance_name,host_name,startup_time,status,database_statusfromv$instance;.INSTANCE_NAMEHOST_NAMESTARTUP_TIMESTATUSDATABASE_STATUS..CKDBAS142012-5-79:3OPENACTIVE.其中"STATUS"表示Oracle当前的实例状态,必须为"OPEN";"DATABASE_STATUS"表示Oracle当前数据库的状态,必须为"ACTIVE"。SQL>selectname,log_mode,open_modefromv$database;.NAMECKDBLOG_MODEARCHIVELOGOPEN_MODEREADWRITE.其中"LOG_MODE"表示Oracle当前的归档方式。"ARCHIVELOG"表示数据库运行在归档模式下,"NOARCHIVELOG"表示数据库运行在非归档模式下。在我.机密文件版权所有2012第23页共45页.ORACLE产品日常运行维护年度服务项目们的系统中数据库必须运行在归档方式下。检查Oracle服务进程$ps-ef|grepora_|grep-vgrep&&ps-ef|grepora_|grep-vgrep|wc–l.oracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracleoracle29602962296429662972297429762978298029822994299630003625315942380211111111111111110May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0May07?0Jul20?005:09?00:01:02ora_pmon_CKDB00:00:22ora_psp0_CKDB00:00:00ora_mman_CKDB00:03:20ora_dbw0_CKDB00:03:45ora_smon_CKDB00:00:00ora_reco_CKDB00:01:24ora_cjq0_CKDB00:06:17ora_mmon_CKDB00:07:26ora_mmnl_CKDB00:00:00ora_d000_CKDB00:00:28ora_arc0_CKDB00:00:29ora_arc1_CKDB00:00:00ora_qmnc_CKDB00:01:40ora_q000_CKDB00:00:00ora_q003_CKDB00:00:33ora_j000_CKDB.在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:.Oracle写数据文件的进程,输出显示为:"ora_dbw0_CKDB"Oracle写日志文件的进程,输出显示为:"ora_lgwr_CKDB"Oracle监听实例状态的进程,输出显示为:"ora_smon_CKDB"Oracle监听客户端连接进程状态的进程,输出显示为:"ora_pmon_CKDB"Oracle进行归档的进程,输出显示为:"ora_arc0_CKDB"Oracle进行检查点的进程,输出显示为:"ora_ckpt_CKDB"Oracle进行恢复的进程,输出显示为:"ora_reco_CKDB".检查Oracle监听状态/home/oracle>lsnrctlstatusLSNRCTLforLinux:Version.0-Productionon23-JUL-201214:11:53.机密文件版权所有2012第24页共45页.ORACLE产品日常运行维护年度服务项目Copyright<c>1991,2005,Oracle.Allrightsreserved.Connectingto<ADDRESS=<PROTOCOL=tcp><HOST=><PORT=1521>>STATUSoftheLISTENERAliasLISTENER.VersionTNSLSNRforLinux:Version.0-Production.StartDate07-MAY-201209:35:52Uptime77days4hr.36min.0secTraceLeveloffSecurityON:LocalOSAuthentication.SNMPOFF.ListeningEndpointsSummary...<DESCRIPTION=<ADDRESS=<PROTOCOL=tcp><HOST=AS14><PORT=1521>>>ServicesSummary...Service"CKDB"has1instance<s>.Instance"CKDB",statusREADY,has1handler<s>forthisservice...Service"CKDBXDB"has1instance<s>.Instance"CKDB",statusREADY,has1handler<s>forthisservice...Service"CKDB_XPT"has1instance<s>.Instance"CKDB",statusREADY,has1handler<s>forthisservice...Thecommandcompletedsuccessfully"ServicesSummary"项表示Oracle的监听进程正在监听哪些数据库实例,输出显示中至少应该有"CKDB"这一项。检查监听进程是否存在:.[oracle@AS14~]$ps-ef|greplsn|grep-vgrep.oracle2954.LISTENER–inherit检查系统和oracle日志文件检查相关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 扶贫房转让合同协议书
- 工地员工协议合同范本
- 幼儿园顶岗合同协议书
- 建筑公司个人合同范本
- 工程咨询管理合同范本
- 建筑公司投标合同范本
- 承包绘画合作合同范本
- 市区路网测量合同范本
- 工地土方清运合同范本
- 工程发包服务合同范本
- 税务人员考试题库及答案
- 专项突破:平面直角坐标系中面积、规律、新定义、几何综合问题(解析版)
- 2025年医疗健康行业医疗旅游营销
- 淘宝分销合同模板7篇
- 2025年数学广东一模试卷及答案
- 智算中心大模型训练部署方案
- 2025年中国BBU备用电源行业市场全景分析及前景机遇研判报告
- 幼儿园大班社会教案《影子变变变》含反思
- 医院物业管理工作汇报
- DB42∕T 1774-2021 等厚度水泥土搅拌墙技术规程
- 巡查员考核管理办法
评论
0/150
提交评论