Oracle运维总结报告.docx
Oracle 数据库运维总结报告起草 罗桃阳校核审查2014 年 1 月目录1.说明 .31.1 报告说明 31.2 系统概述 32 当前配置情况说明 .32.1 主机配置 32.2 数据库配置 33 操作系统可用性 53.1 文件系统使用情况 .53.2 操作系统性能分析 .53.2.1 CPU 使用趋势状况 53.2.2 内存使用状况 63.2.3 磁盘 IO 使用情况 .74 数据库可用性 104.1 活动会话数 .104.2 日志切换时间间隔 .104.3 表空间使用情况 .104.4 数据库文件读写状况 .114.5 数据库备份状况 .124.6 数据库恢复 .125 数据库性能分析 135.1 缓存命中率 .135.2 等待事件 TOP5145.3 执行时间最长 SQL 145.4 花费 CPU 最多 SQL .156 数据库改善建议 217 变更记录 218 故障及经验总结 218.1 故障一 .211.说明1.1 报告说明此报告作为时间 2013/11/012014/01/17 yjdb02 oracle 数据库运维总结报告,旨在监视期间 Oracle 数据库运行状况报告和可能产生的问题隐患做一次完整分析,并对未来数据库提出管理、规划、维护、优化建议和意见。以保证生产数据库的高可用性。1.2 系统概述yjdb02 oracle 数据库(版本号为 10.2.0.5.0 - 64bit) ,该数据库承载着近 70 套应用系统的数据。运行在一台 IBM POWER 740 服务器上,操作系统版本为AIX 6100-04-04-1014。该数据库自 2013 年 11 月 1 日上线以来,已运行 70 多天,在 2013 年 11 月 25 日发生过一次因磁盘空间满导致数据库挂起故障。2 当前配置情况说明2.1 主机配置主机名yj-zhdb主要配置 OS 版本 运行软件或服务及版本CPU POWER 7 3550 MHzMEM32G磁盘4*600GIP 10.44.98.10AIX 6100-04-04-1014 Oracle 10g 10.2.0.5.0 - 64bit2.2 数据库配置实例名 yjdb02服务名 yjdb02SGA Total System Global Area 1.6777E10 bytesFixed Size 2125712 bytesVariable Size 2852126832 bytesDatabase Buffers 1.3875E10 bytesRedo Buffers 48205824 bytes控制文件 /dev/rCONTROL01,/dev/rCONTROL02, /dev/rCONTROL03Redolog GROUP MEMBER TYPE SIZE - - 1 /dev/rREDO01 ONLINE 50M2 /dev/rREDO02 ONLINE 50M3 /dev/rREDO03 ONLINE 50M数据文件 FILE_ID FILE_NAME SIZE 4 /dev/rUSERS01 1488.75M3 /dev/rSYSAUX01 440M2 /dev/rUNDOTBS01 335M1 /dev/rSYSTEM01 560M5 /dev/rYTIM_DATA 400M6 /dev/rSOPE 4096M7 /dev/rDNYPM_DATA 20M8 /dev/rXMBRS_DATA 200M9 /dev/rHCGL_DATA 500M10 /dev/rCGNSERVICE_DATA 1024M11 /dev/rYJXXZC_DATA 500M12 /dev/rELOG_DATA 200M13 /dev/rSBFX_DATA 200M14 /dev/rYOPPG_DATA 200M15 /dev/rSOL_DATA 200M16 /dev/rYCAR_DATA 200M17 /dev/rYJTEM_DATA 500M18 /dev/rYJPTMS_DATA 200M19 /dev/rREMS_DATA 200M20 /dev/rSTAL_DATA 200M21 /dev/rQSQ_DATA 200M22 /dev/rSHR_DATA 100M23 /dev/rCCM_DATA 32M24 /dev/rYJCMS_DATA 50M25 /dev/rFPSP_DATA 123M26 /dev/rIPMS_DATA 200M27 /dev/rQSHR_DATA 100M28 /dev/rSRMS_DATA 50M29 /dev/rMES_DATA 50M30 /dev/rFBPS_DATA 50M31 /dev/rPDS_DATA 50M32 /dev/rTCF_DATA 50M归档模式 Database log mode Archive ModeAutomatic archival EnabledArchive destination /oracle/archOldest online log sequence 6100Next log sequence to archive 6102Current log sequence 61023 操作系统可用性3.1 文件系统使用情况Filesystem GB blocks Free Used Iused Iused Mounted on/dev/hd4 3.00 2.75 9 13114 3 dev/hd2 6.00 3.28 46 48495 6 /usr/dev/hd9var 2.00 1.72 14 8841 3 /var/dev/hd3 6.00 5.99 1 66 1 /tmp/dev/hd1 3.00 2.99 1 31 1 /home/dev/hd11admin 1.00 1.00 1 5 1 /admin/proc - - - - - /proc/dev/hd10opt 1.00 0.79 21 8786 5 /opt/dev/livedump 1.00 1.00 1 4 1 /var/adm/ras/livedump/dev/oraclelv 45.00 30.32 33 24758 1 /oracle注文件系统正常,剩余空间充足。3.2 操作系统性能分析3.2.1 CPU 使用趋势状况CPU 整体空闲情况系统程序 CPU 使用率用户程序 CPU 使用率注CPU 负载在 2014-01-18 日至 2014-01-20 日间负载很低,运行状态平稳。3.2.2 内存使用状况物理内存使用情况Swap 使用情况注周末期间内存使用率持续下降,工作时间开始时,swap 波动较大。3.2.3 磁盘 IO 使用情况Hdisk0 磁盘繁忙程度Hdisk0 每秒读取次数Hdisk0 每秒写入次数Hdisk1 磁盘繁忙程度Hdisk1 每秒读取次数Hdisk1 每秒写入次数Hdisk2 磁盘繁忙程度Hdisk2 每秒读取次数Hdisk2 每秒写入次数Hdisk3 磁盘繁忙程度Hdisk3 每秒读取次数Hdisk3 每秒写入次数注hdisk0,hdisk1 同属 rootvg;hdisk2 ,hdisk3 同属 datavg。Datavg 磁盘 io 高于 rootvg,每个vg 中的每个 hdisk IO 基本平衡。 Hdisk2 读取量比其他磁盘大,建议调整。4 数据库可用性4.1 活动会话数19482014/1/192051215422571002014/1/20203306409512615718821924102711301233133614391542164517481851195420572200230300610921231541852162472783012040200400活 动会 话数活 动 会 话 数 ( 每 分 钟 )注根据统计 yjdb02 设置 Session3305,processes3000 ,实际每天使用不到到 300。根据统计信息显示 Oracle Database 设置的 Session 数量满足现有需要。4.2 日志切换时间间隔0262014/1/19226526726926112614261626182621262202221122150262014/1/20226526626826112613261626182621002201220222112226026326526626905020004000间 隔 (s)日 志 切 换 时 间 间 隔 (s )注根据统计结果,日志切换时间间隔集中在 3060 分钟之间。但数据库繁忙时,切换时间小于10s。此处有待优化,建议增加 Redo log size,保证正常情况下维持日志切换在 10-20 mins 之间。4.3 表空间使用情况表空间名 总大小M 空闲空间M 使用率SYSTEM 560 65.75 4.02YTIM_DATA 400 162.69 0.72SOPE 4096 2282.56 5.53FBPS_DATA 50 46.31 0.01YCAR_DATA 200 199.94 0IPMS_DATA 200 147.69 0.16QSHR_DATA 100 99.44 0USERS 1490 0.56 13.22TCF_DATA 50 49.94 0XMBRS_DATA 200 197.88 0.01CGNSERVICE_DATA 1024 799.25 0.69ELOG_DATA 200 178.44 0.07YOPPG_DATA 200 197.19 0.01QSQ_DATA 200 199.94 0SRMS_DATA 50 47.13 0.01PDS_DATA 50 49.94 0HCGL_DATA 500 499.88 0YJTEM_DATA 500 139.69 1.1CCM_DATA 32 25.25 0.02SBFX_DATA 200 199.94 0SOL_DATA 200 199.94 0REMS_DATA 200 199.94 0SYSAUX 440 22.19 20.4DNYPM_DATA 20 12.31 0.02STAL_DATA 200 198.88 0SHR_DATA 100 96.44 0.01UNDOTBS1 335 200.81 13.1YJXXZC_DATA 500 499.88 0YJPTMS_DATA 200 199.94 0YJCMS_DATA 50 49.88 0FPSP_DATA 123 1.44 0.37MES_DATA 50 47.19 0.01TEMP 361 0 35.25注如果表空间对应的文件开启自动扩展,则使用率按最大扩展空间计算。总结表空间使用空间充足,但 USER 表空间数据过于集中,建议迁移部分数据至其他表空间或将 USER 表空间下的文件分布在不同磁盘,以分散 IO。4.4 数据库文件读写状况表空间 文件名 物理读 物理读块数 物理写物理写块数读时间0.01s写时间0.01sIO 总数USERS /dev/rUSERS01 17528443 31176774 714463 2810376 927020 5674844 18242906CGNSERVICE_DATA /dev/rCGNSERVICE_DATA 1170410 1677393 1056903 1475895 522512 12702006 2227313UNDOTBS1 /dev/rUNDOTBS01 12574 369532 1621871 5992079 86943 30998834 1634445SYSAUX /dev/rSYSAUX01 35987 736240 597318 834287 123378 7906867 633305SYSTEM /dev/rSYSTEM01 44876 947486 265928 345113 147002 2242240 310804FPSP_DATA /dev/rFPSP_DATA 183594 355611 76119 121362 59274 280443 259713IPMS_DATA /dev/rIPMS_DATA 123824 200764 36393 43779 31843 173490 160217SOPE /dev/rSOPE 78703 3290521 6755 6869 567005 77035 85458YJTEM_DATA /dev/rYJTEM_DATA 37249 709250 11311 11726 77297 88574 48560YTIM_DATA /dev/rYTIM_DATA 31493 475467 6111 6120 73837 76601 37604SRMS_DATA /dev/rSRMS_DATA 6252 11699 8265 8784 12849 74223 14517YOPPG_DATA /dev/rYOPPG_DATA 6342 11894 7891 7940 7254 79859 14233ELOG_DATA /dev/rELOG_DATA 7053 46905 6150 6163 28476 77171 13203DNYPM_DATA /dev/rDNYPM_DATA 6573 21148 6072 6080 13461 76002 12645FBPS_DATA /dev/rFBPS_DATA 6301 13533 6209 6223 16428 70585 12510CCM_DATA /dev/rCCM_DATA 6382 18920 6056 6056 17478 75526 12438MES_DATA /dev/rMES_DATA 6242 11705 6152 6175 33146 70672 12394XMBRS_DATA /dev/rXMBRS_DATA 6216 10871 6065 6066 16669 76198 12281SHR_DATA /dev/rSHR_DATA 6203 12470 6048 6048 10343 75330 12251STAL_DATA /dev/rSTAL_DATA 6143 8900 6049 6049 10722 75406 12192YJXXZC_DATA /dev/rYJXXZC_DATA 6100 7080 6061 6061 9679 75640 12161HCGL_DATA /dev/rHCGL_DATA 6099 7079 6050 6050 11470 75666 12149YJCMS_DATA /dev/rYJCMS_DATA 6096 7076 6048 6048 9777 75298 12144QSHR_DATA /dev/rQSHR_DATA 6095 7075 6048 6048 24199 70366 12143PDS_DATA /dev/rPDS_DATA 6081 6179 6048 6048 8846 70172 12129QSQ_DATA /dev/rQSQ_DATA 6081 6179 6048 6048 9018 75360 12129REMS_DATA /dev/rREMS_DATA 6081 6179 6048 6048 9460 75398 12129YJPTMS_DATA /dev/rYJPTMS_DATA 6081 6179 6048 6048 11645 75417 12129TCF_DATA /dev/rTCF_DATA 6081 6179 6048 6048 13689 70156 12129SOL_DATA /dev/rSOL_DATA 6081 6179 6048 6048 13636 75476 12129SBFX_DATA /dev/rSBFX_DATA 6081 6179 6048 6048 7608 75521 12129YCAR_DATA /dev/rYCAR_DATA 6081 6179 6048 6048 6782 75456 12129注Datafile 的读写总体状况良好,从读写前 10 位读写状况来看, USER 表空间对应的数据文件读写过于频繁,建议对 USER 表空间内容及文件做分散处理。4.5 数据库备份状况固定时间将 DB 使用 RMAN 备份出来,然后备份到异地 TAPE 里。情况良好。4.6 数据库恢复无恢复操作。建议定期演练恢复操作以保证备份介质可用。5 数据库性能分析5.1 缓存命中率14.01.14 547 - 21.01.14 1247一周 数据library cache 命中率db buffe 命中率Instance Efficiency Percentages Target 100Buffer Nowait 100.00 Redo NoWait 99.98Buffer Hit 100.16 In-memory Sort 100.00Library Hit 94.82 Soft Parse 95.26cute to Parse 5.89 Latch Hit 99.99Parse CPU to Parse Elapsd 5.82 Non-Parse CPU 99.15注DB buffer 和 library buffer 命中率一致处于 100状态,其它 SGA 各项命中指标也处于很高的水平。说明 oracle 运行内存充足,无需调整。5.2 等待事件 TOP5Top 5 Timed EventsEvent Waits Times Avg Waitms Total Call Time Wait ClassXDB SGA initialization 64,761 316,043 4,880 161.8 Otherenq FU - contention 10,800 31,623 2,928 16.2 OtherCPU time 1,976 1.0 control file parallel write 60,330 1,242 21 .6 System I/Ocontrol file sequential read 1,803,354 390 0 .2 System I/O注等待事件中,耗费时间最长事件类别为其它事件,原因暂时未知。5.3 执行时间最长 SQLElapsed Time sCPU Time scutionsElap per c s Total DB TimeSQL Id SQL Module SQL Text190,413 1 3 63470.95 97.46 4c1xvq9ufwcjc PL/SQL Developer select count* from user u,.125,816 2 1 125816.17 64.40 05s9358mm6vrr begin dbms_feature_usage_inter.125,815 1 1 125814.70 64.40 685jucmq3q7nd BEGIN DBMS_FEATURE_XDBfeatur.125,815 1 0 64.40 afdvc8zfrk70z select dbms_xdb.getHTTPPort fr.96,956 1 2 48478.05 49.63 c8khjbn635s3c plsqldev. select s.synonym_name object_n.93,459 1 1 93459.15 47.84 f5yun5dynkskv plsqldev. select s.synonym_name as obje.797 0 88,319 0.01 0.41 2210gauc646wj sqlplusYJ-ZHDB TNS V1-V3select free_space, total, use_.650 52 16,065 0.04 0.33 4jns5anwvyu2x w3wp. Select UPPERT1.RESOURCE_CODE.297 12 46 6.45 0.15 2trhraw95gwky DECLARE job BINARY_INTEGER .243 77 46 5.29 0.12 1gcyfxnwgfsfr INSERT /* BYPASS_RECURSIVE_CH.5.4 花费 CPU 最多 SQLCPU Time sElapsed Time scutionsCPU per c Total Total DB SQL Id SQL Module SQL Texts Time77 243 46 1.68 3.92 0.12 1gcyfxnwgfsfr INSERT /* BYPASS_RECURSIVE_CH.52 650 16,065 0.00 2.62 0.33 4jns5anwvyu2x w3wp. Select UPPERT1.RESOURCE_CODE.29 63 46 0.62 1.45 0.03 bunssq950snhf insert into wrh_sga_target_ad.21 61 1 20.74 1.05 0.03 b6usrg82hwsa3 DBMS_SCHEDULERcall dbms_stats.gather_databas.20 55 97 0.21 1.01 0.03 6p68r106pskrm w3wp. select xcent, zerenid, SA_ID, .19 43 41 0.47 0.98 0.02 4wnp7wh5mm2gkw3wp. SELECT 0 end_snap WHERE end_snap.dbid dbid and end_snap.instance_number instance_number and end_snap.snap_id end_snap endsn LEFT OUTER JOIN SELECT beg_snap.* FROM SELECT t1.* FROM WRH_SYSTEM_EVENT t1, WRM_SNAPSHOT s1 WHERE t1.dbid s1.dbid AND t1.instance_number s1.instance_number AND t1.snap_id s1.snap_id AND s1.bl_moved 0 UNION ALL SELECT t2.* FROM WRH_SYSTEM_EVENT_BL t2, WRM_SNAPSHOT s2 WHERE t2.dbid s2.dbid AND t2.instance_number s2.instance_number AND t2.snap_id s2.snap_id AND s2.bl_moved 0 a WHERE a.dbid dbid and a.instance_number instance_number and a.snap_id beg_snap and a.snap_id 0 and evtname.dbid dbid sd_xe_ash_nm, XKEHECLMAP xc WHERE sd_xe_ash_nm.wait_class_id xc.class_hash ORDER BY sd_xe_ash_nm.wait_class_id, sd_xe_ash_nm.tim_wait_diff DESC, sd_xe_ash_nm.event_id0h6b2sajwb74n select privilege, level from sysauth connect by granteeprior privilege and privilege0 start with grantee1 and privilege00k8522rmdzg4k select privilege from sysauth where grantee1 or grantee1 and privilege00ws7ahf1d78qa select SYS_CONTEXTUSERENV, SERVER_HOST, SYS_CONTEXTUSERENV, DB_UNIQUE_NAME, SYS_CONTEXTUSERENV, INSTANCE_NAME, SYS_CONTEXTUSERENV, SERVICE_NAME, INSTANCE_NUMBER, STARTUP_TIME, SYS_CONTEXTUSERENV, DB_DOMAIN from vinstance where INSTANCE_NAMESYS_CONTEXTUSERENV, INSTANCE_NAME10 xj8nynmpqtq SELECT dbin.db_name, dbin.instance_name, dbin.version, CASE WHEN s1.startup_time s2.startup_time THEN 0 ELSE 1 END as bounce, CASTs1.end_interval_time AS DATE as begin_time, CASTs2.end_interval_time AS DATE as end_time, ROUNDcast case when s2.end_interval_time s1.end_interval_time then s2.end_interval_time else s1.end_interval_time end as date - casts1.end_interval_time as date * 86400 as int_secs, CASE WHEN s1.status 0 THEN 1 ELSE 0 END as err_detect, round greatest extractday from s2._elapsed * 86400 extracthour from s2._elapsed * 3600 extractminute from s2._elapsed * 60 extractsecond from s2._elapsed, extractday from s1._elapsed * 86400 extracthour from s1._elapsed * 3600 extractminute from s1._elapsed * 60 extractsecond from s1._elapsed, 0 as max__secs FROM WRM_SNAPSHOT s1 , WRM_DATABASE_INSTANCE dbin , WRM_SNAPSHOT s2 WHERE s1.dbid dbid AND s2.dbid dbid AND s1.instance_number inst_num AND s2.instance_number inst_num AND s1.snap_id bid AND s2.snap_id eid AND dbin.dbid s1.dbid AND dbin.instance_number s1.instance_number AND dbin.startup_t ime s1.startup_time1gcyfxnwgfsfr INSERT /* BYPASS_RECURSIVE_CHECK */ INTO “EMS“.“EMSUSERINFO“ select u.STAFF_ID, NVLu.STAFF_NO, u.STAFF_NET_ID AS STAFF_NO, STAFF_NAME, STAFF_NAME_PY, STAFF_SHORT_PY, STAFF_STATUS, d.* from CGN.V_ALLSTAFF u, SELECT DEPT_ID, DEPT_NO, dept_NAME_Path, EMS.getdeptnamedept_NAME_Path, C AS CORPNAME, EMS.getdeptnamedept_NAME_Path, D AS DEPT_NAME, EMS.getdeptnamedept_NAME_Path, B AS BRANCH_NAME, EMS.getdeptnamedept_NAME_Path, S AS SECTION_NAME FROM CGN.DEPT WHERE DEPT_STATUS 1 d WHERE u.STAFF_DEPT_ID d.DEPT_ID1qnhhjmbnvwth select * from select rownum rn, a.* from select * from cba_tickets t where 11order by to_daterea_date, yyyy-mm-dd desc nulls last a where rn between 1 and 152210gauc646wj select free_space, total, use_rate from SELECT D.TABLESPACE_NAME, FREE_SPACE, SPACE “TOTAL“, ROUNDSPACE - NVLFREE_SPACE, 0 / DECODEROUNDD.MAXBYTES / 1024 / 1024, 2, 0, SPACE, ROUNDD.MAXBYTES / 1024 / 1024, 2 * 100, 2 “USE_RATE“ FROM SELECT TABLESPACE_NAME, SUMMAXBYTES MAXBYTES, ROUNDSUMBYTES / 1024 * 1024, 2 SPACE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME D, SELECT TABLESPACE_NAME, ROUNDSUMBYTES / 1024 * 1024, 2 FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME F WHERE D.TABLESPACE_NAME F.TABLESPACE_NAME UNION ALL SELECT D.TABLESPACE_NAME, FREE_SPACE, SPACE “total“, ROUNDSPACE - NVLFREE_SPACE, 0 / DECODEROUNDD.MAXBYTES / 1024 / 1024, 2, 0, SPACE, ROUNDD.MAXBYTES / 1024 / 1024, 2 * 100, 2 “USE_RATE“ FROM SELECT TABLESPACE_NAME, SUMMAXBYTES MAXBYTES, ROUNDSUMBYTES / 1024 * 1024, 2 SPACE FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME D, SELECT TABLESPACE_NAME, ROUNDSUMBYTES_USED / 1024 * 1024, 2 USED_SPACE, ROUNDSUMBYTES_FREE / 1024 * 1024, 2 FREE_SPACE FROM VTEMP_SPACE_HEADER GROUP BY TABLESPACE_NAME F WHERE D.TABLESPACE_NAME F.TABLESPACE_NAME WHERE tablespace_name USERS298ppdduqr7wm SELECT status FROM sys.wri_adv_tasks WHERE id 12ggd5fqu7044t DECLARE job BINARY_INTEGER job; next_date DATE mydate; broken BOOLEAN FALSE; BEGIN dbms_refresh.refresh“CGN“.“STAFF“; mydate next_date; IF broken THEN b 1; ELSE b 0; END IF; END;2rycas7xwu179 select count0 from select * from cba_tickets t where 11order by to_daterea_date, yyyy-mm-dd desc nulls last2trhraw95gwky DECLARE job BINARY_INTEGER job; next_date DATE mydate; broken BOOLEAN FALSE; BEGIN dbms_refresh.refresh“EMS“.“EMSUSERINFO“; mydate next_date; IF broken THEN b 1; ELSE b 0; END IF; END;350f5yrnnmshs lock table sys.mon_mods in exclusive