Oracle数据库日常维护手册xyr.docx
Evaluation Warning: The document was created with Spire.Doc for .NET.密级:保密密 编号: Oraclle10gg数据库维护手册日期: 编写: 核对: 更新: 目 录1.检查查数据库基基本状况41.1.检查Oraacle实实例状态41.2.检查Oraacle服服务进程41.3.检查Oraacle监监听状态52.检查查系统和OORACLLE日志文文件62.1.检查操作作系统日志志文件62.2.检查oraacle日日志文件62.3.检查Oraacle核核心转储目目录72.4.检查Rooot用户和和Oraccle用户户的emaail73.检查查ORACCLE对象象状态73.1.检查Oraacle控控制文件状状态73.2.检查Oraacle在在线日志状状态83.3.检查Oraacle表表空间的状状态83.4.检查Oraacle所所有数据文文件状态83.5.检查无效效对象93.6.检查所有有回滚段状状态104.检查查ORACCLE相关关资源的使使用情况104.1.检查Oraacle初初始化文件件中相关参参数值104.2.检查数据据库连接情情况114.3.检查系统统磁盘空间间124.4.检查表空空间使用情情况124.5.检查一些些扩展异常常的对象134.6.检查sysstem表表空间内的的内容144.7.检查对象象的下一扩扩展与表空空间的最大大扩展值145.检查查ORACCLE数据据库备份结结果145.1.检查数据据库备份日日志信息155.2.检查bacckup卷卷中文件产产生的时间间155.3.检查oraacle用用户的emmail156.检查查ORACCLE数据据库性能156.1.检查数据据库的等待待事件156.2.Diskk Reaad最高的的SQL语句句的获取156.3.查找前十十条性能差差的sqll166.4.等待时间间最多的55个系统等等待事件的的获取166.5.检查运行行很久的SSQL166.6.检查消耗耗CPU最高高的进程166.7.检查碎片片程度高的的表176.8.检查表空空间的 II/O 比比例176.9.检查文件件系统的 I/O 比例176.10.检查死锁锁及处理176.11.检查数据据库cpuu、I/O、内内存性能186.12.查看是否否有僵死进进程196.13.检查行链链接/迁移196.14.定期做统统计分析196.15.检查缓冲冲区命中率率206.16.检查共享享池命中率率206.17.检查排序序区206.18.检查日志志缓冲区217.检查查数据库安安全性217.1.检查系统统安全日志志信息217.2.检查用户户修改密码码218.其他他检查228.1.检查当前前cronntab任任务是否正正常228.2.Oraccle JJob是否否有失败228.3.监控数据据量的增长长情况228.4.检查失效效的索引238.5.检查不起起作用的约约束238.6.检查无效效的triiggerr23巡检内容1. 检查数据库库基本状况况在本节中主主要对数据据库的基本本状况进行行检查,其其中包含:检查Orraclee实例状态态,检查OOraclle服务进进程,检查查Oraccle监听听进程,共共三个部分分。1.1. 检查Oraacle实实例状态 SQL> seleect iinstaance_namee,hosst_naame,sstarttup_ttime,stattus,ddatabbase_stattus ffrom v$innstannce; INSTAANCE_NAMEE HOSST_NAAME STARRTUP_TIMEE STATTUS DAATABAASE_SSTATUUS- - - - - -CKDB AS14 20009-5-7 9:3 OPENN ACTIIVE其中“STTATUSS”表示Oraacle当当前的实例例状态,必必须为“OOPEN”;“DATTABASSE_STTATUSS”表示Oraacle当当前数据库库的状态,必必须为“AACTIVVE”。 SQL> seleect nname,log_modee,opeen_moode ffrom v$daatabaase; NAME LOGG_MODDE OPPEN_MMODE- - -CKDB ARCCHIVEELOG REEAD WWRITEE其中“LOOG_MOODE”表表示Oraacle当当前的归档档方式。“ARCHHIVELLOG”表表示数据库库运行在归归档模式下下,“NOOARCHHIVELLOG”表表示数据库库运行在非非归档模式式下。在我我们的系统统中数据库库必须运行行在归档方方式下。1.2. 检查Oraacle服服务进程$ps -ef|ggrep ora_|greep -vv greep&&pps -eef|grrep oora_|grepp -v grepp|wc loraclle 29660 1 0 MMay077 ? 000:01:02 oora_ppmon_CKDBBoraclle 29662 1 0 MMay077 ? 000:00:22 oora_ppsp0_CKDBBoraclle 29664 1 0 MMay077 ? 000:00:00 oora_mmman_CKDBBoraclle 29666 1 0 MMay077 ? 000:03:20 oora_ddbw0_CKDBBoraclle 29668 1 0 MMay077 ? 000:04:29 oora_llgwr_CKDBBoraclle 29770 1 0 MMay077 ? 000:10:31 oora_cckpt_CKDBBoraclle 29772 1 0 MMay077 ? 000:03:45 oora_ssmon_CKDBBoraclle 29774 1 0 MMay077 ? 000:00:00 oora_rreco_CKDBBoraclle 29776 1 0 MMay077 ? 000:01:24 oora_ccjq0_CKDBBoraclle 29778 1 0 MMay077 ? 000:06:17 oora_mmmon_CKDBBoraclle 29880 1 0 MMay077 ? 000:07:26 oora_mmmnl_CKDBBoraclle 29882 1 0 MMay077 ? 000:00:00 oora_dd000_CKDBBoraclle 29884 1 0 MMay077 ? 000:00:00 oora_ss000_CKDBBoraclle 29994 1 0 MMay077 ? 000:00:28 oora_aarc0_CKDBBoraclle 29996 1 0 MMay077 ? 000:00:29 oora_aarc1_CKDBBoraclle 30000 1 0 MMay077 ? 000:00:00 oora_qqmnc_CKDBBoraclle 36225 1 0 MMay077 ? 000:01:40 oora_qq000_CKDBBoraclle 315994 1 0 JJul200 ? 000:00:00 oora_qq003_CKDBBoraclle 238002 1 0 005:099 ? 000:00:33 oora_jj000_CKDBB19在检查Orraclee的进程命命令输出后后,输出显显示至少应应包括以下下一些进程程: . Orraclee写数据文文件的进程程,输出显显示为:“ora_dbw00_CKDDB” . OOraclle写日志志文件的进进程,输出出显示为:“oraa_lgwwr_ CKDBB” . OOraclle监听实实例状态的的进程,输输出显示为为:“orra_smmon_ CKDBB” . OOraclle监听客客户端连接接进程状态态的进程,输输出显示为为:“orra_pmmon_ CKDBB” . OOraclle进行归归档的进程程,输出显显示为:“ora_arc00_ CKDBB” . OOraclle进行检检查点的进进程,输出出显示为:“oraa_ckppt_ CKDB” . Orraclee进行恢复复的进程,输输出显示为为:“orra_reeco_ CKDBB”1.3. 检查Oraacle监监听状态/homee/oraacle>>lsnrrctl stattusLSNRCCTL ffor LLinuxx: Veersioon 100.2.00.2.00 - PProduuctioon onn 23-JUL-20099 14:11:553Copyrrightt (c) 19991, 22005, Oraacle. Alll riightss resserveed.Conneectinng too (ADDDRESSS=(PPROTOOCOL=tcp)(HOSST=)(PORTT=15221)STATUUS off thee LISSTENEER-Aliass LISSTENEERVersiion TNSSLSNRR forr Linnux: Verssion 10.22.0.22.0 - ProoducttionStartt Datte 07-MAY-20099 09:35:552Uptimme 77 dayss 4 hhr. 336 miin. 00 seccTracee Levvel offfSecurrity ON: Loccal OOS AuuthennticaationnSNMP OFFFListeener Paraameteer Fiile /daata/ooraclle/prroducct/100.2.00/nettworkk/admmin/llisteener.oraListeener Log Filee /daata/ooraclle/prroducct/100.2.00/nettworkk/logg/lissteneer.loogListeeningg Enddpoinnts SSummaary. (DEESCRIIPTIOON=(AADDREESS=(PROTTOCOLL=tcpp)(HOOST=AAS14)(PORRT=15521)Serviices Summmary.Serviice ""CKDBB" haas 1 insttancee(s). Insstancce "CCKDB"", sttatuss REAADY, has 1 haandleer(s) forr thiis seervicce.Serviice ""CKDBBXDB"" hass 1 iinstaance(s). Insstancce "CCKDB"", sttatuss REAADY, has 1 haandleer(s) forr thiis seervicce.Serviice ""CKDBB_XPTT" haas 1 insttancee(s). Insstancce "CCKDB"", sttatuss REAADY, has 1 haandleer(s) forr thiis seervicce.The ccommaand ccomplletedd succcesssfullly“Servvicess Summmaryy”项表示示Oraccle的监监听进程正正在监听哪哪些数据库库实例,输输出显示中中至少应该该有“CKDBB”这一项。检查监听进进程是否存存在:oraccleAAS14 $ ps -ef|grepp lsnn|greep -vv greeporaclle 29554 1 0 MMay077 ? 000:01:17 /dataa/oraacle/prodduct/10.22.0/bbin/ttnslssnr LLISTEENER inhheritt2. 检查系统和和oraccle日志志文件在本节主要要检查相关关的日志文文件,包含含:检查操操作系统的的日志文件件,检查OOraclle日志文文件,检查查Oraccle核心心转储目录录,检查RRoot用用户和Orraclee用户的emmail,总总共四个部部分。2.1. 检查操作系系统日志文文件# catt /vaar/loog/meessagges |grepp faiiled查看是否有有与Oraacle用用户相关的的出错信息息。2.2. 检查oraacle日日志文件oraccleAAS14 $ cat /datta/orraclee/admmin/CCKDB/bdummp/allert_CKDBB.logg |grrep oora-oraccleAAS14 $ cat /datta/orraclee/admmin/CCKDB/bdummp/allert_CKDBB.logg |grrep eerroraccleAAS14 $ cat /datta/orraclee/admmin/CCKDB/bdummp/allert_CKDBB.logg |grrep ffail Oraclle在运行行过程中,会会在警告日日志文件(alerrt_SIID.loog)中记记录数据库库的一些运运行情况:数据库的的启动、关关闭,启动动时的非缺缺省参数;数据库的的重做日志志切换情况况,记录每每次切换的的时间,及及如果因为为检查点(checckpoiint)操作没有有执行完成成造成不能能切换,会会记录不能能切换的原原因;对数数据库进行行的某些操操作,如创创建或删除除表空间、增加数据据文件;数数据库发生生的错误,如如表空间不不够、出现现坏块、数数据库内部部错误(OORA600)等。定期检检查日志文文件,根据据日志中发发现的问题题及时进行行处理:问题处理启动参数不对检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁Listeener日日志:$OORACLLE_HOOME/nnetwoork/llog2.3. 检查Oraacle核核心转储目目录$ls $ORACCLE_BBASE/admiin/CKKDB/ccdumpp/*.ttrc|wwc -ll $ls $ORACCLE_BBASE/admiin/CKKDB/uudumpp/*.ttrc|wwc ll如果上面命命令的结果果每天都在在增长,则则说明Orraclee进程经常常发生核心心转储。这这说明某些些用户进程程或者数据据库后台进进程由于无无法处理的的原因而异异常退出。频繁的核核心转储特特别是数据据库后台进进程的核心心转储会导导致数据库库异常终止止。2.4. 检查Rooot用户和和Oraccle用户户的emaail#taill n 2000 /vvar/mmail/roott#taill n 2000 /vvar/mmail/oraccle查看有无与与Oraccle用户户相关的出出错信息。3. 检查Oraacle对对象状态在本节主要要检查相关关Oraccle对象象的状态,包包含:检查查Oraccle控制制文件状态态,检查OOraclle在线日日志状态,检检查Oraacle表表空间的状状态,检查查Oraccle所有有数据文件件状态,检检查Oraacle所所有表、索索引、存储储过程、触触发器、包包等对象的的状态,检检查Oraacle所所有回滚段段的状态,总总共六个部部分。3.1. 检查Oraacle控控制文件状状态SQL> seleect sstatuus,naame ffrom v$coontroolfille; STATUUS NNAME- - /dataa/oraadataa/CKDDB/coontrool01.ctl /dataa/oraadataa/CKDDB/coontrool02.ctl /dataa/oraadataa/CKDDB/coontrool03.ctl输出结果应应该有3条以上(包包含3条)的记记录,“SSTATUUS”应该该为空。状状态为空表表示控制文文件状态正正常。 3.2. 检查Oraacle在在线日志状状态SQL> seleect ggroupp#,sttatuss,typpe,meemberr froom v$logffile; GGROUPP# STTATUSS TYYPE MEEMBERR- - - - 3 ONNLINEE /ddata/oraddata/CKDBB/reddo03.log 2 ONNLINEE /ddata/oraddata/CKDBB/reddo02.log 1 ONNLINEE /ddata/oraddata/CKDBB/reddo01.log 4 ONNLINEE /ddata/oraddata/CKDBB/reddo04.log 5 ONNLINEE /ddata/oraddata/CKDBB/reddo05.log 6 ONNLINEE /ddata/oraddata/CKDBB/reddo06.log 6 rowws seelectted输出结果应应该有3条以上(包包含3条)记录录,“STTATUSS”应该为为非“INNVALIID”,非非“DELLETEDD”。 注:“STTATUSS”显示为为空表示正正常。3.3. 检查Oraacle表表空间的状状态SQL> seleect ttableespacce_naame,sstatuus frrom ddba_ttableespacces;TABLEESPACCE_NAAME STTATUSS- -SYSTEEM ONNLINEEUNDOTTBS1 ONNLINEESYSAUUX ONNLINEETEMP ONNLINEEUSERSS ONNLINEESJ1 ONNLINEEADM_IINDEXX ONNLINEEHOME_DATAA ONNLINEEHOME_INDEEX ONNLINEEPHOTOO_DATTA ONNLINEEPHOTOO_INDDEX ONNLINEE。输出结果中中STATTUS应该该都为ONNLINEE。3.4. 检查Oraacle所所有数据文文件状态SQL> seleect nname,stattus ffrom v$daatafiile; NAME STTATUSS- -/dataa/oraadataa/CKDDB/syystemm01.ddbf SYYSTEMM/dataa/oraadataa/CKDDB/unndotbbs01.dbf ONNLINEE/dataa/oraadataa/CKDDB/syysauxx01.ddbf ONNLINEE/dataa/oraadataa/CKDDB/ussers001.dbbf ONNLINEE/dataa/oraadataa/CKDDB/sjj.dbff ONNLINEE/dataa/oraadataa/CKDDB/HOOME_DDATA11.dbff ONNLINEE/dataa/oraadataa/CKDDB/HOOME_IINDEXX1.dbbf ONNLINEE/dataa/oraadataa/CKDDB/PHHOTO_DATAA1.dbbf ONNLINEE/dataa/oraadataa/CKDDB/PHHOTO_INDEEX1.ddbf ONNLINEE/dataa/oraadataa/CKDDB/BLLOG_DDATA11.dbff ONNLINEE/dataa/oraadataa/CKDDB/BLLOG_IINDEXX1.dbbf ONNLINEE/dataa/oraadataa/CKDDB/AUUDIO_DATAA1.dbbf ONNLINEE/dataa/oraadataa/CKDDB/AUUDIO_INDEEX1.ddbf ONNLINEE/dataa/oraadataa/CKDDB/VIIDEO_DATAA1.dbbf ONNLINEE/dataa/oraadataa/CKDDB/VIIDEO_INDEEX1.ddbf ONNLINEE/dataa/oraadataa/CKDDB/SYYS_DAATA1.dbf ONNLINEE/dataa/oraadataa/CKDDB/SYYS_INNDEX11.dbff ONNLINEE/dataa/oraadataa/CKDDB/ADDM_DAATA1.dbf ONNLINEE/dataa/oraadataa/CKDDB/ADDM_INNDEX11.dbff ONNLINEE/dataa/oraadataa/CKDDB/peerfsttat.ddbf ONNLINEE输出结果中中“STAATUS”应该都为为“ONLLINE”。或者:SQL> seleect ffile_namee,staatus fromm dbaa_datta_fiiles; FILE_NAMEE STAATUS- -/dataa/oraadataa/CKDDB/ussers001.dbbf AVAAILABBLE/dataa/oraadataa/CKDDB/syysauxx01.ddbf AVAAILABBLE/dataa/oraadataa/CKDDB/unndotbbs01.dbf AVAAILABBLE/dataa/oraadataa/CKDDB/syystemm01.ddbf AVAAILABBLE/dataa/oraadataa/CKDDB/sjj.dbff AVAAILABBLE/dataa/oraadataa/CKDDB/peerfsttat.ddbf AVAAILABBLE/dataa/oraadataa/CKDDB/HOOME_DDATA11.dbff AVAAILABBLE/dataa/oraadataa/CKDDB/HOOME_IINDEXX1.dbbf AVAAILABBLE/dataa/oraadataa/CKDDB/PHHOTO_DATAA1.dbbf AVAAILABBLE输出结果中中“STAATUS”应该都为为“AVAIILABLLE”。3.5. 检查无效对对象sql>sselecct owwner,objeect_nname,objeect_ttype fromm dbaa_objjectss wheere sstatuus!=''VALIID' aand oownerr!='SSYS' and owneer!=''SYSTTEM' no roows sseleccted 如果有记录录返回,则则说明存在在无效对象象。若这些些对象与应应用相关,那那么需要重重新编译生成这这个对象,或或者:SELECCT owwner, objject_namee, obbjectt_typpe FRROM ddba_oobjeccts WWHEREE staatus= 'INNVALIID'3.6. 检查所有回回滚段状态态SQL> seleect ssegmeent_nname,stattus ffrom dba_rolllbackk_seggs; SEGMEENT_NNAME STTATUSS- -SYSTEEM ONNLINEE_SYSSSMU1$ ONNLINEE_SYSSSMU2$ ONNLINEE_SYSSSMU3$ ONNLINEE_SYSSSMU4$ ONNLINEE_SYSSSMU5$ ONNLINEE_SYSSSMU6$ ONNLINEE_SYSSSMU7$ ONNLINEE_SYSSSMU8$ ONNLINEE_SYSSSMU9$ ONNLINEE_SYSSSMU100$ ONNLINEE 11 roows sseleccted输出结果中中所有回滚滚段的“SSTATUUS”应该该为“ONNLINEE”。4. 检查Oraacle相相关资源的的使用情况况在本节主要要检查Orraclee相关资源源的使用情情况,包含含:检查OOraclle初始化化文件中相相关的参数数值,检查查数据库连连接情况,检检查系统磁磁盘空间,检查Oracle各个表空间使用情况,检查一些扩展异常的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值,总共七个部分。4.1. 检查Oraacle初初始化文件件中相关参参数值SQL> seleect rresouurce_namee,maxx_utiilizaationn,iniitiall_alllocattion, limiit_vaalue fromm v$rresouurce_limiit; RESOUURCE_NAMEE MAX_UTILLIZATTION INITTIAL_ALLOOCAT LIMIIT_VAALUE- - - -proceessess 162 5500 5500sessiions 168 5555 5555enqueeue_llockss 136 69930 69930enqueeue_rresouurcess 111 26660 UNLLIMITTEDges_pprocss 0 0 0ges_rress 0 0 UNLLIMITTEDges_llockss 0 0 UNLLI