您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle10g数据库诊断与优化
Oracle数据库故障诊断与优化3目标y故障诊断优化的原则y诊断优化常用工具、命令y诊断优化常用网站yOracle的服务体系4故障诊断优化的原则y区分问题类型y区分问题级别y单点原则y需有备份、记录修改日志5区分问题类型y应用的问题–处理逻辑上的问题–应用编写问题–查看相关应用日志y操作系统/硬件的问题–利用系统工具查看y数据库的问题–日志–诊断工具–技术支持服务6操作系统/硬件诊断点yMachinemodelyKernelparametersyHostname,IPyNodesyCPUsyMemoryySwapyFilesystemyStorage(modelnumber,accessspeed,partitioninformation,howmanydisksoneachcontroller)yNetworkyO/SVersion&Patch-levelyO/SpackagesySystemlogsyThirdpartysoftwareyApplication(OLTP,DSS,Batch,Multipurpose)yOSusers,OSgroupsySystemusage7操作系统/硬件诊断工具--AIXysmitylsattrylscfgyerrptylsdevylsvgylslvylsfsylssrcynetstatyIfconfigyoslevelylslppytopasysnapynoyclstat8操作系统/硬件诊断工具—HP-UXysamysysdef-iykmsystemyunameyIfconfigycmclnodelistyioscanytopydmesgyswapinfoyvgdisplayyswlist9操作系统/硬件诊断工具--SolarisydmesgyprtconfyadmintoolyprstatyformatynddypkginfoyscstatyshowrevypkgchkyunameyswapynetstatyIfconfigyeepromyluxadm10操作系统/硬件诊断工具--Linuxy/var/log/messages(/etc/syslog.conf)y/proc/cpuinfoy/proc/devicesy/proc/kmsgy/proc/meminfoy/proc/scsiyfdiskysnoopyrpmymodinfoymknodyswapon/swamoffymkfsye2fsckyiptablesydevattry/etc/sysconfig/network-scripts11第三方工具的诊断yVeritas–vxlicese–vxdg–vxprintyHDS(HDLM)–dlnkmgrview-pathyEMC(PowerPath)–powermtdisplay12数据库问题y定位–应用程序报告ORA-错误–sqlplus报告错误–oracle日志文件中有错误–Oracle常用的诊断工具和命令y解决–常用的网站–随机电子文档–Oracle技术支持13数据库日志y$ORACLE_BASE/SID/admin–bdumpyalter_SID.log-ORA-…-Fail…-Error…-Notcomplete…–cdumpyCoredumpfiles–udumpyTracefiles14诊断调优常用工具和命令yOEM/DBControl/GridControly4个PACKyoerrytnspingydbvysqlplusylogminerySQL_TRACEyEVENTytkprofyanalyzeyRDAyStatspackyExplainplan15OEM/DBControl/GridControl16四个Packsy简化管理难度,降低管理成本–DiagnosticPack-系统诊断–TuningPack-性能调整–ChangeManagementPack-变动管理–ConfigurationManagementPack-配置管理17OERRyOracle在非windows平台内置的错误解释程序y例子:–$oerrora12504yCause:TheSIDwasmissingfromtheCONNECT_DATAyAction:CheckthattheconnectdescriptorcorrespondingtotheservicenameinTNSNAMES.ORAhasanSIDcomponentintheCONNECT_DATA18TNSPINGyOracle内置的用来检测客户端和服务器端连接的程序ytnspingservice_name–Service_name在$ORACLE_HOME/network/admin/tnsnames.ora定义y例子:–$tnspingORCLyUsedTNSNAMESadaptertoresolvethealiasyAttemptingtocontact(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.y1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))yTNS-12541:TNS:nolistener19DBVyOracle内置的检测工具用来检测:–数据文件物理结构一致性y可以对online/offline/backup的数据文件进行检查y对控制文件/日志文件无效–段(表、索引)的一致性20DBV检测数据文件y$dbvuserid=system/managerfile=index.dbfblocksize=8192–DBVERIFY-Verificationstarting:FILE=index.dbf–................................................................................–DBVERIFY-Verificationcomplete–TotalPagesExamined:9216–TotalPagesProcessed(Data):2044–TotalPagesFailing(Data):0–TotalPagesProcessed(Index):733–TotalPagesFailing(Index):0–TotalPagesEmpty:5686–TotalPagesMarkedCorrupt:0–TotalPagesInflux:021DBV检测段ydbvuserid=hr/hrsegment_id=tsn.seg_head_file_number.seg_head_block_numberblocksize=8192–DBVERIFY-Verificationstarting:SEGMENT_ID=1.2.67–DBVERIFY-Verificationcomplete–TotalPagesExamined:8–TotalPagesProcessed(Data):0–TotalPagesFailing(Data):0–TotalPagesProcessed(Index):1–TotalPagesFailing(Index):0–TotalPagesProcessed(Other):2–TotalPagesProcessed(Seg):1–TotalPagesFailing(Seg):0–TotalPagesEmpty:4–TotalPagesMarkedCorrupt:0–TotalPagesInflux:0–HighestblockSCN:7358(0.7358)22SQLPLUSyOracle内置的交互式SQL语句工具–管理、操控数据库–执行DDL、DML等SQL语句–同时也是一个检测工具y只要通过sqlplus能连接到数据库,同时能够通过sqlplus进行查询、增、删、改,则说明数据库是出于可用状态的23LogmineryOracle内置的日志分析工具–可以分析onlineredolog和归档文件–可以分析到SQL语句级别–通过包dbms_logmnr来实现–内容在v$logmnr_contents24SQL_TRACE简介y目的–为了分析应用程序的SQL语句–用于性能调优y条件–timed_statistics=true25SQL_TRACE的设置y参数SQL_TRACE=TURE–实例级别,init.ora–Session级别,altersession…y函数dbms_session.set_sql_traceyoradebug–SQLoradebugsetorapidPIDinv$processs–SQLoradebugevent10046tracenamecontextforever,level12–SQLoradebugevent10046tracenamecontextoffytrcsesssession=sid.serial#26SQL_TRACE的分析y文件为.trc,产生在$ORACLE_BASE/admin/SID/udump下y用tkprof分析27EVENT简介y目的–用于给oraclesupportservice提供诊断信息y分类–根据要求来产生诊断信息–当错误发生时产生诊断信息–改变oracle工作的特性–对当前实例中的应用产生TRACE文件注意:在oraclesupport支持下执行28EVENT的设置y初始化参数–EVENT=event_nameactiony当前会话–ALTERSESSIONSETEVENTS'event_nameaction';yoradebug–SQLoradebugeventevent_nameaction29根据要求来产生诊断信息(immediatedumpEvents)ySYSTEMSTATE,ERRORSTACK,CONTROLF,FILE_HDRSandREDOHDRy一般在session中设置y如:–ALTERSESSIONSETEVENTS'IMMEDIATEtracenameERRORSTACKlevel3';30当错误发生时产生诊断信息y用于错误诊断,一般和ORA错误关联y一般在初始化参数中设置y如:ORA-942tableorviewdoesnotexist“–EVENT=942tracenameERRORSTACKlevel331改变oracle工作的特性y为了某些特殊目的想改变oracle缺省的工作特性y一般在初始化参数中设置y如:EVENT:10262Donotcheckformemoryleaks–EVENT=10262tracenamecontextforever,level400032对当前实例中的应用产生TRACE文件y为了分析应用的SQL语句,用于性能调优y见前面SQL_TRACE章节,oradebugyEVENT:10046enableSQLstatementtracing(includingbinds/waits)33对EVENT的分析y文件为.trc,产生在$ORACLE_BASE/admin/SID/udump下y用tkprof分析y给oraclesupportservice分析34TKPROFy用来分析sql_trace所产生的trace文件y生成易于阅读分析的报告ytkproforcl_ora_3044.trc3044.outy存在很多选项用于产生各类报告–tkprofhelp=y–详细见OraclePerformanceTuningGuide10gRelease2(10.2)B14211-0135ANALYZEy用来分析表、索引逻辑上的一致性–ANALYZEINDEXpk_itemVALIDATESTRUCTURE;y用来生成统计数据–ANALYZETABLEempESTIMATESTATISTICS;y用来统计
本文标题:Oracle10g数据库诊断与优化
链接地址:https://www.777doc.com/doc-5141620 .html